89 lines
3.1 KiB
C#
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();
|
|
}
|
|
} |