using TMPro; public class PCAbilityLvUpUI : BackKeyAdd { public MoneyForm m_MoneyForm; public PCAbilityCard m_abilityCard; public TextMeshProUGUI[] texts; // 0 null, 1 이름. 2 설명, 3 지금값, 4 다음값 AbilityConfigTableData m_Data; public void Set(AbilityConfigTableData data) { base.Set(); m_Data = data; Set_UI(); } void Set_UI() { var sdata = ServerInfo.Ins.m_ServerData; m_abilityCard.Set_CardType(eUICardType.NoTouch); m_abilityCard.Set(m_Data); var lv = sdata.Get_AbilityLv(m_Data.n_AbilityID); //texts[0].text = $"{lv}/{m_Data.n_MaxUpgradeLevel}"; texts[1].text = m_Data.Get_Name(); texts[2].text = m_Data.Get_Desc(); texts[3].text = MyText.Get_StatValueText(m_Data.e_OptionType, m_Data.Get_Value(lv)); texts[4].text = MyText.Get_StatValueText(m_Data.e_OptionType, m_Data.Get_Value(lv + 1)); var moneyid = table_GlobalValue.Ins.Get_Int("n_AbilityMaterialID"); m_MoneyForm.icon.sprite = UIAtlasMgr.Ins.Get_Sprite(moneyid); m_MoneyForm.amount.text = $"{sdata.Get_ItemAmount(moneyid)}/1"; } bool CanLvUp(bool showtoast) { var sdata = ServerInfo.Ins.m_ServerData; if (m_Data.n_MaxUpgradeLevel <= sdata.Get_AbilityLv(m_Data.n_AbilityID)) { if (showtoast) ToastUI.Ins.Set(236); return false; } if (m_Data.n_RequireAbility1 == 0 && m_Data.n_RequireAbility2 == 0) return true; bool can1 = CheckAbilityRequirement(m_Data.n_RequireAbility1, sdata); bool can2 = CheckAbilityRequirement(m_Data.n_RequireAbility2, sdata); if (showtoast && (!can1 || !can2)) ToastUI.Ins.Set(235); return can1 && can2; } bool CheckAbilityRequirement(int requiredAbilityId, ServerData sdata) { if (requiredAbilityId == 0) return true; var abData = table_abilityconfig.Ins.Get_Data_orNull(requiredAbilityId); if (abData == null) return false; return sdata.Get_AbilityLv(abData.n_AbilityID) >= abData.n_MaxUpgradeLevel; } public void OnClick_LvUp() { var sdata = ServerInfo.Ins.m_ServerData; var moneyid = table_GlobalValue.Ins.Get_Int("n_AbilityMaterialID"); if (CanLvUp(true) && sdata.Check_ItemAmount(moneyid, 1)) { ServerInfo.Ins.Save_PC_Ability(m_Data.n_AbilityID, MyEnumToInt.Ins.Get_Int(m_Data.e_BattleType), () => { sdata.Use_Item(moneyid, 1); sdata.Add_AbilityLv(m_Data.n_AbilityID); MyValue.Get_ActorStatInfoorNull(eRole.PC); Set_UI(); PCAbilityUI.Ins.Set_UI(); sdata.Add_MissionCount(ePurpose.HERO_ABILITY_UPGRADE_CLASS_LIMIT, MyEnumToInt.Ins.Get_Int(m_Data.e_BattleType)); sdata.Add_MissionCount(ePurpose.HERO_ABILITY_UPGRADE_ALL); sdata.Add_MissionCount(ePurpose.HERO_ABILITY_UPGRADE_ACC); }); } } }