using TMPro; using UnityEngine.UI; /// /// 초월 정보 (전 레벨 -> 다음 레벨) /// public class PCLimit_Center : PCLimit_StatInfo { public TextMeshProUGUI[] texts; // 0 레벨(전), 1 레벨(후), 2 보유 스탯 총합, 3 캐릭터 레벨 달성 public Slider[] sliders; // 0 보유 스탯 총합, 1 캐릭터 레벨 달성 BreakingLimitTableData m_CurData, m_NextData; public void Set() { var sdata = ServerInfo.Ins.m_ServerData; var lv = sdata.Get_LimitLv(); m_CurData = table_breakinglimit.Ins.Get_Data_orNull(lv); Set(m_CurData); texts[0].text = $"Lv.{lv}"; m_NextData = table_breakinglimit.Ins.Get_Data_orNull(lv + 1); if (DSUtil.CheckNull(m_NextData)) { texts[1].text = "Max"; texts[2].text = table_localtext.Ins.Get_Text(261); sliders[0].value = 1f; sliders[1].value = 1f; } else { Set_Next(m_NextData); texts[1].text = $"Lv.{lv + 1}"; var total = Get_Total_AwakenLv(sdata); texts[2].text = $"{total} / {Get_NeedAwakenLv()}"; sliders[0].value = DSUtil.Get_SliderValue((float)total / Get_NeedAwakenLv()); texts[3].text = $"{sdata.PC.Lv} / {Get_NeedPCLv()}"; sliders[1].value = DSUtil.Get_SliderValue((float)sdata.PC.Lv / Get_NeedPCLv()); } } int Get_NeedAwakenLv() { return m_CurData.n_RequireTotalStat; } int Get_NeedPCLv() { return m_CurData.n_RequireLevel; } int Get_Total_AwakenLv(ServerData sdata) { return sdata.Get_AwakenLv(eStat.STR) + sdata.Get_AwakenLv(eStat.DEX) + sdata.Get_AwakenLv(eStat.INT) + sdata.Get_AwakenLv(eStat.LUK); } public void OnClick_LimitLvUp() { var sdata = ServerInfo.Ins.m_ServerData; var total = Get_Total_AwakenLv(sdata); if (!DSUtil.CheckNull(m_NextData)) { if (total >= Get_NeedAwakenLv()) { if (sdata.PC.Lv >= Get_NeedPCLv()) { ServerInfo.Ins.Save_PC_LimitLvUp(() => { sdata.Add_LimitLv(); PCLimitUI.Ins.Set(); MyValue.Get_ActorStatInfoorNull(eRole.PC); var moneyid = table_GlobalValue.Ins.Get_Int("n_AbilityMaterialID"); sdata.Add_Item(moneyid, m_NextData.n_MaxAbilityPoint - m_CurData.n_MaxAbilityPoint); }); } else ToastUI.Ins.Set(264); } else ToastUI.Ins.Set(263); } else ToastUI.Ins.Set(999900010); } }