using UnityGameFramework.Runtime; namespace GeometryTD.CustomComponent { internal sealed class CombatFailedState : CombatStateBase { private readonly string _errorMessage; public CombatFailedState( CombatSchedulerRuntime runtime, CombatSchedulerCoordinator coordinator, string errorMessage) : base(runtime, coordinator) { _errorMessage = errorMessage; } public override void OnEnter() { Log.Error( "CombatScheduler failed. LevelId={0}, {1}", Runtime.CurrentLevel != null ? Runtime.CurrentLevel.Id : 0, _errorMessage); Runtime.EnemyManager.EndPhase(); Coordinator.CloseCombatFinishForm(); Coordinator.CloseRewardSelectForm(); Coordinator.OpenCombatFailureDialog(_errorMessage); } public override void OnExit() { Coordinator.CloseDialogForm(); } } }