| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | 
							- using System.Collections.Generic;
 
- using System.Linq;
 
- using Core.Audio;
 
- using Core.UI.UTool;
 
- using Excel2Json;
 
- using Fort23.Core;
 
- using Fort23.UTool;
 
- using GameLogic.Bag;
 
- using UnityEngine;
 
- using Utility.CTween;
 
- namespace Fort23.Mono
 
- {
 
-     [UIBinding(prefab = "UseExpElixirPanel")]
 
-     public partial class UseExpElixirPanel : UIPanel
 
-     {
 
-         List<ExpElixirItemWidget> _expElixirItemWidgets = new List<ExpElixirItemWidget>();
 
-         private void Init()
 
-         {
 
-             IsShowAppBar = false;
 
-             isAddStack = true;
 
-         }
 
-         public override CTask GetFocus()
 
-         {
 
-             AppBarPanel.OpenPanel(this);
 
-             return base.GetFocus();
 
-         }
 
-         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 && PlayerManager.Instance.BagController.IsEnough(i.ID, 1)).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 async 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();
 
-                 AudioManager.Instance.PlayAudio("ui_shiyonghuode");
 
-             }
 
-             else
 
-             {
 
-                 TipMessagePanel.OpenTipMessagePanel("道具不足!");
 
-                 return;
 
-             }
 
-             elixirItemWidget.fx_ui_danyao_qi.gameObject.SetActive(true);
 
-             elixirItemWidget.fx_ui_danyao_qi.Play();
 
-             HeroInformationPanel heroInformationPanel = UIManager.Instance.GetComponent<HeroInformationPanel>();
 
-             // heroInformationPanel.UseExpElixir()
 
-             GameObjectPool gameObjectPool = null;
 
-             gameObjectPool = await GObjectPool.Instance.FetchAsync<GameObjectPool>("fx_ui_danyao_tw");
 
-             gameObjectPool.own.transform.SetParent(this.transform);
 
-             Vector2 pos = transform.worldToLocalMatrix * elixirItemWidget.fx_ui_danyao_qi.transform.position;
 
-             Vector2 pos1 = transform.worldToLocalMatrix *
 
-                            heroInformationPanel.fxroot.GetComponent<RectTransform>().position;
 
-             gameObjectPool.own.GetComponent<RectTransform>().anchoredPosition = pos;
 
-             CustomTweenManager
 
-                 .To(() => pos, x => gameObjectPool.own.transform.GetComponent<RectTransform>().anchoredPosition = x,
 
-                     pos1, 0.5f, gameObjectPool.own)
 
-                 .SetEase(CustomTweenEX.CustomAnimationCurve.Line).SetLoop(false).OnCompleteAction = () =>
 
-             {
 
-                 GObjectPool.Instance.Recycle(gameObjectPool);
 
-                 heroInformationPanel.fx_ui_danyao_shi.gameObject.SetActive(true);
 
-                 heroInformationPanel.fx_ui_danyao_shi.Play();
 
-             };
 
-             int exp = 0;
 
-             AccumulatorUtility.StartAccumulation(
 
-                 elixirItemWidget.ItemConfig.associateVlaue[0], 0.2f, 20,
 
-                 current =>
 
-                 {
 
-                     PlayerManager.Instance.myHero.heroData.exp += current;
 
-                     AccountFileInfo.Instance.SavePlayerData();
 
-                     LogTool.Error("z" + current);
 
-                 },
 
-                 () => Debug.Log("累加完成!")
 
-             );
 
-             Text_UseCount.text = $"今日\n{AccountFileInfo.Instance.playerData.todayUseExpElixrPanelCount}/20";
 
-         }
 
-         public async static CTask<UseExpElixirPanel> OpenPanel()
 
-         {
 
-             UseExpElixirPanel useExpElixirPanel =
 
-                 await UIManager.Instance.LoadAndOpenPanel<UseExpElixirPanel>(null, UILayer.Top, isFocus: false);
 
-             useExpElixirPanel.CustomInit();
 
-             return useExpElixirPanel;
 
-         }
 
-         public async override CTask Close()
 
-         {
 
-             foreach (var expElixirItemWidget in _expElixirItemWidgets)
 
-             {
 
-                 UIManager.Instance.DormancyGComponent(expElixirItemWidget);
 
-             }
 
-             _expElixirItemWidgets.Clear();
 
-             await base.Close();
 
-         }
 
-     }
 
- }
 
 
  |