121 lines
4.2 KiB
C#
121 lines
4.2 KiB
C#
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ShopCard : MonoBehaviour
|
|
{
|
|
public string m_ID;
|
|
public Image i_shopitem;
|
|
public TextMeshProUGUI t_peakefficiency;
|
|
public TextMeshProUGUI t_goods;
|
|
public TextMeshProUGUI t_price;
|
|
public GameObject go_BuyComplete;
|
|
|
|
shoptabledata m_Data;
|
|
|
|
#if UNITY_EDITOR
|
|
private void Reset()
|
|
{
|
|
i_shopitem = DSUtil.Get_Child_T<Image>(gameObject, "i_shopitem");
|
|
t_peakefficiency = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_peakefficiency");
|
|
t_goods = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_goods");
|
|
t_price = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_price");
|
|
go_BuyComplete = DSUtil.Get_Child_GameObject(gameObject, "BuyComplete");
|
|
}
|
|
#endif
|
|
|
|
private void Awake()
|
|
{
|
|
var btn = DSUtil.Get_Child_T<Button>(gameObject, "btn_buy");
|
|
btn.onClick.RemoveAllListeners();
|
|
btn.onClick.AddListener(OnClick_Button);
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
m_Data = table_shop.Ins.Get_Data(m_ID);
|
|
if (t_peakefficiency != null) t_peakefficiency.text = m_Data.s_PeakEffective;
|
|
t_goods.text = m_Data.s_Items;
|
|
t_price.text = m_Data.e_BuyType == eShopBuyType.IAP ? $"\\{m_Data.n_Price}" : m_Data.n_Price.ToString();
|
|
Set_UI();
|
|
}
|
|
|
|
void Set_UI()
|
|
{
|
|
if (go_BuyComplete != null)
|
|
{
|
|
go_BuyComplete.SetActive(!SaveMgr.Ins.CanBuyShopPackage(m_Data));
|
|
}
|
|
}
|
|
|
|
public void OnClick_Button()
|
|
{
|
|
switch (m_Data.e_BuyType)
|
|
{
|
|
case eShopBuyType.IAP:
|
|
InappInfo.Ins.BuyProduct(m_ID, () =>
|
|
{
|
|
SaveMgr.Ins.Add_Money(eMoney.AlbumOpen, m_Data.n_RewardHeart);
|
|
SaveMgr.Ins.Add_Money(eMoney.Chat, m_Data.n_RewardChatCoin);
|
|
SaveMgr.Ins.Add_Money(eMoney.Gacha, m_Data.n_RewardGacha);
|
|
SaveMgr.Ins.Set_ShopInit(m_Data.e_InAppInitType);
|
|
SaveMgr.Ins.Set_ShopAD(m_Data.b_AdRemove);
|
|
SaveMgr.Ins.Save();
|
|
|
|
LobbyUI.Ins.m_ToastUI.Set(Get_BuyItemMsg());
|
|
|
|
var cards = gameObject.transform.parent.GetComponentsInChildren<ShopCard>();
|
|
for (int i = 0; i < cards.Length; i++)
|
|
cards[i].Set_UI();
|
|
});
|
|
break;
|
|
case eShopBuyType.AD:
|
|
if (SaveMgr.Ins.CanShowShopAD())
|
|
{
|
|
ADInfo.Ins.Show_AD(false, () =>
|
|
{
|
|
SaveMgr.Ins.Add_Money(eMoney.Chat, m_Data.n_RewardChatCoin);
|
|
SaveMgr.Ins.Add_ShopADTime(table_GlobalValue.Ins.Get_Int("ADSec_Shop"));
|
|
LobbyUI.Ins.m_ToastUI.Set($"채팅 코인 {m_Data.n_RewardChatCoin}개를 획득했습니다.");
|
|
});
|
|
}
|
|
break;
|
|
case eShopBuyType.Coin:
|
|
if (SaveMgr.Ins.Check_Money(eMoney.AlbumOpen, m_Data.n_Price))
|
|
{
|
|
SaveMgr.Ins.Add_Money(eMoney.AlbumOpen, -m_Data.n_Price);
|
|
SaveMgr.Ins.Add_Money(eMoney.Chat, m_Data.n_RewardChatCoin);
|
|
SaveMgr.Ins.Save();
|
|
LobbyUI.Ins.m_ToastUI.Set($"채팅 코인 {m_Data.n_RewardChatCoin}개를 획득했습니다.");
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
string Get_BuyItemMsg()
|
|
{
|
|
var msg = "";
|
|
|
|
if (m_Data.n_RewardHeart > 0)
|
|
{
|
|
if (!string.IsNullOrEmpty(msg)) msg += "\n";
|
|
msg += $"앨범 오픈 재화 {m_Data.n_RewardHeart}개를 획득했습니다.";
|
|
}
|
|
|
|
if (m_Data.n_RewardChatCoin > 0)
|
|
{
|
|
if (!string.IsNullOrEmpty(msg)) msg += "\n";
|
|
msg += $"채팅 코인 {m_Data.n_RewardChatCoin}개를 획득했습니다.";
|
|
}
|
|
|
|
if (m_Data.n_RewardGacha > 0)
|
|
{
|
|
if (!string.IsNullOrEmpty(msg)) msg += "\n";
|
|
msg += $"뽑기 재화 {m_Data.n_RewardGacha}개를 획득했습니다.";
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(msg)) msg = "보상이 없습니다.\n보상을 설정해 주세요!";
|
|
return msg;
|
|
}
|
|
|
|
} |