102 lines
4.4 KiB
C#
102 lines
4.4 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
public class GiftPopupPanel_9 : MonoBehaviour
|
|
{
|
|
private List<int> _VIPList;//correct vip list of the current pack
|
|
private EventPackData _epd;
|
|
private FishingEvent _currentEvent;
|
|
private Tables _tables;
|
|
private Button closeBtn;
|
|
private Button[] buyBtns;
|
|
private TMPro.TMP_Text[] buyTexts;
|
|
private List<List<RewardItemNew>> rewardItems = new List<List<RewardItemNew>>();
|
|
private PlayerItemData _playerItemData;
|
|
private IAPItemList[] iaps;
|
|
private Pack[] packs;
|
|
private List<List<ItemData>> itemDataLists;
|
|
protected void Start()
|
|
{
|
|
_epd = GContext.container.Resolve<EventPackData>();
|
|
_tables = GContext.container.Resolve<Tables>();
|
|
_playerItemData = GContext.container.Resolve<PlayerItemData>();
|
|
_currentEvent = _tables.TbFishingEvent.DataMap[_epd.CurrentEventID];
|
|
closeBtn = transform.Find("root/btn_close").GetComponent<Button>();
|
|
buyBtns = new Button[3];
|
|
iaps = new IAPItemList[3];
|
|
packs = new Pack[3];
|
|
itemDataLists = new List<List<ItemData>>();
|
|
if (closeBtn == null)
|
|
Debug.LogWarning($"Not close button found in {gameObject}.");
|
|
else
|
|
closeBtn.onClick.AddListener(OnClickClose);
|
|
if (!_epd.IsActive)
|
|
OnClickClose();
|
|
List<int> VIPDrops = _tables.TbEventPackManager.DataMap[_currentEvent.RedirectID]
|
|
.VIPPackList[_epd.VIPLvlWhenEventActivated];
|
|
buyBtns[0] = transform.Find("root/gift1/Item/btn_buy/btn_green").GetComponent<Button>();
|
|
buyBtns[1] = transform.Find("root/gift2/Item/btn_buy/btn_green").GetComponent<Button>();
|
|
buyBtns[2] = transform.Find("root/gift3/Item/btn_buy/btn_green").GetComponent<Button>();
|
|
buyBtns[0].onClick.AddListener(async () => await OnClickBuy(0));
|
|
buyBtns[1].onClick.AddListener(async () => await OnClickBuy(1));
|
|
buyBtns[2].onClick.AddListener(async () => await OnClickBuy(2));
|
|
for (int i = 0; i < VIPDrops.Count; i++)
|
|
{
|
|
int packIAP = _tables.TbPack.DataMap[VIPDrops[i]].IAPID;
|
|
packs[i] = _tables.TbPack.DataMap[VIPDrops[i]];
|
|
iaps[i] = _tables.TbIAPItemList.GetOrDefault(packIAP);
|
|
SKUDetailDataEvent sdde = new SKUDetailDataEvent(iaps[i]);
|
|
GContext.Publish(sdde);
|
|
buyBtns[i].gameObject.transform.Find("Ani_Container/p_text")
|
|
.GetComponent<TMPro.TMP_Text>().text = sdde.price;
|
|
}
|
|
//Show reward item Icons and quantities
|
|
Transform[] rewards = new Transform[3];
|
|
rewards[0] = transform.Find("root/gift1/Item/reward/");
|
|
rewards[1] = transform.Find("root/gift2/Item/reward/");
|
|
rewards[2] = transform.Find("root/gift3/Item/reward/");
|
|
rewardItems = new List<List<RewardItemNew>>();
|
|
for (int i = 0; i < rewards.Length; i++)
|
|
{
|
|
rewardItems.Add(rewards[i].GetComponentsInChildren<RewardItemNew>().ToList());
|
|
itemDataLists.Add(_playerItemData.GetItemDataByDropId(VIPDrops[i]));
|
|
for (int j = 0; j < rewardItems[i].Count; j++)
|
|
rewardItems[i][j].SetData(itemDataLists[i][j], abbr: true);
|
|
}
|
|
|
|
//Update time
|
|
transform.Find("root/text_time").GetComponent<TMPro.TMP_Text>().text = GetRemainingTime();
|
|
}
|
|
private async System.Threading.Tasks.Task OnClickBuy(int idx)
|
|
{
|
|
ShopBuyTypeData shopBuyTypeData = new ShopBuyTypeData();
|
|
shopBuyTypeData.type = ShopBuyType.EventPack;
|
|
shopBuyTypeData.ID = _epd.CurrentEventID;
|
|
bool res = await GContext.container.Resolve<PlayerShopData>()
|
|
.OnBuy(packs[idx].DropID, shopBuyTypeData, iaps[idx], itemDataLists[idx]);
|
|
if (res)
|
|
{
|
|
foreach (Button b in buyBtns)
|
|
{
|
|
b.onClick.RemoveAllListeners();
|
|
}
|
|
//_epd.AddPurchaceCount();
|
|
UIManager.Instance.DestroyUI(UITypes.GiftPopupPanel_9);
|
|
}
|
|
}
|
|
private string GetRemainingTime()
|
|
{
|
|
TimeSpan ts = DateTime.Parse((_currentEvent.TimeDefinition as LimitedTime).EndTime) - ZZTimeHelper.UtcNow();
|
|
return ConvertTools.ConvertTime2(ts);
|
|
}
|
|
private void OnClickClose()
|
|
{
|
|
UIManager.Instance.DestroyUI(UITypes.GiftPopupPanel_9);
|
|
}
|
|
}
|