| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- using System.Collections.Generic;
 
- using Common.Utility.CombatEvent;
 
- using Fort23.Core;
 
- using GameLogic.Combat.Hero;
 
- using UnityEngine;
 
- using Utility;
 
- namespace Fort23.Mono
 
- {
 
-     [UIBinding(prefab = "CombatHPPanel")]
 
-     public partial class CombatHPPanel : UIPanel
 
-     {
 
-         private Map<IHero, int> currTargetHeroHp = new Map<IHero, int>();
 
-         private CombatHeroEntity heroFocusEnemy;
 
-         private List<DuiPingWidget> _duiPingWidgets = new List<DuiPingWidget>();
 
-         public static async CTask OpenCombatHPPanel()
 
-         {
 
-             await UIManager.Instance.LoadAndOpenPanel<CombatHPPanel>(null, UILayer.Bottom);
 
-         }
 
-         public static async CTask CloseCombatHPPanel()
 
-         {
 
-             UIManager.Instance.HideUIUIPanel<CombatHPPanel>();
 
-         }
 
-         private void Init()
 
-         {
 
-             isAddStack = false;
 
-         }
 
-         protected override void AddEvent()
 
-         {
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.TargetAlter, AlaterTargetFocus);
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.FaBaoDuiPingStart, FaBaoDuiPingStart);
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.FaBaoDuiPingFinish, FaBaoDuiPingFinish);
 
-             EventManager.Instance.AddEventListener(CustomEventType.CreateHeroHp, CreateHeroHp);
 
-             StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
 
-             TargetFocus.gameObject.SetActive(false);
 
-             // CombatEventManager.Instance.AddEventListener(CombatEventType.TargetAlter, TargetAlter);
 
-         }
 
-         protected override void DelEvent()
 
-         {
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.FaBaoDuiPingFinish, FaBaoDuiPingFinish);
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.FaBaoDuiPingStart, FaBaoDuiPingStart);
 
-             EventManager.Instance.RemoveEventListener(CustomEventType.CreateHeroHp, CreateHeroHp);
 
-             StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
 
-             // CombatEventManager.Instance.RemoveEventListener(CombatEventType.TargetAlter, TargetAlter);
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.TargetAlter, AlaterTargetFocus);
 
-         }
 
-         public override void AddButtonEvent()
 
-         {
 
-         }
 
-         private async void CreateHpUI(CombatHeroEntity combatHeroEntity)
 
-         {
 
-             // CombatHeroEntity combatHeroEntity = createHeroHpEventData.combatHeroEntity;
 
-             HeroHpWidget heroHpWidget =
 
-                 await UIManager.Instance.CreateGComponentForObject<HeroHpWidget>(HeroHpWidget, null, transform,
 
-                     isInstance: true);
 
-             heroHpWidget.Init(combatHeroEntity);
 
-         }
 
-         private async void FaBaoDuiPingStart(IEventData iEventData)
 
-         {
 
-             FaBaoDuiPingStartEventData faBaoDuiPingStartEventData = iEventData as FaBaoDuiPingStartEventData;
 
-             DuiPingWidget widget = await UIManager.Instance.CreateGComponentForObject<DuiPingWidget>(DuiPingWidget,
 
-                 null, transform,
 
-                 isInstance: true);
 
-             widget.ShowWidget(faBaoDuiPingStartEventData.MagicWeaponCollisionInfo.a);
 
-             _duiPingWidgets.Add(widget);
 
-             widget = await UIManager.Instance.CreateGComponentForObject<DuiPingWidget>(DuiPingWidget, null, transform,
 
-                 isInstance: true);
 
-             widget.ShowWidget(faBaoDuiPingStartEventData.MagicWeaponCollisionInfo.b);
 
-             _duiPingWidgets.Add(widget);
 
-         }
 
-         private async void FaBaoDuiPingFinish(IEventData iEventData)
 
-         {
 
-             FaBaoDuiPingStartEventData faBaoDuiPingStartEventData = iEventData as FaBaoDuiPingStartEventData;
 
-             for (int i = 0; i < _duiPingWidgets.Count; i++)
 
-             {
 
-                 if (_duiPingWidgets[i].combatMagicWeaponEntity ==
 
-                     faBaoDuiPingStartEventData.MagicWeaponCollisionInfo.a ||
 
-                     _duiPingWidgets[i].combatMagicWeaponEntity == faBaoDuiPingStartEventData.MagicWeaponCollisionInfo.b)
 
-                 {
 
-                     UIManager.Instance.DormancyGComponent(_duiPingWidgets[i]);
 
-                     _duiPingWidgets.RemoveAt(i);
 
-                     i--;
 
-                 }
 
-             }
 
-         }
 
-         private void AlaterTargetFocus(IEventData iEventData)
 
-         {
 
-             CombatHeroTargetAlterEventData combatHeroTargetAlterEventData =
 
-                 iEventData as CombatHeroTargetAlterEventData;
 
-             CombatHeroEntity combatHeroEntity = combatHeroTargetAlterEventData.combatHeroEntity as CombatHeroEntity;
 
-             if (!combatHeroEntity.isPlayer || combatHeroTargetAlterEventData.targetCombatHeroEntity == heroFocusEnemy)
 
-             {
 
-                 return;
 
-             }
 
-             heroFocusEnemy = combatHeroTargetAlterEventData.targetCombatHeroEntity as CombatHeroEntity;
 
-             TargetFocus.gameObject.SetActive(heroFocusEnemy != null);
 
-             UpdateFocusUI();
 
-         }
 
-         private async void CreateHeroHp(IEventData iEventData)
 
-         {
 
-             CreateHeroHpEventData createHeroHpEventData = iEventData as CreateHeroHpEventData;
 
-             CombatHeroEntity combatHeroEntity = createHeroHpEventData.combatHeroEntity;
 
-             if (!combatHeroEntity.isCreateHeroHp)
 
-             {
 
-                 return;
 
-             }
 
-             CreateHpUI(combatHeroEntity);
 
-         }
 
-         private void UpdateFocusUI()
 
-         {
 
-             if (heroFocusEnemy == null)
 
-             {
 
-                 return;
 
-             }
 
-             Vector3 worldPos = heroFocusEnemy.combatHeroGameObject.hpTransform.position;
 
-             Vector3 p = UIManager.Instance.CurrCustomCameraStack.camera.WorldToScreenPoint(worldPos);
 
-             Vector3 p2 = UIManager.Instance.UICamera.ScreenToWorldPoint(p);
 
-             Vector3 pos = Vector3.zero;
 
-             if (heroFocusEnemy.isCreateHeroHp)
 
-             {
 
-                 pos = new Vector3(0, 0.1f, 0);
 
-             }
 
-             TargetFocus.position = p2 + pos;
 
-         }
 
-         public void Update()
 
-         {
 
-             UpdateFocusUI();
 
-             for (int i = 0; i < _duiPingWidgets.Count; i++)
 
-             {
 
-                 _duiPingWidgets[i].UpdateHp();
 
-             }
 
-         }
 
-         public async override CTask Close()
 
-         {
 
-             _duiPingWidgets.Clear();
 
-             UIManager.Instance.DormancyAllGComponent<HeroHpWidget>();
 
-             UIManager.Instance.DormancyAllGComponent<DuiPingWidget>();
 
-             await base.Close();
 
-         }
 
-     }
 
- }
 
 
  |