82 lines
2.8 KiB
C#
82 lines
2.8 KiB
C#
using TMPro;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
/// 초월 정보 (전 레벨 -> 다음 레벨)
|
|
/// </summary>
|
|
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(result =>
|
|
{
|
|
sdata.LimitBreakOption = result.option;
|
|
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);
|
|
}
|
|
} |