/// <summary> 서버에서 스킬업그레이드 응답. </summary> public void OnPMsgCostumeSkillUp(NetData._CostumeData costume, int skillNumber) { GameObject skillViewObj = GetViewObj(ViewType.Skill); int arr = skillNumber - 1;//SkillLevelup.SelectSkillNum; Transform skillViewTf = skillViewObj.transform.FindChild("Skills"); UISprite icon = skillViewTf.FindChild(string.Format("BtnSkill_{0}/icon_d5", arr)).GetComponent <UISprite>(); UILabel level = skillViewTf.FindChild(string.Format("BtnSkill_{0}/level_d5", arr)).GetComponent <UILabel>(); UILabel name = skillViewTf.FindChild(string.Format("BtnSkill_{0}/name_d5", arr)).GetComponent <UILabel>(); SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(SkillLevelup.SkillId); if (actionLowData == null) { Debug.LogError("not found ActionInfo error " + SkillLevelup.SkillId); return; } ushort skillLevel = costume._skillLevel[arr]; icon.spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon); level.text = string.Format(_LowDataMgr.instance.GetStringCommon(453), skillLevel); name.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.name); SkillUpEff.SetActive(false); SkillUpEff.SetActive(true); UIEventTrigger uiTri = skillViewTf.FindChild(string.Format("BtnSkill_{0}", arr)).GetComponent <UIEventTrigger>(); EventDelegate.Set(uiTri.onClick, delegate() { SetSkillInfo(actionLowData, arr, skillLevel); }); SetSkillInfo(actionLowData, arr, skillLevel); if (IsMaxSkillup) { SkillTables.SkillLevelInfo nowLevelLowData = _LowDataMgr.GetSkillLevelData(actionLowData.idx, (byte)skillLevel);//지금 if (SkillMaxLv <= skillLevel || NetData.instance.GetAsset(AssetType.Gold) < nowLevelLowData.CostGold || NetData.instance.UserLevel < nowLevelLowData.LimitLv) { IsMaxSkillup = false; } else { OnClickSkillLevelup(true); } } SoundManager.instance.PlaySfxSound(eUISfx.UI_cos_skill_up, false); }
/* * /// <summary> * /// 스킬 뷰 초기화 함수 스킬 뷰로 올때마다 실행해준다 * /// </summary> * void SkillViewSetting() * { * SkillUpEff.SetActive(false); * NetData._CostumeData costumeData = UserInfo.GetEquipCostume(); * * GameObject skillViewObj = GetViewObj(ViewType.Skill); * if (skillViewObj == null) * return; * * Transform skillViewTf = skillViewObj.transform.FindChild("Skills"); * UILabel costumeName = skillViewObj.transform.FindChild("CostumeName").GetComponent<UILabel>(); * costumeName.text = costumeData.GetLocName(); * * ushort[] skillLevel = costumeData._skillLevel; * List<uint> skillList = costumeData.GetSkillList(); * int skillCount = skillList.Count; * for (int i = 0; i < skillCount; i++) * { * UIEventTrigger uiTri = skillViewTf.FindChild(string.Format("BtnSkill_{0}", i)).GetComponent<UIEventTrigger>(); * UISprite icon = skillViewTf.FindChild(string.Format("BtnSkill_{0}/icon_d5", i)).GetComponent<UISprite>(); * UILabel level = skillViewTf.FindChild(string.Format("BtnSkill_{0}/level_d5", i )).GetComponent<UILabel>(); * UILabel name = skillViewTf.FindChild( string.Format("BtnSkill_{0}/name_d5", i)).GetComponent<UILabel>(); * * SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(skillList[i]); * if (actionLowData == null) * { * Debug.LogError("SkillAction index error " + actionLowData.idx); * continue; * } * * int arr = i; * ushort s_level = skillLevel[i]; * * uiTri.collider.enabled = true; // ????? * icon.spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon); * level.text = string.Format(_LowDataMgr.instance.GetStringCommon(453), skillLevel[i] ); * name.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.name); * * EventDelegate.Set(uiTri.onClick, delegate() { SetSkillInfo(actionLowData, arr, s_level); } ); * } * * //기본으로 0번 선택해 놓는다. * SetSkillInfo(_LowDataMgr.instance.GetSkillActionLowData(skillList[0]), 0, skillLevel[0] ); * } */ /// <summary> /// 선택한 스킬에 대한 정보를 출력해준다. /// </summary> void SetSkillInfo(SkillTables.ActionInfo actionLowData, int arr, ushort skillLevel) { SkillLevelup.Init(); //일단 초기화하고 시작. SkillTables.SkillLevelInfo nowLevelLowData = _LowDataMgr.GetSkillLevelData(actionLowData.idx, (byte)skillLevel); //지금 if (nowLevelLowData == null) { Debug.LogError("skillLevel index error " + actionLowData.idx); return; } uint nextSkillDesc = 0; if (skillLevel < SkillMaxLv) //렙업 가능 상황. { SkillTables.SkillLevelInfo nextSkillLevel = _LowDataMgr.GetSkillLevelData(actionLowData.idx, (byte)(skillLevel + 1)); //다음 nextSkillDesc = nextSkillLevel.skilldesc; //다은꺼는 이거말고 쓸게없음. { SkillLevelup.SelectSkillNum = arr; SkillLevelup.SelectSkillLevel = skillLevel; SkillLevelup.SkillId = actionLowData.idx; } } else//최대 렙임. 렙업 불가능. { nextSkillDesc = nowLevelLowData.skilldesc; //SkillLevelup.IsCanNotLevelup = true; } //스킬 정보 셋팅 GameObject skillViewObj = GetViewObj(ViewType.Skill); if (skillViewObj == null) { return; } Transform skillInfoTf = skillViewObj.transform.FindChild("Info"); UILabel skillName = skillInfoTf.FindChild("skill_name_d5").GetComponent <UILabel>(); UILabel skillDesc = skillInfoTf.FindChild("description_d5").GetComponent <UILabel>(); UILabel nowData = skillInfoTf.FindChild("SkillData/Now/now").GetComponent <UILabel>(); UILabel nextData = skillInfoTf.FindChild("SkillData/Next/next").GetComponent <UILabel>(); UILabel needLevel = skillInfoTf.FindChild("Need/Level/value_d5").GetComponent <UILabel>(); UILabel needGold = skillInfoTf.FindChild("Need/Gold/value_d5").GetComponent <UILabel>(); skillName.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.name); skillDesc.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.descrpition); nowData.text = _LowDataMgr.instance.GetStringSkillName(nowLevelLowData.skilldesc); nextData.text = _LowDataMgr.instance.GetStringSkillName(nextSkillDesc); needLevel.text = string.Format("{0}", nowLevelLowData.LimitLv); //string.Format(_LowDataMgr.instance.GetStringCommon(453), needGold.text = string.Format("{0}", SceneManager.instance.NumberToString(nowLevelLowData.CostGold)); //nowLevelLowData.CostGold == 0 ? "0" : nowLevelLowData.CostGold.ToString("#,##") ); Transform btnTf = skillViewObj.transform.FindChild(string.Format("Skills/BtnSkill_{0}", arr)); SelectSkillEff.parent = btnTf; SelectSkillEff.localPosition = Vector3.zero; SelectSkillEff.localScale = Vector3.one; Transform upEffTf = SkillUpEff.transform; upEffTf.parent = btnTf; upEffTf.localScale = Vector3.one; upEffTf.localPosition = Vector3.zero; }
/// <summary> /// 액티브스킬칸 누름/// </summary> void OnClickActiveSkill(int index, NetData._PartnerActiveSkillData selectSkill) { SelectActiveSkillIndex = index; for (int i = 0; i < SkillIcon.Length; i++) { GameObject selectEff = SkillIcon[i].transform.parent.transform.FindChild("Selecteff").gameObject; selectEff.SetActive(i == index); } SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(selectSkill._skillIndex); if (actionLowData == null) { return; } SkillTables.SkillLevelInfo levelLowData = _LowDataMgr.GetSkillLevelData(selectSkill._skillIndex, selectSkill._skillLevel); CurSelectSkillDec.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.descrpition); Transform SkillView = ViewObj[(int)ViewType.Skill].transform; //만렙인지 체크 SkillTables.SkillLevelInfo nextLevelLowData = null; int maxSkillLevel = _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.PartnerMaxSkillLevel); if (selectSkill._skillLevel < maxSkillLevel) { SkillView.FindChild("arrow").gameObject.SetActive(true); SkillView.FindChild("name").gameObject.SetActive(true); nextLevelLowData = _LowDataMgr.GetSkillLevelData(selectSkill._skillIndex, (byte)(selectSkill._skillLevel + 1)); CurSelectSkillLevel[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), selectSkill._skillLevel + 1); //스킬재료아이템 SkillLevelUpMaterialSlot.SetLowDataItemSlot(nextLevelLowData.SkillLevelUpItem1, 0, (lowDataId) => { OpenDetailPopup(null, nextLevelLowData.SkillLevelUpItem1); //UIMgr.OpenClickPopup((uint)lowDataId, SkillLevelUpMaterialSlot.transform.position); }); int nowAmount = UserInfo.GetItemCountForItemId(nextLevelLowData.SkillLevelUpItem1, (byte)eItemType.USE); bool isSuccess = true; if (nowAmount < nextLevelLowData.SkillLevelUpItem1Count || NetData.instance.GetAsset(AssetType.Gold) < nextLevelLowData.CostGold) { isSuccess = false; } SkillLevelUpRoot.FindChild("value").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1167), nowAmount, nextLevelLowData.SkillLevelUpItem1Count); SkillLevelUpRoot.FindChild("value").GetComponent <UILabel>().color = nowAmount < nextLevelLowData.SkillLevelUpItem1Count ? Color.red : Color.white; SkillLevelUpRoot.FindChild("Lock").gameObject.SetActive(nowAmount < nextLevelLowData.SkillLevelUpItem1Count); if (isSuccess) { BtnSkillLevelUp.transform.FindChild("Btn_on").gameObject.SetActive(true); BtnSkillLevelUp.transform.FindChild("Btn_off").gameObject.SetActive(false); BtnSkillLevelUp.transform.FindChild("Btn_on/price").GetComponent <UILabel>().text = string.Format("x{0}", nextLevelLowData.CostGold); } else { BtnSkillLevelUp.transform.FindChild("Btn_on").gameObject.SetActive(false); BtnSkillLevelUp.transform.FindChild("Btn_off").gameObject.SetActive(true); BtnSkillLevelUp.transform.FindChild("Btn_off/price").GetComponent <UILabel>().text = string.Format("x{0}", nextLevelLowData.CostGold); } SkillLevelUpRoot.gameObject.SetActive(true); BtnSkillLevelUp.transform.gameObject.SetActive(true); CurSelectSkillLevel[1].transform.parent.gameObject.SetActive(true); CurSelectSkilDamage[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(levelLowData.factorRate.list, (float)levelLowData.factor).ToString()); CurSelectSkilDamage[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(nextLevelLowData.factorRate.list, (float)nextLevelLowData.factor).ToString()); SkillMaxLevel.SetActive(false); //위치변경도 있어야함 CurSelectSkillLevel[0].transform.parent.transform.localPosition = new Vector3(-138, -3, 0); EventDelegate.Set(BtnSkillLevelUp.onClick, delegate() { if (!isSuccess) { string msg = ""; if (nowAmount < nextLevelLowData.SkillLevelUpItem1Count) { msg = _LowDataMgr.instance.GetStringCommon(1173); //재료부족 } else if (NetData.instance.GetAsset(AssetType.Gold) < nextLevelLowData.CostGold) { msg = _LowDataMgr.instance.GetStringCommon(1174); //골드부족 } UIMgr.instance.AddPopup(_LowDataMgr.instance.GetStringCommon(141), msg, _LowDataMgr.instance.GetStringCommon(117)); return; } NetworkClient.instance.SendPMsgHeroSkillUpgradeC(CurData._partnerIndex, SelectActiveSkillIndex + 1); }); } else { //만렙일경우 //현재 레벨만 표기 SkillView.FindChild("arrow").gameObject.SetActive(false); SkillView.FindChild("name").gameObject.SetActive(false); SkillLevelUpRoot.gameObject.SetActive(false); BtnSkillLevelUp.transform.gameObject.SetActive(false); CurSelectSkillLevel[1].transform.parent.gameObject.SetActive(false); //위치변경도 있어야함 CurSelectSkilDamage[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(levelLowData.factorRate.list, (float)levelLowData.factor).ToString()); CurSelectSkillLevel[0].transform.parent.transform.localPosition = new Vector3(0, -3, 0); SkillMaxLevel.SetActive(true); } CurSelectSkillLevel[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), selectSkill._skillLevel); CurSelectSkillLevel[1].gameObject.transform.localScale = Vector3.one; }