namespace GeometryTD.CustomComponent { public partial class CombatScheduler { private sealed class CombatSettlementState : CombatStateBase { private readonly string _reason; private readonly bool _isVictory; public CombatSettlementState(CombatScheduler scheduler, string reason, bool isVictory) : base(scheduler) { _reason = reason; _isVictory = isVictory; } public override void OnEnter() { Scheduler._enemyManager.EndPhase(); Scheduler._enemyManager.CleanupTrackedEnemies(); Scheduler._isFinishAsVictory = _isVictory; Scheduler._settlementContext = Scheduler._settlementFlowService.BuildSettlementContext( _reason, _isVictory, Scheduler._currentLevel, Scheduler._enemyManager.DefeatedEnemyCount, Scheduler._combatInRunResourceManager); if (Scheduler._settlementContext.ShouldOpenRewardSelection) { Scheduler.ChangeState(new CombatRewardSelectionState(Scheduler)); return; } Scheduler.ChangeState(new CombatFinishFormState(Scheduler)); } } } }