144 lines
5.6 KiB
C#
144 lines
5.6 KiB
C#
using System.Collections.Generic;
|
|
using TMPro;
|
|
|
|
public class EquipmentMakePopup : uScrollViewMgr
|
|
{
|
|
public EquipmentSimpleCard MakeItemCard;
|
|
public EquipmentSimpleCard[] MaterialCards;
|
|
public TextMeshProUGUI text_goodsamount;
|
|
|
|
EquipmentListTableData m_Data;
|
|
List<ItemListTableData> list_itemdata = new List<ItemListTableData>();
|
|
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 = $"<color=green>{craftinggoodsamount}/{NumberFormatter.FormatNumber(Tdata.n_MainGoodsCount)}";
|
|
else
|
|
text_goodsamount.text = $"<color=red>{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())
|
|
{
|
|
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);
|
|
}
|
|
} |