Browse Source

修改bug

DESKTOP-BGJIU14\ck 8 hours ago
parent
commit
876b4efa62

+ 1 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs

@@ -62,6 +62,7 @@ namespace GameLogic.Combat.CombatTool
 
         public void RemoveDieHero(CombatHeroEntity combatHeroEntity)
         {
+            // return;
             heroDie.Remove(combatHeroEntity);
             if (!heroDispose.Contains(combatHeroEntity))
             {

+ 24 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCollisionInfo.cs

@@ -42,6 +42,7 @@ namespace GameLogic.Combat.CombatTool
 
         public void Init(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b, int id)
         {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroDie, HeroDie);
             _isDispose = false;
             this.id = id;
             if (a.IsEnemy)
@@ -56,6 +57,28 @@ namespace GameLogic.Combat.CombatTool
             State = 0;
         }
 
+        private void HeroDie(IEventData iEventData)
+        {
+            HeroDieEventData heroDieEventData = iEventData as HeroDieEventData;
+            CombatMagicWeaponEntity combatMagicWeaponEntity =
+                heroDieEventData.combatHeroEntity as CombatMagicWeaponEntity;
+            if (combatMagicWeaponEntity != null)
+            {
+                return;
+            }
+
+            if (a.RootMagicWeaponControl.combatHeroEntity == heroDieEventData.combatHeroEntity)
+            {
+                a.HpBl = 0;
+                CombatController.currActiveCombat.MagicWeaponCombatSence.RemoveCollisionMagicWeapon(a.MagicWeaponCollisionId);
+            }
+            else if (b.RootMagicWeaponControl.combatHeroEntity == heroDieEventData.combatHeroEntity)
+            {
+                b.HpBl = 0;
+                CombatController.currActiveCombat.MagicWeaponCombatSence.RemoveCollisionMagicWeapon(a.MagicWeaponCollisionId);
+                
+            }
+        }
 
         protected async void PongZhuang()
         {
@@ -317,6 +340,7 @@ namespace GameLogic.Combat.CombatTool
         {
             a = null;
             b = null;
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroDie, HeroDie);
         }
 
         public void Finish()

+ 38 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCombatSence.cs

@@ -43,6 +43,7 @@ namespace GameLogic.Combat.CombatTool
             {
                 magicWeaponCollisionInfoList.Value.Dispose();
             }
+
             magicWeaponCollisionInfoList.Clear();
             for (int i = 0; i < _enemyMagicWeaponList.Count; i++)
             {
@@ -61,6 +62,43 @@ namespace GameLogic.Combat.CombatTool
         public void Init()
         {
             CombatEventManager.Instance.AddEventListener(CombatEventType.MagicWeaponDie, MagicWeaponDie);
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroDie, HeroDie);
+        }
+
+        private void HeroDie(IEventData iEventData)
+        {
+            HeroDieEventData heroDieEventData = iEventData as HeroDieEventData;
+            CombatMagicWeaponEntity combatMagicWeaponEntity =
+                heroDieEventData.combatHeroEntity as CombatMagicWeaponEntity;
+            if (combatMagicWeaponEntity != null)
+            {
+                return;
+            }
+
+            if (heroDieEventData.combatHeroEntity.IsEnemy)
+            {
+                for (int i = 0; i < _enemyMagicWeaponList.Count; i++)
+                {
+                    if (_enemyMagicWeaponList[i].RootMagicWeaponControl.combatHeroEntity ==
+                        heroDieEventData.combatHeroEntity)
+                    {
+                        _enemyMagicWeaponList.RemoveAt(i);
+                        i--;
+                    }
+                }
+            }
+            else
+            {
+                for (int i = 0; i < _playerMagicWeaponList.Count; i++)
+                {
+                    if (_playerMagicWeaponList[i].RootMagicWeaponControl.combatHeroEntity ==
+                        heroDieEventData.combatHeroEntity)
+                    {
+                        _playerMagicWeaponList.RemoveAt(i);
+                        i--;
+                    }
+                }
+            }
         }
 
         private void MagicWeaponDie(IEventData iEventData)

+ 5 - 0
Assets/Scripts/GameLogic/Combat/Hero/CombatAIBasic.cs

@@ -106,6 +106,11 @@ public class CombatAIBasic : IDisposable
 
     public virtual void ChangeState(string name, IStateEnterData iStateEnterData = null, bool isQiangZhi = false)
     {
+        if (stateControl == null)
+        {
+            return;
+        }
+
         stateControl.ChangeState(name, iStateEnterData, isQiangZhi);
     }
 

+ 11 - 11
Assets/Scripts/GameLogic/Combat/Hero/State/CombatHeroDieState.cs

@@ -70,17 +70,17 @@ namespace GameLogic.Combat.Hero.State
 
         protected override void ProUpdate(float t)
         {
-            if (isStartResurrection)
-            {
-                resurrectionTime += t;
-                if (resurrectionTime > 60)
-                {
-                    isSwitch = true;
-                    isStartResurrection = false;
-                    resurrectionTime = 0;
-                    combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Resurrection);
-                }
-            }
+            // if (isStartResurrection)
+            // {
+            //     resurrectionTime += t;
+            //     if (resurrectionTime > 60)
+            //     {
+            //         isSwitch = true;
+            //         isStartResurrection = false;
+            //         resurrectionTime = 0;
+            //         combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Resurrection);
+            //     }
+            // }
         }
     }
 }

File diff suppressed because it is too large
+ 46 - 2226
UserSettings/Layouts/CurrentMaximizeLayout.dwlt


Some files were not shown because too many files changed in this diff