using System.Collections.Generic; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Bag; using GameLogic.Player; using Utility; namespace Fort23.Mono { [UIBinding(prefab = "QiankundaiInfoPanel")] public partial class QiankundaiInfoPanel : 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(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async override CTask AsyncInit(object[] uiData) { Text_Desc.text = $"挂机上限时间:{UtilTools.TimeToHSM(PlayerManager.Instance.gameConstantConfig.qiankundaiMaxTime)}"; List qiankundaiConfigs = new List(); foreach (var playerDataQiankundaiData in AccountFileInfo.Instance.playerData.QiankundaiDatas) { QiankundaiConfig qiankundaiConfig = ConfigComponent.Instance.Get(playerDataQiankundaiData.id); if (PlayerManager.Instance.myHero.powerUpConfig.ID >= qiankundaiConfig.dropLevel[0] && PlayerManager.Instance.myHero.powerUpConfig.ID <= qiankundaiConfig.dropLevel[1]) { qiankundaiConfigs.Add(qiankundaiConfig); } } if (TimeHelper.ClientNow() >= AccountFileInfo.Instance.playerData.QiankundaiLingQuDailyDropTime) { qiankundaiConfigs.AddRange(PlayerManager.Instance.GetFixedTimeQiankundaiConfigs()); } foreach (var qiankundaiConfig in qiankundaiConfigs) { for (var i = 0; i < qiankundaiConfig.ChoukaID.Length; i++) { if (qiankundaiConfig.DropCount[i] < 0) { List itemInfo = DropManager.Instance.Drop(qiankundaiConfig.ChoukaID[i], qiankundaiConfig.DropCount[i]); foreach (var info in itemInfo) { WidgetItem widgetItem = await UIManager.Instance.CreateGComponent(null, Content); widgetItem.InitWidget(new ItemInfo(info.itemID, 0)); items.Add(widgetItem); } } else { DropConfig dropConfig = ConfigComponent.Instance.Get(qiankundaiConfig.ChoukaID[i]); foreach (var i1 in dropConfig.showItemId) { WidgetItem widgetItem = await UIManager.Instance.CreateGComponent(null, Content); widgetItem.InitWidget(new ItemInfo(i1, 0)); items.Add(widgetItem); } } } } return await base.AsyncInit(uiData); } 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(); } } }