using System.Collections.Generic; using System.Linq; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Bag; namespace Fort23.Mono { [UIBinding(prefab = "UseExpElixirPanel")] public partial class UseExpElixirPanel : UIPanel { List _expElixirItemWidgets = new List(); private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async void CustomInit() { List itemConfigs = ConfigComponent.Instance.GetAll().ToList(); List itemConfigs2 = itemConfigs.Where(i => i.itemTag == 5).ToList(); foreach (var itemConfig in itemConfigs2) { ExpElixirItemWidget elixirItemWidget = await UIManager.Instance.CreateGComponent(null, Content); elixirItemWidget.CustomInit(itemConfig.ID); elixirItemWidget.onClick = OnClick; _expElixirItemWidgets.Add(elixirItemWidget); } Text_UseCount.text = $"今日\n{AccountFileInfo.Instance.playerData.todayUseExpElixrPanelCount}/20"; } private void OnClick(ItemWidgetBasic obj) { ExpElixirItemWidget elixirItemWidget = obj as ExpElixirItemWidget; if (AccountFileInfo.Instance.playerData.todayUseExpElixrPanelCount >= 20) { TipMessagePanel.OpenTipMessagePanel("今日使用经验已达上限!"); return; } if (PlayerManager.Instance.BagController.DeductItem(elixirItemWidget.ItemConfig.ID, 1)) { PlayerManager.Instance.myHero.heroData.exp += elixirItemWidget.ItemConfig.associateVlaue[0]; AccountFileInfo.Instance.playerData.todayUseExpElixrPanelCount++; AccountFileInfo.Instance.SavePlayerData(); } else { TipMessagePanel.OpenTipMessagePanel("道具不足!"); return; } Text_UseCount.text = $"今日\n{AccountFileInfo.Instance.playerData.todayUseExpElixrPanelCount}/20"; } public async static CTask OpenPanel() { UseExpElixirPanel useExpElixirPanel = await UIManager.Instance.LoadAndOpenPanel(null); useExpElixirPanel.CustomInit(); return useExpElixirPanel; } public override void Close() { foreach (var expElixirItemWidget in _expElixirItemWidgets) { UIManager.Instance.DormancyGComponent(expElixirItemWidget); } _expElixirItemWidgets.Clear(); base.Close(); } } }