namespace GeometryTD.CustomComponent { internal sealed class CombatSettlementState : CombatStateBase { private readonly bool _didCombatWin; public CombatSettlementState( CombatSchedulerRuntime runtime, CombatSchedulerCoordinator coordinator, bool didCombatWin) : base(runtime, coordinator) { _didCombatWin = didCombatWin; } public override void OnEnter() { Runtime.EnemyManager.EndPhase(); Runtime.EnemyManager.CleanupTrackedEnemies(); Runtime.DidCombatWin = _didCombatWin; Runtime.SettlementContext = Runtime.CombatSettlementService.BuildSettlementContext( _didCombatWin, Runtime.CurrentLevel, Runtime.EnemyManager.DefeatedEnemyCount, Runtime.CombatRunResourceStore); if (Runtime.SettlementContext.Flags.ShouldOpenRewardSelection) { Coordinator.ChangeState(new CombatRewardSelectionState(Runtime, Coordinator)); return; } Coordinator.ChangeState(new CombatFinishFormState(Runtime, Coordinator)); } } }