80 lines
3.2 KiB
C#
80 lines
3.2 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()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
if (sdata.Check_ItemAmount(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount))
|
|
{
|
|
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);
|
|
});
|
|
}
|
|
}
|
|
} |