| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 | 
							- using System;
 
- using Common.Utility.CombatEvent;
 
- using Common.Utility.CombatTimer;
 
- using Core.Audio;
 
- using Core.Event.Event;
 
- using Core.State;
 
- using Core.Utility;
 
- using Excel2Json;
 
- using Fort23.Core;
 
- using Fort23.UTool;
 
- 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;
 
- using Utility.CustomizeTimeLogic.FxLogic.TimeLineEvent;
 
- using Utility.UITool;
 
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
- namespace GameLogic.Combat.CombatTool
 
- {
 
-     public class CombatController : ITimeLineAudio, IDisposable
 
-     {
 
-         public static string idle = "idle";
 
-         public static string update = "update";
 
-         public static string fight = "fight";
 
-         public static string sceneSwitch = "sceneSwitch";
 
-         public static string miniSceneSwitch = "miniSceneSwitch";
 
-         public static CombatController currActiveCombat;
 
-         public CombatHeroController CombatHeroController;
 
-         public CombatCameraControllder CombatCameraControllder;
 
-         public CombatTypeBasic CombatTypeBasic;
 
-         protected StateControl stateControl;
 
-         public CombatSenceController CombatSenceController;
 
-         public CombatDataController CombatDataController;
 
-         public GameTimeLineParticleFactory GameTimeLineParticleFactory;
 
-         public MagicWeaponCombatSence MagicWeaponCombatSence;
 
-         // public RandomEventController RandomEventController;
 
-         public bool isUpdate;
 
-         /// <summary>
 
-         /// 涨停游戏英雄AI行为
 
-         /// </summary>
 
-         public bool isStopAi;
 
-         public float speed = 1;
 
-         private bool _isFullUIShow;
 
-         public bool IsGameOver;
 
-         public bool IsFightState;
 
-         public System.Action<bool> combatFinish;
 
-         public float combatTime;
 
-         public CombatHeroEntity playerHeroEntity;
 
-         public bool isWin;
 
-      
 
-         public CombatStateBasic CurrState
 
-         {
 
-             get { return stateControl.CurrIState as CombatStateBasic; }
 
-         }
 
-         public async CTask InitCombat(StartCombatInfo startCombatInfo)
 
-         {
 
-             combatTime = 0;
 
-             isWin = false;
 
-             IsGameOver = false;
 
-             CombatReportManager.Instance.Clear();
 
-             // CombatGuideManager.Instance.Init();
 
-             TimeLineSingletonEventManager.Instance.AddTimeLineBasic(this);
 
-             GameTimeLineParticleFactory = new GameTimeLineParticleFactory();
 
-             TimeLineFxParticleTool.Instance.Init(GameTimeLineParticleFactory);
 
-             // RandomEventController = new RandomEventController();
 
-             currActiveCombat = this;
 
-             if (stateControl == null)
 
-             {
 
-                 stateControl = new StateControl();
 
-                 stateControl.AddState("idle", new CombatIdleState(this));
 
-                 stateControl.AddState("update", new CombatUpdateState(this));
 
-                 stateControl.AddState("fight", new CombatFightState(this));
 
-                 stateControl.AddState("combatfinish", new CombatFinishState(this));
 
-                 stateControl.AddState(sceneSwitch, new CombatSceneSwitchState(this));
 
-                 stateControl.AddState(miniSceneSwitch, new CombatMiniSceneSwitchState(this));
 
-              
 
-                 if (CombatSenceController == null)
 
-                 {
 
-                     CombatSenceController = new CombatSenceController();
 
-                     await CombatSenceController.InitScenes("LevelBattle02");
 
-                 }
 
-                 if (CombatDataController == null)
 
-                 {
 
-                     CombatDataController = new CombatDataController();
 
-                     await CombatDataController.Init();
 
-                 }
 
-             }
 
-             MagicWeaponCombatSence = new MagicWeaponCombatSence();
 
-             MagicWeaponCombatSence.Init();
 
-             Camera camera = Camera.main;
 
-             CombatCameraControllder = new CombatCameraControllder();
 
-             CombatCameraControllder.Init(this, camera);
 
-             CombatHeroController = new CombatHeroController();
 
-             await CombatHeroController.Init(this);
 
-             switch (startCombatInfo.CombatType)
 
-             {
 
-                 case CombatType.CombatType.TestCombat:
 
-                     CombatTypeBasic = new TestCombatType();
 
-                     break;
 
-                 case CombatType.CombatType.LevelBattle:
 
-                     CombatTypeBasic = new LevelBattleCombatType();
 
-                     break;
 
-             }
 
-             CombatTypeBasic.Init(this, startCombatInfo);
 
-             await CombatTypeBasic.StartGame();
 
-             ChangeState("idle");
 
-             isUpdate = true; 
 
-             EventManager.Instance.AddEventListener(CustomEventType.RefreshFull, RefreshFull);
 
-             CombatEventManager.Instance.Dispatch(CombatEventType.GameStart, null);
 
-         }
 
-     
 
-         private void RefreshFull(IEventData eventData)
 
-         {
 
-             RefreshFullEventData data = (RefreshFullEventData)eventData;
 
-             _isFullUIShow = data.isFullShow;
 
-         }
 
-         public void ChangeState(string name)
 
-         {
 
-             stateControl.ChangeState(name);
 
-         }
 
-       
 
-         public void Update(float t)
 
-         {
 
-             CombatGestureController.Instance.Update();
 
-             if (!isUpdate || _isFullUIShow)
 
-             {
 
-                 return;
 
-             }
 
-             
 
-             if (Input.GetKeyDown(KeyCode.A))
 
-             {
 
-                ChangeState("sceneSwitch");
 
-             }
 
-             if (Input.GetKeyDown(KeyCode.D))
 
-             {
 
-                CombatSenceController.Flight(2, -90, 10);
 
-             }
 
-          
 
-             
 
-             t *= speed;
 
-             if (!IsGameOver)
 
-             {
 
-                 combatTime += t;
 
-             }
 
-             stateControl.Update(t);
 
-             CombatTypeBasic?.Update(t);
 
-             MagicWeaponCombatSence?.Update(t);
 
-             CombatSenceController?.Update(t);
 
-             CombatTimerManager.Instance.ComabtUpdate(t);
 
-             CombatGuideManager.Instance.Update();
 
-             LateUpdate(t);
 
-             if (playerHeroEntity != null)
 
-             {
 
-                 if (Input.GetMouseButtonUp(0))
 
-                 {
 
-                     Vector3 pos = Input.mousePosition;
 
-                     Ray ray = CombatCameraControllder.Camera.ScreenPointToRay(pos);
 
-                     bool isOk = Physics.Raycast(ray, out RaycastHit hit, 30, LayerMask.GetMask("hero"));
 
-                     if (isOk)
 
-                     {
 
-                         HeroEntityMono heroEntityMono=  hit.transform.gameObject.GetComponent<HeroEntityMono>();
 
-                         if (heroEntityMono != null &&
 
-                             heroEntityMono.combatHeroEntity.IsEnemy != playerHeroEntity.IsEnemy)
 
-                         {
 
-                             playerHeroEntity.CombatAIBasic.currFocusTarget=heroEntityMono.combatHeroEntity;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-           
 
-            
 
-         }
 
-         private void TriggerCombat()
 
-         {
 
-         }
 
-         public void LateUpdate(float t)
 
-         {
 
-             CombatHeroController.LateUpdate(t);
 
-             CombatReportManager.Instance.Update();
 
-         }
 
-         public async CTask<AudioSourcePool> PlayAudio(string audioName, bool isLoop)
 
-         {
 
-             return await AudioManager.Instance.PlayAudio(audioName, isLoop);
 
-         }
 
-         public void GameOver(bool isWin)
 
-         {
 
-             this.isWin = isWin;
 
-             IsGameOver = true;
 
-             ChangeState("combatfinish");
 
-             combatFinish?.Invoke(isWin);
 
-         }
 
-         public void DisposeOneCombatInfo()
 
-         {
 
-             CombatReportManager.Instance.Clear();
 
-             MagicWeaponCombatSence?.CloseSecene();
 
-             CombatEventManager.Instance.Dispose();
 
-         }
 
-         
 
-         public void Dispose()
 
-         {
 
-             DisposeOneCombatInfo();
 
-             TimeLineSingletonEventManager.Instance.RemoveTimeLineBasic(this);
 
-             CombatTypeBasic?.Dispose();
 
-             CombatHeroController?.Dispose();
 
-             CombatCameraControllder?.Dispose();
 
-             CombatSenceController?.Dispose();
 
-             GameTimeLineParticleFactory?.Dispose();
 
-             EventManager.Instance.RemoveAllEventListener(CustomEventType.RefreshFull);
 
-         }
 
-     }
 
- }
 
 
  |