using System.Collections.Generic; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Bag; namespace Fort23.Mono { [UIBinding(prefab = "DaoYouGuaJiAwardPanel")] public partial class DaoYouGuaJiAwardPanel : UIPanel { List _daoYouGuaJiAwardWidgets = new List(); private void Init() { isAddStack = true; IsShowAppBar = false; } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_Award.onClick.AddListener(async () => { List items = new List(); foreach (var playerDataDaoYouGuaiJiData in AccountFileInfo.Instance.playerData.daoYouGuaiJiDatas) { if (playerDataDaoYouGuaiJiData.isLeave && playerDataDaoYouGuaiJiData.items.Count > 0) { foreach (var itemData in playerDataDaoYouGuaiJiData.items) { items.Add(new ItemInfo(itemData)); } } } if (items.Count <= 0) { return; } AccountFileInfo.Instance.playerData.daoYouGuaiJiDatas.RemoveAll(p => p.isLeave); AccountFileInfo.Instance.SavePlayerData(); EventManager.Instance.Dispatch(CustomEventType.DaoYouCounUpdate, null); RewardsPanel rewardsPanel = await RewardsPanel.OpenPanel(items); await rewardsPanel.UIClosed(); UIManager.Instance.HideUIUIPanel(this); }); } public async override CTask AsyncInit(object[] uiData) { foreach (var playerDataDaoYouGuaiJiData in AccountFileInfo.Instance.playerData.daoYouGuaiJiDatas) { if (playerDataDaoYouGuaiJiData.isLeave && playerDataDaoYouGuaiJiData.items.Count > 0) { DaoYouGuaJiAwardWidget daoYouGuaJiAwardWidget = await UIManager.Instance.CreateGComponent(null, Content); daoYouGuaJiAwardWidget.CustomInit(playerDataDaoYouGuaiJiData); _daoYouGuaJiAwardWidgets.Add(daoYouGuaJiAwardWidget); } } return await base.AsyncInit(uiData); } public static async CTask OpenPanel() { await UIManager.Instance.LoadAndOpenPanel(null); } public override void Close() { foreach (var daoYouGuaJiAwardWidget in _daoYouGuaJiAwardWidgets) { UIManager.Instance.DormancyGComponent(daoYouGuaJiAwardWidget); } _daoYouGuaJiAwardWidgets.Clear(); base.Close(); } } }