Project_WL/Assets/Script/UI/Farm/FarmShopCard.cs

89 lines
3.1 KiB
C#

using CodeStage.AntiCheat.ObscuredTypes;
using System.Collections.Generic;
using TMPro;
using UnityEngine.UI;
public class FarmShopCard : CardBase
{
public Image[] images; // 0 등급, 1 아이템, 2 필요 재화
public TextMeshProUGUI[] texts; // 0 아이템 이름, 1 일일 제한, 2 무료, 3 광고 or 가격, 4 지급양
List<ObscuredInt> m_Data; // 0 FarmShop ID, 1 구매 횟수, 2 남은 시간
FarmShopListTableData m_Tdata;
private void Start()
{
Act_Repeat_for1sec = Set_Time;
}
void Set_Time()
{
switch (m_Tdata.e_ShopType)
{
case eShopType.AD: texts[2].text = m_Data[2] > 0 ? DSUtil.Get_TimeText_MS(m_Data[2]) : "광고(s)"; break;
case eShopType.Free: texts[2].text = m_Data[2] > 0 ? DSUtil.Get_TimeText_MS(m_Data[2]) : "무료(s)"; break;
}
}
public override void Set<T>(T _base)
{
base.Set(_base);
m_Data = _base as List<ObscuredInt>;
m_Tdata = table_farmshoplist.Ins.Get_Data(m_Data[0]);
var itemData = table_itemlist.Ins.Get_Data(m_Tdata.n_ItemID);
images[0].sprite = itemData.Get_GradeSprite();
images[1].sprite = itemData.Get_IconSprite();
images[2].enabled = true;
texts[0].text = table_itemlist.Ins.Get_ItemName(itemData.n_ItemID);
texts[1].text = $"{m_Data[1]}/{m_Tdata.n_DayLimit}";
texts[2].text = texts[3].text = "";
texts[4].text = m_Tdata.n_ItemAmount.ToString();
switch (m_Tdata.e_ShopType)
{
case eShopType.AD:
images[2].sprite = UIAtlasMgr.Ins.Get_Sprite("icon_ad");
texts[2].text = "광고(s)";
break;
case eShopType.Free:
images[2].enabled = false;
texts[2].text = "무료(s)";
break;
case eShopType.Pay:
images[2].sprite = table_itemlist.Ins.Get_Data(m_Tdata.n_PayItemID).Get_IconSprite();
texts[2].text = m_Tdata.n_PayItemAmount.ToString();
break;
}
Set_Time();
}
public void OnClick_Buy()
{
if (m_Data[1] < m_Tdata.n_DayLimit && m_Data[2] <= 0)
{
switch (m_Tdata.e_ShopType)
{
case eShopType.AD: ADInfo.Ins.Show_AD(BuySuccess); break;
case eShopType.Free: BuySuccess(); break;
case eShopType.Pay:
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.Check_ItemAmount(m_Tdata.n_PayItemID, m_Tdata.n_PayItemAmount))
{
sdata.Use_Item(m_Tdata.n_PayItemID, m_Tdata.n_PayItemAmount);
BuySuccess();
}
break;
}
}
}
void BuySuccess()
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Add_Item(m_Tdata.n_ItemID, m_Tdata.n_ItemAmount);
sdata.Buy_FarmShopItem(m_Data[0], m_Tdata.n_GapTime);
ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = m_Tdata.n_ItemID, amount = m_Tdata.n_ItemAmount });
FarmShopUI.Ins.Set();
}
}