备份CatanBuilding瘦身独立工程
This commit is contained in:
101
Assets/Scripts/UI/Shop/GiftPopupPanel_9.cs
Normal file
101
Assets/Scripts/UI/Shop/GiftPopupPanel_9.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user