138 lines
5.6 KiB
C#
138 lines
5.6 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;
|
|
|
|
eItem m_Parts;
|
|
|
|
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);
|
|
m_Parts = PopupMgr.Ins.m_EquipmentItemPopup.Get_Parts();
|
|
}
|
|
|
|
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, result =>
|
|
{
|
|
sdata.Use_Item(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount);
|
|
sdata.Add_EnchantLv(m_Data.n_EnchantID);
|
|
sdata.EnchantOption[m_Data.n_EnchantID] = result.newoption;
|
|
Set_UI();
|
|
});
|
|
}
|
|
}
|
|
public void OnClick_EnchantEquipItem()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0 && sdata.Check_ItemAmount(m_Data.n_EnchantID, 1))
|
|
{ // 마법 부여 하자
|
|
sdata.Use_Item(m_Data.n_EnchantID, 1);
|
|
var enchant = sdata.EnchantOption[m_Data.n_EnchantID];
|
|
var option = enchant.Option[enchant.Index++];
|
|
sdata.Set_SlotEnchant(m_Parts, Select_EnchantCardData.Index, option.id, option.lv);
|
|
|
|
if (enchant.Option.Count <= enchant.Index)
|
|
{
|
|
ServerInfo.Ins.Save_EquipItem_EnchantOption(m_Data.n_EnchantID, NewGameUI.Ins.m_EquipmentUI.m_MenuBackData,
|
|
result =>
|
|
{
|
|
NewGameUI.Ins.m_EquipmentUI.m_MenuBackData.Init(false, true); // 초기화
|
|
|
|
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ACC, 0, result.EnchantCount);
|
|
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ALL, 0, result.EnchantCount);
|
|
|
|
sdata.Slot.Clear();
|
|
for (int i = 0; i < result.Slot.Count; i++)
|
|
sdata.Slot.Add(result.Slot[i].Get());
|
|
|
|
for (int i = 0; i < result.AllEnchantAmount.Count; i++)
|
|
sdata.Set_Item(result.AllEnchantAmount[i].itemid, result.AllEnchantAmount[i].amount);
|
|
|
|
sdata.EnchantOption[m_Data.n_EnchantID] = result.newoption;
|
|
|
|
RefreshUI();
|
|
});
|
|
}
|
|
else
|
|
{
|
|
NewGameUI.Ins.m_EquipmentUI.m_MenuBackData.Add_Enchant(m_Parts, Select_EnchantCardData.Index, m_Data.n_EnchantID);
|
|
RefreshUI();
|
|
}
|
|
}
|
|
}
|
|
void RefreshUI()
|
|
{
|
|
PopupMgr.Ins.m_EquipmentItemPopup.m_EquipItemEnchantOption.Set_UI();
|
|
Set_UI();
|
|
}
|
|
/* 변경마다 서버 탐
|
|
public void OnClick_EnchantEquipItem()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0 && sdata.Check_ItemAmount(m_Data.n_EnchantID, 1))
|
|
{ // 마법 부여 하자
|
|
ServerInfo.Ins.Save_EquipItem_Enchant(PopupMgr.Ins.m_EquipmentItemPopup.Get_ItemID(), m_Data.n_EnchantID,
|
|
Select_EnchantCardData.Index,
|
|
result =>
|
|
{
|
|
sdata.Use_Item(m_Data.n_EnchantID, 1);
|
|
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);
|
|
|
|
Set_UI();
|
|
});
|
|
}
|
|
}
|
|
*/
|
|
} |