public void setData(GameIDData gd)
    {
        if (gd.totalPLevel <= 0)
        {
            gameObject.SetActive(false);
            return;
        }
        else
        {
            gameObject.SetActive(true);
        }

        TranscendData td = gd.transcendData;

        for (int i = 0; i < 4; ++i)
        {
            slots[i].lbName.text = td.description[i];


            if (GameManager.me.uiManager.popupReforege.step == 2)
            {
                int newValue = td.getApplyRateValue(gd.transcendLevel[i], i);
                int diff     = newValue - GameManager.me.uiManager.popupReforege.currentEffectValue[i];

                string resultType = td.getApplyRateTypeString(i);
                string result     = td.getApplyRateValueString(gd.transcendLevel[i], i);

                if (diff > 0)
                {
                    result += " [ffe400](↑" + diff + resultType + ")[-]";
                }
                else if (diff < 0)
                {
                    result += " [be1010](↓" + diff + resultType + ")[-]";
                }

                slots[i].lbValue.text = result;
            }
            else
            {
                slots[i].lbValue.text = td.getApplyRateValueString(gd.transcendLevel[i], i);
            }
        }
    }
Esempio n. 2
0
//		1> 99레벨 미만 SS등급일때, 상세정보 UI에서 [제련] 버튼 표시

//		3> 조건에 맞는 재료아이템들을 모두 표시 후, 유저가 직접 변경 가능
//		- 디펄트 선택 재료는, 레어등급 낮은 순 > 제련레벨 낮은 순 > 강화레벨 낮은순
//		4> 재료가 없으면, 제련 버튼 비활성 & 재료 선택 UI에 메시지 표시
//		- 필요한 재료룬 이름 알려줌
//		5> 골드 부족시, 골드 부족 & 루비 사용 메시지 팝업
//		6> 제련후, 상승한 제련레벨 및 상승 속성 수치 표시
//		7> 재료가 남아있다면 계속 제련 가능,
//		- 재료 없으면 재료 없음 메시지 표시 & 제련 버튼 비활성



    void refreshInfo(bool setStat = false)
    {
        slotBefore.setReforgeData(_data, false);
        slotAfter.setReforgeData(_data, false);
        slotAfter.useButton  = false;
        slotBefore.useButton = false;

        slotBefore.lbTranscendLevel.enabled = false;
        slotAfter.lbTranscendLevel.enabled  = false;

        if (_showDiff)
        {
            lbSlotBefore.text = _data.totalPLevel + " [ffe400](↑" + (_data.totalPLevel - currentLevel) + ")[-]";
        }
        else
        {
            lbSlotBefore.text = _data.totalPLevel.ToString();
        }

        int minLevel  = _data.totalPLevel;
        int maxLevel  = _data.totalPLevel;
        int plusValue = minLevel;

        if (_prevSlot != null)
        {
            int[] logic = GameDataManager.instance.reforgeLogic;

            if (_prevSlot.infoData.rare >= RareType.SS)
            {
                minLevel = minLevel + logic[1];                 // 5
            }
            else
            {
                minLevel = minLevel + logic[0];                 // 1
            }

            maxLevel = minLevel;

            // 강화 레벨 보너스.

            int pl = (_prevSlot.infoData.reinforceLevel.Get());



            if (pl >= logic[12] && pl <= logic[13])
            {
                maxLevel += logic[14];
            }
            if (pl >= logic[9] && pl <= logic[10])
            {
                maxLevel += logic[11];
            }
            if (pl >= logic[6] && pl <= logic[7])
            {
                maxLevel += logic[8];
            }
            if (pl >= logic[3] && pl <= logic[4])
            {
                maxLevel += logic[5];
            }

            // 제련 레벨 보너스.
            if (_prevSlot.infoData.totalPLevel > 0)
            {
                maxLevel += Mathf.FloorToInt((float)_prevSlot.infoData.totalPLevel / (float)(logic[2]));
            }
        }

        if (maxLevel > GameIDData.MAX_P_LEVEL)
        {
            maxLevel = GameIDData.MAX_P_LEVEL;
        }
        if (minLevel > GameIDData.MAX_P_LEVEL)
        {
            minLevel = GameIDData.MAX_P_LEVEL;
        }

        if (maxLevel > minLevel)
        {
            lbSlotAfter.text = minLevel + "~" + maxLevel;
        }
        else
        {
            //if(minLevel == 0) lbSlotAfter.text = "-";
            //else
            lbSlotAfter.text = minLevel.ToString();
        }

        btnReforge.isEnabled = (_materialData.Count > 0);
        //		2> 제련 후 '최소 제련레벨 ~ 최대 제련레벨' 표시


        if (setStat)
        {
            TranscendData td = _data.transcendData;

            for (int i = 0; i < 4; ++i)
            {
                attSlots[i].lbName.text = td.description[i];


                int newValue = td.getApplyRateValue(_data.transcendLevel[i], i);

                if (_showDiff)
                {
                    int    diff       = newValue - currentEffectValue[i];
                    string resultType = td.getApplyRateTypeString(i);

                    string result = td.getApplyRateValueString(_data.transcendLevel[i], i);

                    if (diff > 0)
                    {
                        result += " [ffe400](↑" + diff + resultType + ")[-]";
                    }
                    else if (diff < 0)
                    {
                        result += " [be1010](↓" + diff + resultType + ")[-]";
                    }

                    attSlots[i].lbValue.text = result;
                }
                else
                {
                    attSlots[i].lbValue.text = td.getApplyRateValueString(_data.transcendLevel[i], i);
                }

                currentEffectValue[i] = newValue;
            }
        }


        lbReforgePrice.text = Util.GetCommaScore(GameDataManager.instance.reforgePrices[WSDefine.GOLD]);
    }