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