Project_WL/Assets/Script/UI/Shop/ShopCard.cs

52 lines
1.7 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class ShopCard : CardBase
{
public TextMeshProUGUI[] texts; // 0 상품 이름, 1 제한횟수, 2 가격, 3 최초구매
public Image[] images; // 0 상품, 1 가격
public GameObject[] gos; // 0 최초 구매, 1 품절
ShopItemListTableData m_Data;
public override void Set<T>(T _base)
{
base.Set(_base);
m_Data = _base as ShopItemListTableData;
var sdata = ServerInfo.Ins.m_ServerData;
texts[0].text = m_Data.Get_Name();
texts[1].text = sdata.Get_ShopLimitText(m_Data);
texts[2].text = sdata.Get_ShopPriceText(m_Data);
texts[3].text = DSUtil.Format(390, m_Data.n_FirstBonus);
images[0].sprite = m_Data.Get_Icon();
images[1].enabled = m_Data.n_PriceItemID > 0;
if (images[1].enabled) images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_PriceItemID);
gos[0].SetActive(m_Data.n_FirstBonus > 0);
gos[1].SetActive(isSoldOut()); // 품절 여부
}
bool isSoldOut()
{
var sdata = ServerInfo.Ins.m_ServerData;
var buycount = sdata.Get_ShopBuyCount(m_Data.n_ShopItemID);
if (m_Data.BuyLimit > 0) return buycount >= m_Data.BuyLimit;
if (m_Data.BuyLimit_Day > 0) return buycount >= m_Data.BuyLimit_Day;
if (m_Data.BuyLimit_Week > 0) return buycount >= m_Data.BuyLimit_Week;
if (m_Data.BuyLimit_Month > 0) return buycount >= m_Data.BuyLimit_Month;
return false;
}
public void OnClick_Buy()
{
if (!isSoldOut())
{
if (m_Data.b_Package)
NewGameUI.Ins.m_ShopUI.m_ShopPackagePopup.Set(m_Data);
}
}
}