using UnityGameFramework.Runtime; namespace GeometryTD.CustomComponent { public partial class CombatScheduler { private sealed class CombatFailedState : CombatStateBase { private readonly string _errorMessage; public CombatFailedState(CombatScheduler scheduler, string errorMessage) : base(scheduler) { _errorMessage = errorMessage; } public override void OnEnter() { Log.Error( "CombatScheduler failed. LevelId={0}, {1}", Scheduler._currentLevel != null ? Scheduler._currentLevel.Id : 0, _errorMessage); Scheduler._enemyManager.EndPhase(); Scheduler.CloseCombatFinishForm(); Scheduler.CloseRewardSelectForm(); Scheduler.OpenCombatFailureDialog(_errorMessage); } public override void OnExit() { Scheduler.CloseDialogForm(); } } } }