using System.Collections.Generic; using TMPro; public class EquipmentMakePopup : uScrollViewMgr { public EquipmentSimpleCard MakeItemCard; public EquipmentSimpleCard[] MaterialCards; public TextMeshProUGUI text_goodsamount; EquipmentListTableData m_Data; List list_itemdata = new List(); ItemListTableData SelectItem; private void Start() { for (int i = 0; i < MaterialCards.Length; i++) MaterialCards[i].Set_CardType(eUICardType.MakeMaterial); } public void Set(EquipmentListTableData data) { base.Set(); m_Data = data; SelectItem = list_itemdata.Find(f => f.n_ItemID == data.n_EquipID); Set_UI(); NewGameUI.Ins.m_EquipmentUI.Set_Scrollviews(false); } public override void Set_UI() { var sdata = ServerInfo.Ins.m_ServerData; if (DSUtil.CheckNull(SelectItem)) { // 카드 없음 SelectItem = table_itemlist.Ins.Get_Data(m_Data.n_EquipID); list_itemdata.Add(SelectItem); } else { // 카드 존재 list_CardBase.ForEach(f => (f as EquipmentSimpleCard).Set_Select(false)); } // 상단 카드 Set_ScrollView(list_itemdata); // 화살표 및 선택 표시 for (int i = 0; i < list_CardBase.Count; i++) { var temp = list_CardBase[i] as EquipmentSimpleCard; temp.Set_Arrow(i == list_CardBase.Count - 1 ? false : true); temp.Set_CardType(eUICardType.MakeMaterial); temp.Set_Select(SelectItem.n_ItemID == temp.Get_Data().n_EquipID); } // 만들 아이템 MakeItemCard.Set(SelectItem); MakeItemCard.Set_Child(); var Tdata = table_equipcrafting.Ins.Get_Data(m_Data.n_EquipID); if (!DSUtil.CheckNull(Tdata)) { MaterialCards[0].Set(table_itemlist.Ins.Get_Data(Tdata.n_MaterialValue1)); MaterialCards[0].Set_NeedAmount(Tdata.n_MaterialCount1); MaterialCards[1].Set(table_itemlist.Ins.Get_Data(Tdata.n_MaterialValue2)); MaterialCards[1].Set_NeedAmount(Tdata.n_MaterialCount2); if (Tdata.n_MaterialValue3 > 0) { MaterialCards[2].Set(table_itemlist.Ins.Get_Data(Tdata.n_MaterialValue3)); MaterialCards[2].Set_NeedAmount(Tdata.n_MaterialCount3); } else MaterialCards[2].Set_Null(); var craftinggoodsamount = sdata.Get_ItemAmount(Tdata.n_MainGoodsID); if (craftinggoodsamount >= Tdata.n_MainGoodsCount) text_goodsamount.text = $"{craftinggoodsamount}/{NumberFormatter.FormatNumber(Tdata.n_MainGoodsCount)}"; else text_goodsamount.text = $"{craftinggoodsamount}/{NumberFormatter.FormatNumber(Tdata.n_MainGoodsCount)}"; } #if UNITY_EDITOR else { if (Popup.Ins) Popup.Ins.Set(ePopupType.One, 174, null, null, $"table_equipcrafting 에 없는 아이디\n\n{m_Data.n_EquipID}"); } #endif } bool CanMake() { var Tdata = table_equipcrafting.Ins.Get_Data(SelectItem.n_ItemID); if (!DSUtil.CheckNull(Tdata)) { var sdata = ServerInfo.Ins.m_ServerData; if (Tdata.n_MaterialValue1 == 0 || sdata.Check_ItemAmount(Tdata.n_MaterialValue1, Tdata.n_MaterialCount1)) { if (Tdata.n_MaterialValue2 == 0 || sdata.Check_ItemAmount(Tdata.n_MaterialValue2, Tdata.n_MaterialCount2)) { if (Tdata.n_MaterialValue3 == 0 || sdata.Check_ItemAmount(Tdata.n_MaterialValue3, Tdata.n_MaterialCount3)) { if (Tdata.n_MainGoodsID == 0 || sdata.Check_ItemAmount(Tdata.n_MainGoodsID, Tdata.n_MainGoodsCount)) { return true; } } } } } return false; } public void OnClick_MakeEquipment() { if (CanMake()) { ServerInfo.Ins.Save_Equipment_Craft(SelectItem.n_ItemID, () => { var Tdata = table_equipcrafting.Ins.Get_Data(SelectItem.n_ItemID); if (!DSUtil.CheckNull(Tdata)) { var sdata = ServerInfo.Ins.m_ServerData; if (Tdata.n_MaterialValue1 > 0) sdata.Use_Item(Tdata.n_MaterialValue1, Tdata.n_MaterialCount1); if (Tdata.n_MaterialValue2 > 0) sdata.Use_Item(Tdata.n_MaterialValue2, Tdata.n_MaterialCount2); if (Tdata.n_MaterialValue3 > 0) sdata.Use_Item(Tdata.n_MaterialValue3, Tdata.n_MaterialCount3); if (Tdata.n_MainGoodsID > 0) sdata.Use_Item(Tdata.n_MainGoodsID, Tdata.n_MainGoodsCount); sdata.Add_Item(Tdata.n_CraftingItemID, 1); Set_UI(); if (PopupMgr.Ins.m_EquipmentPopup.isActiveAndEnabled) PopupMgr.Ins.m_EquipmentPopup.Set_UI(); if (NewGameUI.Ins.m_EquipmentUI.m_EquipmentUI_Items.isActiveAndEnabled) NewGameUI.Ins.m_EquipmentUI.m_EquipmentUI_Items.Set_UI(); if (CollectionEquipmentUI.isIns && CollectionEquipmentUI.Ins.isActiveAndEnabled) CollectionEquipmentUI.Ins.Set(); ToastUI.Ins.Set(174, $"{Tdata.n_CraftingItemID} 제작 성공!!"); sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_CRAFTING); sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_CRAFTING_ACC); } }); } } public override void OnClick_Back() { base.OnClick_Back(); list_itemdata.Clear(); NewGameUI.Ins.m_EquipmentUI.Set_Scrollviews(true); } }