Esempio n. 1
0
    /// <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");
        }
    }
Esempio n. 2
0
    /// <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;
    }