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