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

100 lines
3.1 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
using CodeStage.AntiCheat.ObscuredTypes;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum eShopEvent { None, Open, FirstInapp, CafeJoin }
public class ShopEventCard : MonoBehaviour
{
public eShopEvent m_ID;
public GameObject go_get;
public UISprite sprite_btn;
string m_Key;
List<ObtainItemData> list_reward = new List<ObtainItemData>();
void Awake()
{
switch (m_ID)
{
case eShopEvent.Open: // 챕터3 클리어
for (int i = 0; i < 8; i++) list_reward.Add(new ObtainItemData { m_Item = eItem.AllGambleTicket + i, m_Amount = 50 });
break;
case eShopEvent.FirstInapp: // 아무거나 결제
for (int i = 0; i < 8; i++) list_reward.Add(new ObtainItemData { m_Item = eItem.AllGambleTicket + i, m_Amount = 100 });
break;
case eShopEvent.CafeJoin:
break;
}
}
private void OnEnable()
{
switch (m_ID)
{
case eShopEvent.Open: // 챕터3 클리어
case eShopEvent.FirstInapp: // 아무거나 결제
go_get.SetActive(!DataCheck());
sprite_btn.spriteName = CanGet_Reward() ? "button5" : MyValue.OffButtonName;
break;
}
}
string Get_Key()
{
if (string.IsNullOrEmpty(m_Key))
m_Key = ((int)m_ID).ToString();
return m_Key;
}
public void OnClick_Button()
{
switch (m_ID)
{
case eShopEvent.Open: // 챕터3 클리어
case eShopEvent.FirstInapp: // 아무거나 결제
if (CanGet_Reward())
DataWrite();
break;
case eShopEvent.CafeJoin:
WebViewInfo.Ins.Show_WebView("https://cafe.naver.com/lwstory");
break;
}
}
public bool CanGet_Reward()
{
switch (m_ID)
{
case eShopEvent.Open: // 챕터3 클리어
return DataCheck();
case eShopEvent.FirstInapp: // 아무거나 결제
return DataCheck();
}
return false;
}
bool DataCheck()
{
var sdata = ServerInfo.Ins.m_ServerData;
var shopevent = sdata.Event;
return shopevent == null || !shopevent.ContainsKey(Get_Key()) || shopevent[Get_Key()] < 1;
}
void DataWrite()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.Event == null) sdata.Event = new Dictionary<string, ObscuredInt>();
if (sdata.Event.ContainsKey(Get_Key()))
sdata.Event[Get_Key()] = 1;
else
sdata.Event.Add(Get_Key(), 1);
sdata.Event[Get_Key()].RandomizeCryptoKey();
List<ItemData> lst = new List<ItemData>(); ;
for (int i = 0; i < list_reward.Count; i++)
lst.AddRange(sdata.Add_Item(new ItemData(list_reward[i].m_Item, list_reward[i].m_ID, list_reward[i].m_Amount, "", eUICardType.GetItem)));
GetItemUI.Ins.Set(lst);
GetItemUI.Ins.Show_Items();
OnEnable();
}
}