Project_WL/Assets/Script/UI/Eqiupment/EquipItemEnchantOptionCard.cs

82 lines
2.9 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class EquipItemEnchantOptionCard : CardBase
{
public Image[] images; // 0 bg, 1 grade
public TextMeshProUGUI[] texts; // 0 등급, 1 옵션, 2 오픈 조건
public GameObject[] gos_lock; // 0 언락, 1 락
EnchantCardData m_EnchantCardData;
public override void Set<T>(T _base)
{
base.Set(_base);
m_EnchantCardData = _base as EnchantCardData;
Set_UI();
Do_SomeThing();
}
public override void Set_UI()
{
if (IsOpen())
{
DSUtil.InActivateGameObjects(gos_lock, 0);
if (m_EnchantCardData.EnchantData.Lv > 0)
{ // 옵션이 존재
var egcData = table_enchantgradeconfig.Ins.Get_Data_bylv(m_EnchantCardData.EnchantData.Lv);
texts[0].text = egcData.n_EnchantGrade.ToString();
var upgradeData = table_optionconfig.Ins.Get_Data(m_EnchantCardData.EnchantData.ID);
texts[1].text = MyText.Get_StatNameValueText(upgradeData.e_OptionType, m_EnchantCardData.EnchantData.Get_Value());
images[1].enabled = true;
images[1].color = egcData.GradeColor;
}
else
{ // 오픈되었으나 비어있음
texts[0].text = "0";
texts[1].text = table_localtext.Ins.Get_Text(203);
images[1].enabled = false;
}
}
else
DSUtil.InActivateGameObjects(gos_lock, 1);
}
public override void Set_Selected(bool active)
{
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(active ? "slot 2" : "slot 1_weapon");
}
public override void Do_SomeThing()
{
Set_Selected(false);
}
public void OnClick_Enchant()
{
PopupMgr.Ins.m_EquipmentItemPopup.m_EquipItemEnchantOption.DeSelectAll();
Set_Selected(true);
PopupMgr.Ins.m_EquipmentItemPopup.Set_Position(false); // 팝업을 왼쪽으로 보낸다.
NewGameUI.Ins.m_EquipmentUI.m_Tab.OnClick_Tab_byScript(0); // 인챈트 리스트 표시
EquipmentEnchantCard.Select_EnchantCardData = m_EnchantCardData;
}
bool IsOpen()
{
switch (m_EnchantCardData.Index)
{
case 0:
texts[2].text = DSUtil.Format(202, table_GlobalValue.Ins.Get_Int("EnchantOpenLv1"));
return m_EnchantCardData.SlotLv >= table_GlobalValue.Ins.Get_Int("EnchantOpenLv1");
case 1:
texts[2].text = DSUtil.Format(202, table_GlobalValue.Ins.Get_Int("EnchantOpenLv2"));
return m_EnchantCardData.SlotLv >= table_GlobalValue.Ins.Get_Int("EnchantOpenLv2");
case 2:
texts[2].text = DSUtil.Format(202, table_GlobalValue.Ins.Get_Int("EnchantOpenLv3"));
return m_EnchantCardData.SlotLv >= table_GlobalValue.Ins.Get_Int("EnchantOpenLv3");
}
return false;
}
}