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); } } }
// 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]); }