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

85 lines
3.5 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class EquipmentEnchantCard : CardBase
{
public static EnchantCardData Select_EnchantCardData;
public static SD_Slot Select_SlotData;
public Image[] images; // 0 인챈트 아이콘
public TextMeshProUGUI[] texts; // 0 이름, 1 레벨, 2 보유량
public Slider slider;
public GameObject[] gos; // 0 강화 버튼, 1 마법부여 버튼
ItemListTableData m_ItemData;
EnchantListTableData m_Data;
EnchantRateTableData m_EnchantRateTableData;
public override void Set<T>(T _base)
{
base.Set(_base);
m_Data = _base as EnchantListTableData;
m_ItemData = table_itemlist.Ins.Get_Data(m_Data.n_EnchantID);
Set_UI();
// 착용 장비
DSUtil.InActivateGameObjects(gos, PopupMgr.Ins.m_EquipmentItemPopup.isActiveAndEnabled ? 1 : 0);
}
public override void Set_UI()
{
var sdata = ServerInfo.Ins.m_ServerData;
var lv = sdata.Get_EnchantLv(m_Data.n_EnchantID);
var amount = sdata.Get_EnchantAmount(m_Data.n_EnchantID);
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(m_ItemData.s_ItemIcon);
texts[0].text = table_itemlist.Ins.Get_ItemName(m_ItemData.n_ItemID);
texts[1].text = $"Lv.{lv}";
texts[2].text = DSUtil.Format(204, amount);
// 인챈트 강화에 필요한 갯수는 어디에?
m_EnchantRateTableData = table_enchantrate.Ins.Get_Data(lv);
slider.value = (float)amount / m_EnchantRateTableData.n_NextLvRequireCount;
}
public void OnClick_Info()
{
}
public void OnClick_Reinforce()
{
if (m_EnchantRateTableData.n_NextLvRequireCount <= 0) { ToastUI.Ins.Set(999900003); return; }
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.Check_ItemAmount(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount))
{
ServerInfo.Ins.Save_Enchant_LvUp(m_Data.n_EnchantID, () =>
{
sdata.Use_Item(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount);
sdata.Add_EnchantLv(m_Data.n_EnchantID);
Set_UI();
});
}
}
public void OnClick_EnchantEquipItem()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0)
{ // 마법 부여 하자
ServerInfo.Ins.Save_EquipItem_Enchant(PopupMgr.Ins.m_EquipmentItemPopup.Get_ItemID(), m_Data.n_EnchantID,
Select_EnchantCardData.Index,
result =>
{
var parts = PopupMgr.Ins.m_EquipmentItemPopup.Get_Parts();
// 주석은 클라 처리 -> 서버 처리로 변경됨
//var grade = DSUtil.Get_RandomIndex(m_EnchantRateTableData.list_rate) + 1;
//var enchantlv = table_enchantgradeconfig.Ins.Get_Lv(grade);
//var optionconfigid = m_Data.Get_OptionConfigID(Select_SlotData);
//sdata.Set_SlotEnchant(parts, Select_EnchantCardData.Index, optionconfigid, enchantlv);
sdata.Set_SlotEnchant(parts, Select_EnchantCardData.Index, result.optionconfigid, result.Lv);
PopupMgr.Ins.m_EquipmentItemPopup.m_EquipItemEnchantOption.Set_UI();
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ACC);
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ALL);
});
}
}
}