1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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<ExpElixirItemWidget> _expElixirItemWidgets = new List<ExpElixirItemWidget>();
- 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<ItemConfig> itemConfigs = ConfigComponent.Instance.GetAll<ItemConfig>().ToList();
- List<ItemConfig> itemConfigs2 = itemConfigs.Where(i => i.itemTag == 5).ToList();
- foreach (var itemConfig in itemConfigs2)
- {
- ExpElixirItemWidget elixirItemWidget = await UIManager.Instance.CreateGComponent<ExpElixirItemWidget>(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<UseExpElixirPanel> OpenPanel()
- {
- UseExpElixirPanel useExpElixirPanel = await UIManager.Instance.LoadAndOpenPanel<UseExpElixirPanel>(null);
- useExpElixirPanel.CustomInit();
- return useExpElixirPanel;
- }
- public override void Close()
- {
- foreach (var expElixirItemWidget in _expElixirItemWidgets)
- {
- UIManager.Instance.DormancyGComponent(expElixirItemWidget);
- }
- _expElixirItemWidgets.Clear();
- base.Close();
- }
- }
- }
|