/// <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;
    }
示例#3
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;
    }