Files
MinFt/Client/Assets/Scripts/UI/Shop/GiftPopupPanel_9.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

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);
}
}
}