浏览代码

修改bug

DESKTOP-FB72PO8\Administrator 3 天之前
父节点
当前提交
d7abe9cd2a

+ 3 - 3
Assets/Scripts/GameLogic/Combat/CombatState/CombatFightState.cs

@@ -13,7 +13,7 @@ namespace GameLogic.Combat.CombatState
 
         protected override void ProEnter()
         {
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             CombatController.CombatCameraControllder.SetPos(playerHeroEntity.combatHeroGameObject.transform);
             CombatController.CombatCameraControllder.isStop = true;
             CombatController.IsFightState = true;
@@ -29,7 +29,7 @@ namespace GameLogic.Combat.CombatState
 
         protected override void ProUpdate(float t)
         {
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             if (playerHeroEntity == null)
             {
                 return;
@@ -59,7 +59,7 @@ namespace GameLogic.Combat.CombatState
                 return null;
             }
 
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             float minDistance = float.MaxValue;
             for (int i = 0; i < allHero.Length; i++)
             {

+ 1 - 1
Assets/Scripts/GameLogic/Combat/CombatState/CombatIdleState.cs

@@ -14,7 +14,7 @@ namespace GameLogic.Combat.CombatState
             CombatController.CombatCameraControllder.isStop = false;
             CombatController.IsFightState = false;
             CombatController.GameTimeLineParticleFactory.RecycleAllFxAiLogicBasic();
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             if (playerHeroEntity != null)
             {
                 playerHeroEntity.PlayAnim(CombatHeroStateType.idle, true, 0, false, 1);

+ 3 - 3
Assets/Scripts/GameLogic/Combat/CombatState/CombatUpdateState.cs

@@ -29,7 +29,7 @@ namespace GameLogic.Combat.CombatState
             CombatController.CombatCameraControllder.isStop = false;
             CombatController.IsFightState = false;
             CombatController.GameTimeLineParticleFactory.RecycleAllFxAiLogicBasic();
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             if (playerHeroEntity != null)
             {
                 playerHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Flight);
@@ -47,7 +47,7 @@ namespace GameLogic.Combat.CombatState
 
         protected override void ProUpdate(float t)
         {
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             if (playerHeroEntity == null)
             {
                 return;
@@ -101,7 +101,7 @@ namespace GameLogic.Combat.CombatState
                 return null;
             }
 
-            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             float minDistance = float.MaxValue;
             for (int i = 0; i < allHero.Length; i++)
             {

+ 1 - 1
Assets/Scripts/GameLogic/Combat/CombatTool/CombatCameraControllder.cs

@@ -123,7 +123,7 @@ namespace GameLogic.Combat.CombatTool
 
             if (!isStartShake && !isStop)
             {
-                CombatHeroEntity combatHeroEntities = combatController.CombatHeroController.playerHeroEntity;
+                CombatHeroEntity combatHeroEntities = combatController.playerHeroEntity;
                 if (combatHeroEntities == null)
                 {
                     return;

+ 36 - 12
Assets/Scripts/GameLogic/Combat/CombatTool/CombatController.cs

@@ -4,12 +4,14 @@ using Common.Utility.CombatTimer;
 using Core.Audio;
 using Core.Event.Event;
 using Core.State;
+using Core.Utility;
 using Excel2Json;
 using Fort23.Core;
 using GameLogic.Combat.CombatGuide;
 using GameLogic.Combat.CombatState;
 using GameLogic.Combat.CombatTool.CombatReport;
 using GameLogic.Combat.CombatType;
+using GameLogic.Combat.Hero;
 using GameLogic.Combat.Hero.HeroGPU;
 using GameLogic.CombatScenesTool;
 using UnityEngine;
@@ -35,7 +37,7 @@ namespace GameLogic.Combat.CombatTool
         public CombatDataController CombatDataController;
         public GameTimeLineParticleFactory GameTimeLineParticleFactory;
         public MagicWeaponCombatSence MagicWeaponCombatSence;
-        public RandomEventController RandomEventController;
+        // public RandomEventController RandomEventController;
 
         public bool isUpdate;
 
@@ -54,11 +56,15 @@ namespace GameLogic.Combat.CombatTool
         public System.Action<bool> combatFinish;
         public float combatTime;
 
+        public CombatHeroEntity playerHeroEntity;
+        
         public CombatStateBasic CurrState
         {
             get { return stateControl.CurrIState as CombatStateBasic; }
         }
 
+     
+
         public async CTask InitCombat(StartCombatInfo startCombatInfo)
         {
             combatTime = 0;
@@ -67,18 +73,29 @@ namespace GameLogic.Combat.CombatTool
             TimeLineSingletonEventManager.Instance.AddTimeLineBasic(this);
             GameTimeLineParticleFactory = new GameTimeLineParticleFactory();
             TimeLineFxParticleTool.Instance.Init(GameTimeLineParticleFactory);
-            RandomEventController = new RandomEventController();
+            // RandomEventController = new RandomEventController();
             currActiveCombat = this;
-            stateControl = new StateControl();
-            stateControl.AddState("idle", new CombatIdleState(this));
-            stateControl.AddState("update", new CombatUpdateState(this));
-            stateControl.AddState("fight", new CombatFightState(this));
-            MagicWeaponCombatSence = new MagicWeaponCombatSence();
-            MagicWeaponCombatSence.Init();
-            CombatSenceController = new CombatSenceController();
-            await CombatSenceController.InitScenes();
-            CombatDataController = new CombatDataController();
-            await CombatDataController.Init();
+            if (stateControl == null)
+            {
+                stateControl = new StateControl();
+                stateControl.AddState("idle", new CombatIdleState(this));
+                stateControl.AddState("update", new CombatUpdateState(this));
+                stateControl.AddState("fight", new CombatFightState(this));
+                MagicWeaponCombatSence = new MagicWeaponCombatSence();
+                MagicWeaponCombatSence.Init();
+                if (CombatSenceController == null)
+                {
+                    CombatSenceController = new CombatSenceController();
+                    await CombatSenceController.InitScenes();
+                }
+
+                if (CombatDataController == null)
+                {
+                    CombatDataController = new CombatDataController();
+                    await CombatDataController.Init();
+                }
+            }
+
             Camera camera = Camera.main;
             CombatCameraControllder = new CombatCameraControllder();
             CombatCameraControllder.Init(this, camera);
@@ -156,6 +173,13 @@ namespace GameLogic.Combat.CombatTool
             combatFinish?.Invoke(isWin);
         }
 
+        public void DisposeOneCombatInfo()
+        {
+            CombatReportManager.Instance.Clear();
+            MagicWeaponCombatSence.CloseSecene();
+            CombatEventManager.Instance.Dispose();
+        }
+
         public void Dispose()
         {
             TimeLineSingletonEventManager.Instance.RemoveTimeLineBasic(this);

+ 13 - 78
Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs

@@ -22,7 +22,7 @@ namespace GameLogic.Combat.CombatTool
 
         private BetterList<CombatHeroEntity> heroDie = new BetterList<CombatHeroEntity>();
         private BetterList<CombatHeroEntity> heroDispose = new BetterList<CombatHeroEntity>();
-        public CombatHeroEntity playerHeroEntity;
+        // public CombatHeroEntity playerHeroEntity;
 
         public Vector3[] followMovePos = new Vector3[]
         {
@@ -39,84 +39,10 @@ namespace GameLogic.Combat.CombatTool
         {
             this.combatController = combatController;
             CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, CombatUseSkillEventData);
-            EventManager.Instance.AddEventListener(CustomEventType.HeroPowerUp, HeroPowerUp);
-
             CombatHeroInfo combatHeroInfo = new CombatHeroInfo();
             combatHeroInfo.attack = (EncryptionLong)10;
         }
 
-        private void HeroPowerUp(IEventData eventData)
-        {
-            // HeroPowerUpEventData heroPowerUpEventData = eventData as HeroPowerUpEventData;
-            //
-            // // if (heroPowerUpEventData.upType == HeroUpType.BasicEquip)
-            // // {
-            // //     return;
-            // // }
-            //
-            // int id = heroPowerUpEventData.heroModelID;
-            // CombatHeroEntity combatHeroEntity = null;
-            // for (int i = 0; i < myHero.Count; i++)
-            // {
-            //     if (myHero[i].CurrCombatHeroInfo.modelID == id)
-            //     {
-            //         combatHeroEntity = myHero[i];
-            //         break;
-            //     }
-            // }
-            //
-            // if (combatHeroEntity == null)
-            // {
-            //     for (int i = 0; i < heroDie.Count; i++)
-            //     {
-            //         if (heroDie[i].CurrCombatHeroInfo.modelID == id)
-            //         {
-            //             combatHeroEntity = heroDie[i];
-            //             break;
-            //         }
-            //     }
-            // }
-            //
-            // CombatHeroInfo combatHeroInfo = PlayerManager.Instance.heroController.GetHeroInfo(id);
-            //
-            //
-            // UpLevelHero(heroPowerUpEventData.isSkillUp, combatHeroEntity, combatHeroInfo);
-        }
-
-
-        private void UpLevelHero(bool isSkillUp, CombatHeroEntity combatHeroEntity, CombatHeroInfo combatHeroInfo)
-        {
-            // int id = heroPowerUpEventData.heroModelID;
-
-
-            long addHp = combatHeroInfo.hp.Value - combatHeroEntity.MaxCombatHeroInfo.hp.Value;
-            combatHeroEntity.MaxCombatHeroInfo.hp = combatHeroInfo.hp;
-            combatHeroEntity.MaxCombatHeroInfo.defense = combatHeroInfo.defense;
-            combatHeroEntity.MaxCombatHeroInfo.attack = combatHeroInfo.attack;
-         
-            combatHeroEntity.CurrCombatHeroInfo.defense = combatHeroInfo.defense;
-       
-            combatHeroEntity.CurrCombatHeroInfo.attack = combatHeroInfo.attack;
-            combatHeroEntity.CurrCombatHeroInfo.unLockSkills = combatHeroInfo.unLockSkills;
-            combatHeroEntity.MaxCombatHeroInfo.unLockSkills = combatHeroInfo.unLockSkills;
-            if (!combatHeroEntity.isDie)
-            {
-                if (addHp > 0)
-                {
-                    combatHeroEntity.CurrCombatHeroInfo.hp += addHp;
-                }
-                else
-                {
-                }
-            }
-
-            // if (isSkillUp)
-            // {
-            //     // List<SkillConfig> skillConfigs = combatHeroInfo.skillConfigs;
-            //     combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().UpdateSkill(combatHeroInfo.unLockSkills);
-            // }
-        }
-
         public void RemoveDieHero(CombatHeroEntity combatHeroEntity)
         {
             heroDie.Remove(combatHeroEntity);
@@ -308,12 +234,21 @@ namespace GameLogic.Combat.CombatTool
             }
         }
 
+
         public void Dispose()
         {
-            myHero.Dispose();
-            enemyHero.Dispose();
+            for (int i = 0; i < myHero.Count; i++)
+            {
+                myHero[i].DisposeForOnetCombat();
+            }
+
+            for (int i = 0; i < enemyHero.Count; i++)
+            {
+                enemyHero[i].Dispose();
+            }
+            myHero.Clear();
+            enemyHero.Clear();
             CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, CombatUseSkillEventData);
-            EventManager.Instance.RemoveEventListener(CustomEventType.HeroPromote, HeroPowerUp);
         }
 
         public Vector3 GetFollowPos(CombatHeroEntity combatHeroEntity)

+ 11 - 0
Assets/Scripts/GameLogic/Combat/CombatType/CombatTypeBasic.cs

@@ -68,6 +68,17 @@ namespace GameLogic.Combat.CombatType
                 isActiveCombat = true;
             }
         }
+        public virtual void DisposeOneCombatInfo()
+        {
+            ProDisposeOneCombatInfo();
+        }
+
+        protected virtual void ProDisposeOneCombatInfo()
+        {
+            // CombatReportManager.Instance.Clear();
+            // MagicWeaponCombatSence.CloseSecene();
+            // CombatEventManager.Instance.Dispose();
+        }
 
         protected void OnHeroDie(CombatHeroEntity combatHeroEntity)
         {

+ 31 - 12
Assets/Scripts/GameLogic/Combat/CombatType/LevelBattleCombatType.cs

@@ -125,9 +125,7 @@ namespace GameLogic.Combat.CombatType
 
         private void TestCombat(CTaskAwaitBuffer cTaskAwaitBuffer)
         {
-            Vector3 heroPoint = CombatController.currActiveCombat.CombatSenceController.GetTarget(0);
-            CombatController.currActiveCombat.MagicWeaponCombatSence.SetMagicWeaponCombatSence(heroPoint,
-                Vector3.forward);
+        
             // TestCombatHeroConfig testCombatHeroConfig = GameObject.FindObjectOfType<TestCombatHeroConfig>();
             // if (testCombatHeroConfig != null)
             // {
@@ -136,20 +134,41 @@ namespace GameLogic.Combat.CombatType
             //     testHeroInfoConfig.skill, testHeroInfoConfig.magicWeaponId);
 
 
+            
             CombatHeroEntity heroEntity = new CombatHeroEntity();
 
             heroEntity.IsEnemy = false;
             heroEntity.number = 0;
 
-            Vector3 pos = heroPoint;
-            cTaskAwaitBuffer.AddTask(heroEntity.Init(new CombatHeroAi(), PlayerManager.Instance.myHero, pos,
-                delegate(CombatHeroEntity entity)
-                {
-                    entity.CurrCombatHeroInfo.hp = (EncryptionLong)(20000);
-                    entity.MaxCombatHeroInfo.hp = (EncryptionLong)(20000);
-                    combatController.CombatHeroController.AddHero(entity);
-                    CombatController.currActiveCombat.CombatHeroController.playerHeroEntity = heroEntity;
-                }, isPlayer: true));
+          
+            if (CombatController.currActiveCombat.playerHeroEntity != null)
+            {
+                GameObjectPool gameObjectPool= CombatController.currActiveCombat.playerHeroEntity.combatHeroGameObject.GameObjectPool;
+                Vector3 pos = gameObjectPool.own.transform.position;
+                cTaskAwaitBuffer.AddTask(heroEntity.InitForObject(gameObjectPool,new CombatHeroAi(), PlayerManager.Instance.myHero, pos,
+                    delegate(CombatHeroEntity entity)
+                    {
+                        entity.CurrCombatHeroInfo.hp = (EncryptionLong)(20000);
+                        entity.MaxCombatHeroInfo.hp = (EncryptionLong)(20000);
+                        combatController.CombatHeroController.AddHero(entity);
+                        CombatController.currActiveCombat.playerHeroEntity = heroEntity;
+                    }, isPlayer: true));
+            }
+            else
+            {
+                Vector3 heroPoint = CombatController.currActiveCombat.CombatSenceController.GetTarget(0);
+                CombatController.currActiveCombat.MagicWeaponCombatSence.SetMagicWeaponCombatSence(heroPoint,
+                    Vector3.forward);
+                Vector3 pos = heroPoint;
+                cTaskAwaitBuffer.AddTask(heroEntity.Init(new CombatHeroAi(), PlayerManager.Instance.myHero, pos,
+                    delegate(CombatHeroEntity entity)
+                    {
+                        entity.CurrCombatHeroInfo.hp = (EncryptionLong)(20000);
+                        entity.MaxCombatHeroInfo.hp = (EncryptionLong)(20000);
+                        combatController.CombatHeroController.AddHero(entity);
+                        CombatController.currActiveCombat.playerHeroEntity = heroEntity;
+                    }, isPlayer: true));
+            }
         }
         // }
     }

+ 1 - 1
Assets/Scripts/GameLogic/Combat/CombatType/TestCombatType.cs

@@ -145,7 +145,7 @@ namespace GameLogic.Combat.CombatType
 
 
                 CombatHeroEntity heroEntity = new CombatHeroEntity();
-                CombatController.currActiveCombat.CombatHeroController.playerHeroEntity = heroEntity;
+                CombatController.currActiveCombat.playerHeroEntity = heroEntity;
                 heroEntity.IsEnemy = false;
                 heroEntity.number = 0;
 

+ 52 - 13
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs

@@ -74,8 +74,8 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         get { return combatHeroGameObject.transform.forward; }
     }
 
-
-    public virtual async CTask<CombatHeroEntity> Init(CombatAIBasic combatAIBasic, CombatHeroInfo combatHeroInfo,
+    public async CTask<CombatHeroEntity> InitForObject(GameObjectPool poolInterface, CombatAIBasic combatAIBasic,
+        CombatHeroInfo combatHeroInfo,
         Vector3 pos,
         System.Action<CombatHeroEntity> callBack = null, bool isPlayer = false)
     {
@@ -89,14 +89,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
 
         CurrCombatHeroInfo = combatHeroInfo.Copy();
         MaxCombatHeroInfo = combatHeroInfo.Copy();
-        // GameTimeLineParticleFactory
-        CombatHeroGameObjectPool poolInterface =
-            await GObjectPool.Instance.FetchAsync<CombatHeroGameObjectPool>(modelName + ".prefab", null);
-#if !COMBAT_SERVER
-        if (poolInterface == null || poolInterface.own == null)
-        {
-            return null;
-        }
+
 
         poolInterface.own.transform.position = pos;
         // if (!IsEnemy)
@@ -107,7 +100,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         //     fx_hero_quan.own.transform.localPosition = Vector3.zero;
         // }
 
-        poolInterface.own.SetActive(false);
+        // poolInterface.own.SetActive(false);
         heroMagicWeaponControl = new MagicWeaponControl();
         combatHeroTimeLineControl = new CombatHeroTimeLineControl();
         combatHeroTimeLineControl.Init(this);
@@ -161,7 +154,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         //     combatHeroAnimtion = new CombatHeroGPUAnimtion();
         // }
 
-        poolInterface.own.SetActive(true);
+        // poolInterface.own.SetActive(true);
         combatHeroAnimtion.Init(this);
         CombatAIBasic.ChangeState(CombatHeroStateType.XiuMian);
         if (IsEnemy)
@@ -174,10 +167,36 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         await heroMagicWeaponControl.InitMagicWeapon(this, isPlayer);
         CombatReportManager.Instance.AddCombatReportInfo(this);
         callBack?.Invoke(this);
-#endif
+
         return this;
     }
 
+    public virtual async CTask<CombatHeroEntity> Init(CombatAIBasic combatAIBasic, CombatHeroInfo combatHeroInfo,
+        Vector3 pos,
+        System.Action<CombatHeroEntity> callBack = null, bool isPlayer = false)
+    {
+        //后面记到检查战斗里面不要出现异步加载,也不要出现同步IO加载
+        this.isPlayer = isPlayer;
+        string modelName = combatHeroInfo.modelName;
+        if (combatHeroInfo.isGpu)
+        {
+            modelName += "_gpu";
+        }
+
+        CurrCombatHeroInfo = combatHeroInfo.Copy();
+        MaxCombatHeroInfo = combatHeroInfo.Copy();
+        // GameTimeLineParticleFactory
+        CombatHeroGameObjectPool poolInterface =
+            await GObjectPool.Instance.FetchAsync<CombatHeroGameObjectPool>(modelName + ".prefab", null);
+
+        if (poolInterface == null || poolInterface.own == null)
+        {
+            return null;
+        }
+
+        return await InitForObject(poolInterface, combatAIBasic, combatHeroInfo, pos, callBack, isPlayer);
+    }
+
 
     public virtual void Update(float t)
     {
@@ -368,6 +387,25 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         heroLoopParticle.Clear();
     }
 
+    public void DisposeForOnetCombat()
+    {
+        if (_isDis)
+        {
+            return;
+        }
+
+        _isDis = true;
+        BuffControl.Dispose();
+        _isDis = true;
+       
+        CombatHeroSkillControl.Dispose();
+        CombatAIBasic.Dispose();
+        combatHeroTimeLineControl.Dispose();
+        combatHeroAnimtion.Dispose();
+        CloseLoopFx();
+        ShieldsBarrier?.Dispose();
+        ShieldsBarrier = null;
+    }
 
     public void Dispose()
     {
@@ -402,6 +440,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
     }
 
 
+
     public override void DormancyObj()
     {
         Dispose();

+ 17 - 12
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901004.cs

@@ -47,23 +47,28 @@ namespace GameLogic.Combat.Skill.MagicSkill
                 return;
             }
             CombatMagicWeaponEntity[] AllMagicWeapon = combatHeroEntity.heroMagicWeaponControl.AllMagicWeapon;
-
+        
             int maxCount = combatHeroEntity.heroMagicWeaponControl.MagicWeaponCount;
-            List<CombatMagicWeaponEntity> currAllMagicWeapon = new List<CombatMagicWeaponEntity>();
-            currAllMagicWeapon.AddRange(AllMagicWeapon);
-            for (int i = 0; i < effectValue[0]; i++)
+            if (maxCount > 0)
             {
-                if (maxCount > 0)
+                List<CombatMagicWeaponEntity> currAllMagicWeapon = new List<CombatMagicWeaponEntity>();
+                currAllMagicWeapon.AddRange(AllMagicWeapon);
+                for (int i = 0; i < effectValue[0]; i++)
                 {
-                    int index = Random.Range(0, maxCount);
-                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10081, effectValue[1], 1);
-                    CombatMagicWeaponEntity combatMagicWeaponEntity = currAllMagicWeapon[index];
-                    combatMagicWeaponEntity.BuffControl.AddBuff(CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity,
-                        buffInfo);
-                    currAllMagicWeapon.RemoveAt(index);
-                    maxCount--;
+                    if (maxCount > 0)
+                    {
+                        int index = Random.Range(0, maxCount);
+                        BuffInfo buffInfo = BuffInfo.GetBuffInfo(10081, effectValue[1], 1);
+                        CombatMagicWeaponEntity combatMagicWeaponEntity = currAllMagicWeapon[index];
+                        combatMagicWeaponEntity.BuffControl.AddBuff(
+                            CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity,
+                            buffInfo);
+                        currAllMagicWeapon.RemoveAt(index);
+                        maxCount--;
+                    }
                 }
             }
+
             BetterList<ILifetCycleHitPoint> cBetterList = new BetterList<ILifetCycleHitPoint>(1);
             cBetterList.Add(lifetCycleHitPoint);
             ActivationTimeLineData("gongji", currTarget: cBetterList);

+ 2 - 2
Assets/Scripts/GameLogic/Player/GongFaControl.cs

@@ -55,7 +55,7 @@ namespace GameLogic.Player
         {
             taoismSkillIndex = id;
             PlayerManager.Instance.myHero.TaoismSkillId = id;
-            CombatHeroEntity combatHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity combatHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().InitTaoismSkill(id);
         }
 
@@ -64,7 +64,7 @@ namespace GameLogic.Player
         /// </summary>
         public void SaveUseSkill()
         {
-            CombatHeroEntity combatHeroEntity = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity;
+            CombatHeroEntity combatHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
             combatHeroEntity.CombatHeroSkillControl.SetNewSkill(allUseSkill);
             AccountFileInfo.Instance.SavePlayerData();
         }

+ 12 - 1
Assets/Scripts/GameUI/Combat/CombatDrive.cs

@@ -35,6 +35,7 @@ namespace GameLogic.Combat
 
         public async CTask StartCombat(StartCombatInfo startCombatInfo)
         {
+            CombatController.Dispose();
             combatMonoBaisc = new CombatMonoBaisc();
             CombatEquipFallManager.Instance.Dispose();
             CombatEquipFallManager.Instance.Init();
@@ -45,7 +46,7 @@ namespace GameLogic.Combat
             cTaskAwaitBuffer.AddTask(combatMonoBaisc.Init(CombatController));
             await cTaskAwaitBuffer.WaitAll();
             await CombatHPPanel.OpenCombatHPPanel();
-         
+
             LogTool.Log("战斗逻辑自己写");
             await CombatController.InitCombat(startCombatInfo);
             if (startCombatInfo.CombatType == CombatType.CombatType.TestCombat)
@@ -58,6 +59,9 @@ namespace GameLogic.Combat
 
         public async CTask LoadLevelBattleCombat(int levelBattleId, System.Action<bool> caombatFinish)
         {
+            StartCombatInfo startCombatInfo = new StartCombatInfo();
+            startCombatInfo.CombatType = CombatType.CombatType.LevelBattle;
+            await StartCombat(startCombatInfo);
             levelBattleId = 100004;
             LevelBattleCombatType levelBattleCombatType = CombatController.CombatTypeBasic as LevelBattleCombatType;
             if (levelBattleCombatType != null)
@@ -71,6 +75,13 @@ namespace GameLogic.Combat
             {
                 return;
             }
+            // CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
+            // // CombatPanel.OpenCombatPanel(cTaskAwaitBuffer);
+            // CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer);
+            //
+            // cTaskAwaitBuffer.AddTask(combatMonoBaisc.Init(CombatController));
+            // await cTaskAwaitBuffer.WaitAll();
+            // await CombatHPPanel.OpenCombatHPPanel();
 
             await CombatPanel.OpenCombatPanel();
             ///播放动画

+ 1 - 1
Assets/Scripts/GameUI/DialogueMono.cs

@@ -24,7 +24,7 @@ namespace GameUI
             EventConfig eventConfig = ConfigComponent.Instance.Get<EventConfig>(eventId);
             if (eventConfig.EventTriggerType == 2)
             {
-                Vector3 worldPos =CombatDrive.Instance.CombatController.CombatHeroController.playerHeroEntity.combatHeroGameObject.hpTransform.position;
+                Vector3 worldPos =CombatDrive.Instance.CombatController.playerHeroEntity.combatHeroGameObject.hpTransform.position;
 
                 worldPos.y += 0.5f;
                 await ShowItemNumberCom.Open(worldPos, rewardsDic[0]);

+ 4 - 4
Assets/Scripts/GameUI/UI/CombatPanel/CombatPanel.cs

@@ -105,9 +105,9 @@ namespace Fort23.Mono
 
         private async void AddMagicWeaponHeroEntity()
         {
-            CombatMagicWeaponEntity[] magicWeaponEntities = CombatController.currActiveCombat.CombatHeroController
+            CombatMagicWeaponEntity[] magicWeaponEntities = CombatController.currActiveCombat
                 .playerHeroEntity.heroMagicWeaponControl.AllMagicWeapon;
-            int count = CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.heroMagicWeaponControl
+            int count = CombatController.currActiveCombat.playerHeroEntity.heroMagicWeaponControl
                 .MagicWeaponCount;
 
             for (int i = 0; i < count; i++)
@@ -132,7 +132,7 @@ namespace Fort23.Mono
             playerHeroHpWidget.size = 250;
             playerHeroHpWidget.shieldSize = 100;
             playerHeroHpWidget.isFollowTarget = false;
-            playerHeroHpWidget.Init(CombatController.currActiveCombat.CombatHeroController.playerHeroEntity);
+            playerHeroHpWidget.Init(CombatController.currActiveCombat.playerHeroEntity);
 
             CombatHeroEntity[] allEnemy = CombatController.currActiveCombat.CombatHeroController.GetHero(true);
             for (int i = 0; i < allEnemy.Length; i++)
@@ -153,7 +153,7 @@ namespace Fort23.Mono
             CameraSelect.onValueChanged.AddListener(CameraSelect_onValueChanged);
             AutoUse.onValueChanged.AddListener((x) =>
             {
-                CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.heroMagicWeaponControl.isAutoUse =
+                CombatController.currActiveCombat.playerHeroEntity.heroMagicWeaponControl.isAutoUse =
                     x;
             });
         }

+ 1 - 1
Assets/Scripts/GameUI/UI/CombatPanel/WuXingGongFaWidget.cs

@@ -197,7 +197,7 @@ namespace Fort23.Mono
 
         private void HeroHpUpdate(IEventData iEventData)
         {
-            CombatHeroInfo combatHeroInfo = CombatController.currActiveCombat.CombatHeroController
+            CombatHeroInfo combatHeroInfo = CombatController.currActiveCombat
                 .playerHeroEntity.CurrCombatHeroInfo;
         }
     }

+ 5 - 5
Assets/Scripts/GameUI/UI/CombatPanel/ZhuanPanPanel.cs

@@ -90,7 +90,7 @@ namespace Fort23.Mono
         {
             _gfWidgets.Clear();
             UIManager.Instance.DormancyAllGComponent<gf_widget>();
-            CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController
+            CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat
                 .playerHeroEntity.CombatHeroSkillControl
                 .This<CombatHeroSkillControl>();
             for (int i = 0; i < combatHeroSkillControl.SkillTurntable.allSkillSlots.Count; i++)
@@ -104,7 +104,7 @@ namespace Fort23.Mono
                 gf_widget gfWidget = await UIManager.Instance.CreateGComponentForObject<gf_widget>(this.gf_widget, null,
                     Gf_root, isInstance: true);
                 gfWidget.SkillSlots = skillBasic;
-                gfWidget.InitWidget(skillBasic,CombatController.currActiveCombat.CombatHeroController
+                gfWidget.InitWidget(skillBasic,CombatController.currActiveCombat
                     .playerHeroEntity);
                 _gfWidgets.Add(gfWidget);
             }
@@ -114,13 +114,13 @@ namespace Fort23.Mono
         {
             if (CombatController.currActiveCombat == null ||
                 CombatController.currActiveCombat.CombatHeroController == null ||
-                CombatController.currActiveCombat.CombatHeroController.playerHeroEntity == null || CombatController
-                    .currActiveCombat.CombatHeroController.playerHeroEntity.CombatHeroSkillControl == null)
+                CombatController.currActiveCombat.playerHeroEntity == null || CombatController
+                    .currActiveCombat.playerHeroEntity.CombatHeroSkillControl == null)
             {
                 return;
             }
 
-            CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController
+            CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat
                 .playerHeroEntity.CombatHeroSkillControl
                 .This<CombatHeroSkillControl>();
 

+ 1 - 1
Assets/Scripts/GameUI/UI/DialoguePanel/DialogueBubblePanel.cs

@@ -156,7 +156,7 @@ namespace Fort23.Mono
             if (EventSystemManager.Instance.isOpenUi)
                 return;
 
-            Vector3 worldPos = CombatDrive.Instance.CombatController.CombatHeroController.playerHeroEntity.combatHeroGameObject.hpTransform.position;
+            Vector3 worldPos = CombatDrive.Instance.CombatController.playerHeroEntity.combatHeroGameObject.hpTransform.position;
             Vector3 p = UIManager.Instance.CurrCustomCameraStack.camera.WorldToScreenPoint(worldPos);
             Vector3 p2 = UIManager.Instance.UICamera.ScreenToWorldPoint(p);
             dotPoint.transform.position = p2;

+ 1 - 1
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -135,7 +135,7 @@ namespace Fort23.Mono
             EventSystemManager.Instance.isTriggerEvent = true;
             CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
             CombatController.currActiveCombat.CombatSenceController.StartPayShengShi(CombatController.currActiveCombat
-                .CombatHeroController.playerHeroEntity.GameObject.transform);
+                .playerHeroEntity.GameObject.transform);
             List<AccountFileInfo.EventList> eventLists = EventSystemManager.Instance.UseDivinesense(1);
             await TimerComponent.Instance.WaitAsync(800);
             if (eventLists == null || eventLists.Count == 0)