80 lines
2.6 KiB
C#
80 lines
2.6 KiB
C#
using TMPro;
|
|
using UnityEngine.UI;
|
|
|
|
public class PCLimitSlotCard : CardBase
|
|
{
|
|
public TextMeshProUGUI[] texts; // 0 스탯, 1 등급, 2 잠금 설명
|
|
public Image[] images; // 0 등급, 1 잠금
|
|
|
|
SD_PCLimitSlotData m_SData;
|
|
int m_Grade, m_Slot;
|
|
|
|
public override void Set<T>(T _base)
|
|
{
|
|
base.Set(_base);
|
|
m_SData = _base as SD_PCLimitSlotData;
|
|
}
|
|
|
|
public override void Set(int _val)
|
|
{
|
|
m_Slot = _val;
|
|
var lv = ServerInfo.Ins.m_ServerData.Get_LimitLv();
|
|
var openlv = table_breakinglimit.Ins.Get_SlotOpenLv(m_Slot);
|
|
texts[2].text = openlv > lv ? DSUtil.Format(262, openlv) : "";
|
|
|
|
Set_UI();
|
|
}
|
|
|
|
public override void Set_UI()
|
|
{
|
|
var Tdata = table_optionconfig.Ins.Get_Data(m_SData.ID);
|
|
m_Grade = 0;
|
|
texts[0].text = texts[1].text = "";
|
|
images[0].color = table_enchantgradeconfig.Ins.Get_Data(1).GradeColor;
|
|
images[1].enabled = m_SData.Lock > 0;
|
|
|
|
if (DSUtil.CheckNull(Tdata))
|
|
{
|
|
// 오픈된 슬롯인가?
|
|
}
|
|
else
|
|
{
|
|
texts[2].text = "";
|
|
|
|
m_Grade = table_randombag.Ins.Get_Data(m_SData.ID).n_ItemGrade;
|
|
var gradecolor = table_enchantgradeconfig.Ins.Get_Data(m_Grade).GradeColor;
|
|
images[0].color = gradecolor;
|
|
texts[0].text = MyText.Get_StatNameValueText(Tdata.e_OptionType, Tdata.Get_Value(m_SData.Lv));
|
|
texts[1].text = "??";
|
|
}
|
|
}
|
|
|
|
public void Set_Change(string preset)
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
var isOpen = table_breakinglimit.Ins.Get_SlotOpenLv(m_Slot) <= sdata.Get_LimitLv();
|
|
if (isOpen && m_SData.Lock == 0)
|
|
{
|
|
var lv = sdata.Get_LimitLv();
|
|
var Tdata = table_limitslotmagicrate.Ins.Get_Data_orNull(lv);
|
|
var grade = DSUtil.Get_RandomIndex(Tdata.list_rate) + 1;
|
|
var itemData = table_randombag.Ins.Get_RandomItemData(Tdata.n_DropIndex, grade);
|
|
var optionlv = table_enchantgradeconfig.Ins.Get_Lv(grade);
|
|
sdata.Set_LimitSlotID(preset, m_Slot, itemData.itemid, optionlv);
|
|
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE);
|
|
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE_ACC);
|
|
}
|
|
}
|
|
|
|
public override int Get_IntData() { return m_Grade; }
|
|
|
|
public void OnClick_Lock()
|
|
{
|
|
if (m_SData.ID > 0)
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
sdata.Set_LimitSlotLock(PCLimitUI.Ins.m_PCLimitUI_Right.Get_Preset(), m_Slot);
|
|
PCLimitUI.Ins.m_PCLimitUI_Right.Set();
|
|
}
|
|
}
|
|
} |