12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using Common.Utility.CombatEvent;
- using Core.Audio;
- using Core.State;
- using Fort23.Core;
- using GameLogic.Combat.CombatState;
- using GameLogic.Combat.CombatType;
- using GameLogic.Combat.Hero.HeroGPU;
- using GameLogic.CombatScenesTool;
- using UnityEngine;
- using Utility.CustomizeTimeLogic.FxLogic.TimeLineEvent;
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
- namespace GameLogic.Combat.CombatTool
- {
- public class CombatController : ITimeLineAudio
- {
- public static CombatController currActiveCombat;
- public CombatHeroController CombatHeroController;
- public CombatCameraControllder CombatCameraControllder;
- public CombatTypeBasic CombatTypeBasic;
- protected StateControl stateControl;
- private AssetHandle scenesHandle;
- public GameObject gameObject;
- public GameTimeLineParticleFactory GameTimeLineParticleFactory;
- public bool isUpdate;
- public CombatStateBasic CurrState
- {
- get { return stateControl.CurrIState as CombatStateBasic; }
- }
- public async CTask InitCombat(StartCombatInfo startCombatInfo)
- {
- TimeLineSingletonEventManager.Instance.AddTimeLineBasic(this);
- GameTimeLineParticleFactory = new GameTimeLineParticleFactory();
- TimeLineFxParticleTool.Instance.Init(GameTimeLineParticleFactory);
- currActiveCombat = this;
- stateControl = new StateControl();
- stateControl.AddState("idle", new CombatIdleState(this));
- stateControl.AddState("update", new CombatUpdateState(this));
- scenesHandle =
- await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>("Chapter01.prefab");
- gameObject = scenesHandle.AssetObject<GameObject>();
- gameObject.SetActive(true);
- Camera camera = Camera.main;
- CombatCameraControllder = new CombatCameraControllder();
- CombatCameraControllder.Init(this, camera);
- CombatHeroController = new CombatHeroController();
- 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("update");
- isUpdate = true;
- }
- public void ChangeState(string name)
- {
- stateControl.ChangeState(name);
- }
- public void Update(float t)
- {
- if (!isUpdate)
- {
- return;
- }
- stateControl.Update(t);
- CombatTypeBasic?.Update(t);
- }
- public void PlayAudio(string audioName, bool isLoop)
- {
- AudioManager.Instance.PlayAudio(audioName, isLoop);
- }
- }
- }
|