先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
139 lines
5.8 KiB
C#
139 lines
5.8 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using TMPro;
|
|
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 List<List<RewardItemNew>> rewardItems = new List<List<RewardItemNew>>();
|
|
private PlayerItemData _playerItemData;
|
|
private IAPItemList[] iaps;
|
|
private Pack[] packs;
|
|
private List<List<ItemData>> itemDataLists;
|
|
[SerializeField] private Button btnBuyAll;
|
|
[SerializeField] private TMP_Text textPriceBuyAll, textDiscount;
|
|
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 < packs.Length; 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<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.GetItemDataByDropIdLureInflation(null, 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<TMP_Text>().text = GetRemainingTime();
|
|
SetupBuyALlBtn(VIPDrops[3]);
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
private void SetupBuyALlBtn(int packId)
|
|
{
|
|
var pack = _tables.TbPack.DataMap[packId];
|
|
var dropId = pack.DropID;
|
|
var iapId = pack.IAPID;
|
|
var discount = ConvertTools.GetDiscountStringActual(pack.Rebate);
|
|
textDiscount.text = discount;
|
|
_playerItemData.ResolveIapId(iapId, out var iapItemList, out var textPrice);
|
|
textPriceBuyAll.text = LocalizationMgr.GetFormatTextValue("UI_GiftPopupPanel_9_4", textPrice) ;
|
|
btnBuyAll.onClick.AddListener(() => OnClickBuyAll(dropId, iapItemList));
|
|
}
|
|
|
|
private async void OnClickBuyAll(int dropId, IAPItemList iapItemList)
|
|
{
|
|
ShopBuyTypeData shopBuyTypeData = new ShopBuyTypeData();
|
|
shopBuyTypeData.type = ShopBuyType.EventPack;
|
|
shopBuyTypeData.ID = _epd.CurrentEventID;
|
|
var itemList = _playerItemData.GetItemDataByDropIdLureInflation(null, dropId);
|
|
bool res = await GContext.container.Resolve<PlayerShopData>()
|
|
.OnBuy(dropId, shopBuyTypeData, iapItemList, itemList);
|
|
if (res)
|
|
{
|
|
foreach (Button b in buyBtns)
|
|
{
|
|
b.onClick.RemoveAllListeners();
|
|
}
|
|
//_epd.AddPurchaceCount();
|
|
UIManager.Instance.DestroyUI(UITypes.GiftPopupPanel_9);
|
|
}
|
|
}
|
|
}
|