using System.Collections.Generic; using Excel2Json; using Fort23.Core; using GameLogic.Bag; using GameLogic.Player; using Utility; namespace Fort23.Mono { [UIBinding(prefab = "QiankundaiPanel")] public partial class QiankundaiPanel : UIPanel { List items = new List(); private void Init() { isPopUi = true; } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_LingQu.onClick.AddListener(() => { AccountFileInfo.Instance.playerData.QiankundaiDropTimer = 0; List itemInfos = new List(); //固定时间掉落奖励 foreach (var playerDataQiankundaiItemData in AccountFileInfo.Instance.playerData.QiankundaiItemDatas) { ItemInfo itemInfo = new ItemInfo(playerDataQiankundaiItemData); PlayerManager.Instance.BagController.AddItem(itemInfo); itemInfos.Add(itemInfo); } //可以掉落每日刷新奖励 if (TimeHelper.ClientNow() >= AccountFileInfo.Instance.playerData.QiankundaiLingQuDailyDropTime) { List qiankundaiConfigs = PlayerManager.Instance.GetFixedTimeQiankundaiConfigs(); foreach (var qiankundaiConfig in qiankundaiConfigs) { for (var i = 0; i < qiankundaiConfig.ChoukaID.Length; i++) { List itemInfo = DropManager.Instance.Drop(qiankundaiConfig.ChoukaID[i], qiankundaiConfig.DropCount[i]); foreach (var info in itemInfo) { PlayerManager.Instance.BagController.AddItem(info); itemInfos.Add(info); } } } } AccountFileInfo.Instance.playerData.QiankundaiItemDatas.Clear(); AccountFileInfo.Instance.playerData.QiankundaiLingQuDailyDropTime = TimeHelper.GetBaseRefreshTime(TimeHelper.ClientNow()); AccountFileInfo.Instance.SavePlayerData(); RewardsPanel.OpenPanel(itemInfos); CustomInit(); }); Btn_XiangQing.onClick.AddListener(() => { QiankundaiInfoPanel.OpenPanel(); }); } public async override CTask AsyncInit(object[] uiData) { await CustomInit(); return await base.AsyncInit(uiData); } public async CTask CustomInit() { foreach (var widgetItem in items) { UIManager.Instance.DormancyGComponent(widgetItem); } items.Clear(); Text_Desc.text = $"挂机时间:{UtilTools.TimeToHSM(AccountFileInfo.Instance.playerData.QiankundaiDropTimer)}/{UtilTools.TimeToHSM(PlayerManager.Instance.gameConstantConfig.qiankundaiMaxTime)}"; foreach (var playerDataQiankundaiItemData in AccountFileInfo.Instance.playerData.QiankundaiItemDatas) { WidgetItem widgetItem = await UIManager.Instance.CreateGComponent(null, Content); widgetItem.InitWidget(new ItemInfo(playerDataQiankundaiItemData)); items.Add(widgetItem); } } public static async CTask OpenPanel() { await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Top); } public override void Close() { foreach (var widgetItem in items) { UIManager.Instance.DormancyGComponent(widgetItem); } items.Clear(); base.Close(); } } }