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 _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); }); } } }