/// <summary> 파트너 액티브스킬 레벨업 응답 </summary> public void OnPMsgHeroSkillUpgradeSHandler() { NetData._PartnerActiveSkillData selectSkill = CurData.GetBuffSkillToSlot((ushort)(SelectActiveSkillIndex + 1)); if (selectSkill != null) { UIHelper.CreateEffectInGame(SkillLevelUpEffRoot, "Fx_partner_skillup_01"); CurSelectSkillLevel[1].GetComponent <TweenColor>().ResetToBeginning(); CurSelectSkillLevel[1].GetComponent <TweenColor>().PlayForward(); CurSelectSkillLevel[1].GetComponent <TweenScale>().ResetToBeginning(); CurSelectSkillLevel[1].GetComponent <TweenScale>().PlayForward(); TempCoroutine.instance.FrameDelay(1f, delegate() { DestroyImmediate(SkillLevelUpEffRoot.GetChild(0).gameObject); //액티브 스킬 셋팅 Dictionary <ushort, NetData._PartnerActiveSkillData> activeSkillList = CurData.ActiveSkillList; int activeCount = activeSkillList.Count; for (int i = 1; i < activeCount; i++)//0번은 평타. { uint skillId = activeSkillList[(ushort)i]._skillIndex; SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(skillId); if (actionLowData == null) { continue; } SkillIcon[i - 1].spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon); SkillName[i - 1].text = _LowDataMgr.instance.GetStringSkillName(actionLowData.name); SkillLevel[i - 1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), CurData.GetBuffSkillToSlot((ushort)i)._skillLevel); int idx = i; EventDelegate.Set(ActiveSkillTrigger[i - 1].onClick, delegate() { OnClickActiveSkill(idx - 1, activeSkillList[(ushort)idx]); }); } OnClickActiveSkill(SelectActiveSkillIndex, selectSkill); }); } else { Debug.LogError("CanNotFound SKillData"); } }
/// <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; }