| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | 
							- using Core.Audio;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.CombatTool.CombatReport;
 
- using GameLogic.Combat.Hero;
 
- using UnityEngine;
 
- namespace GameLogic.Combat.CombatState
 
- {
 
-     public class CombatFightState : CombatStateBasic
 
-     {
 
-         public CombatFightState(CombatController combatController) : base(combatController)
 
-         {
 
-         }
 
-         protected override void ProEnter()
 
-         {
 
-             CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
 
-             CombatController.CombatCameraControllder.SetPos(playerHeroEntity.combatHeroGameObject.transform);
 
-             CombatController.CombatCameraControllder.isStop = true;
 
-             CombatController.IsFightState = true;
 
-             CombatController.currActiveCombat.CombatCameraControllder.SetFieldOfView(60, 3);
 
-             int odds = Random.Range(0, 100);
 
-             if (odds < 50)
 
-                 AudioManager.Instance.PlayBGM("battle2.mp3");
 
-             else
 
-             {
 
-                 AudioManager.Instance.PlayBGM("battle1.mp3");
 
-             }
 
-             CombatController.currActiveCombat.CombatCameraControllder.EnterCombat();
 
-             CombatController.currActiveCombat.isPrepare = true;
 
-         }
 
-         protected override void ProExit()
 
-         {
 
-             CombatController.currActiveCombat.CombatCameraControllder.ExitCombat();
 
-             CombatController.CombatCameraControllder.isStop = false;
 
-         }
 
-         protected override void ProUpdate(float t)
 
-         {
 
-             CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
 
-             if (playerHeroEntity == null)
 
-             {
 
-                 return;
 
-             }
 
-           
 
-             CombatHeroEntity[] allHero =
 
-                 CombatController.currActiveCombat.CombatHeroController.GetHero(true, out int maxCount);
 
-             if (CombatController.currActiveCombat.isPrepare)
 
-             {
 
-                 bool isPrepareFinish = true;
 
-                 for (int i = 0; i < allHero?.Length; i++)
 
-                 {
 
-                     if (allHero[i].CombatAIBasic.stateControl.CurrStateName.Equals(CombatHeroStateType.Active))
 
-                     {
 
-                         isPrepareFinish = false;
 
-                         break;
 
-                     }
 
-                 }
 
-                 if (isPrepareFinish)
 
-                 {
 
-                     CombatController.currActiveCombat.isPrepare = false;
 
-                     //准备完成
 
-                 }
 
-             }
 
-             IHero ihero = FindMinDixtance(allHero, maxCount, 500);
 
-             if (ihero == null)
 
-             {
 
-                 CombatController.ChangeState("update");
 
-                 return;
 
-             }
 
-             IHero ihero2 = FindMinDixtance(allHero, maxCount, 225);
 
-             if (ihero2 == null)
 
-             {
 
-                 float add = 0.1f;
 
-                 Vector3 pos = playerHeroEntity.dotPos;
 
-                 Vector3 dir = CombatController.currActiveCombat.CombatSenceController.moveDir;
 
-                 float fx = 1;
 
-                 pos += dir.normalized * CombatController.currActiveCombat.CombatHeroController.moveSpeed * t;
 
-                 playerHeroEntity.combatHeroGameObject.SetPosition(pos);
 
-                 playerHeroEntity.GameObject.transform.rotation = Quaternion.LookRotation(dir * fx);
 
-             }
 
-             CombatController.CombatHeroController.Update(t);
 
-             CombatController.CombatCameraControllder.Update(t);
 
-             CombatController.GameTimeLineParticleFactory.CombatUpdate(t);
 
-         }
 
-         protected IHero FindMinDixtance(CombatHeroEntity[] allHero, int maxCount, int maxDis)
 
-         {
 
-             IHero minDistanceHero = null;
 
-             if (allHero == null)
 
-             {
 
-                 return null;
 
-             }
 
-             CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
 
-             float minDistance = float.MaxValue;
 
-             for (int i = 0; i < maxCount; i++)
 
-             {
 
-                 CombatHeroEntity hero = allHero[i];
 
-                 if (hero.GetMainHotPoin<CombatHeroHitPoint>() == null)
 
-                 {
 
-                     continue;
 
-                 }
 
-                 float distance = Vector3.SqrMagnitude(hero.combatHeroGameObject.position -
 
-                                                       playerHeroEntity.combatHeroGameObject.position);
 
-                 if (distance < minDistance && distance < maxDis)
 
-                 {
 
-                     // if (!_combatHeroEntity.IsEnemy || distance < _combatHeroEntity.CurrCombatHeroInfo.maxDisTo + 100)
 
-                     {
 
-                         minDistance = distance;
 
-                         minDistanceHero = hero;
 
-                     }
 
-                 }
 
-             }
 
-             return minDistanceHero;
 
-         }
 
-     }
 
- }
 
 
  |