| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | using System.Collections.Generic;using System.Threading.Tasks;using Common.Utility.CombatEvent;using Fort23.Core;using GameLogic.Combat.CombatTool;using GameLogic.Combat.CombatType;using GameLogic.Hero;using UnityEngine;namespace Fort23.Mono{    [UIBinding(prefab = "MainUIPanel")]    public partial class MainUIPanel : UIPanel    {        private void Init()        {                        InitBattleHero();        }        protected override void AddEvent()        {            CombatEventManager.Instance.AddEventListener(CombatEventType.CombatExpAlter, CombatExpAlter);            EventManager.Instance.AddEventListener(CustomEventType.HeroPowerUp, OnHeroUpgrade);        }        protected override void DelEvent()        {            CombatEventManager.Instance.RemoveEventListener(CombatEventType.CombatExpAlter, CombatExpAlter);            EventManager.Instance.RemoveEventListener(CustomEventType.HeroPowerUp, OnHeroUpgrade);        }        public override void AddButtonEvent()        {        }        private void CombatExpAlter(IEventData eventData)        {            ExpAlter();        }        private void ExpAlter()        {            if (CombatController.currActiveCombat == null || CombatController.currActiveCombat.CombatTypeBasic == null)            {                return;            }            LevelBattleCombatType levelBattleCombatType =                CombatController.currActiveCombat.CombatTypeBasic as LevelBattleCombatType;            float bl = (levelBattleCombatType.exp * 1.0f) / levelBattleCombatType.CurrMaxExp;            exp.value = bl;            TextExp.text = levelBattleCombatType.exp + "/" + levelBattleCombatType.CurrMaxExp;        }        private void OnHeroUpgrade(IEventData eventData)         {            HeroPowerUpEventData data = eventData as HeroPowerUpEventData;            HeroInfo heroInfo = (HeroInfo)PlayerManager.Instance.GetHeroInfo(data.heroModelID);            foreach (WidgetHero widgetHero in widgetHeroes)            {                if (widgetHero.heroInfo.modelID == heroInfo.modelID)                {                    widgetHero.UpdateWidgetUI(heroInfo);                    break;                }            }        }                private List<WidgetHero> widgetHeroes = new List<WidgetHero>();                     private async void InitBattleHero()        {            widgetHeroes.Clear();            for (int i = 0; i < PlayerManager.Instance.heroListInLead.Count; i++)            {                RectTransform rectTransform = hero_battle[i] as RectTransform;                WidgetHero itemHero = await UIManager.Instance.CreateGComponent<WidgetHero>(null,                    poolName: "WidgetHero", root: rectTransform);                itemHero.InitHero(PlayerManager.Instance.heroListInLead[i]);                                widgetHeroes.Add(itemHero);            }        }    }}
 |