namespace GeometryTD.CustomComponent { internal sealed class CombatSettlementState : CombatStateBase { private readonly bool _isVictory; public CombatSettlementState( CombatSchedulerRuntimeContext context, CombatSchedulerFlowCoordinator flow, bool isVictory) : base(context, flow) { _isVictory = isVictory; } public override void OnEnter() { Context.EnemyManager.EndPhase(); Context.EnemyManager.CleanupTrackedEnemies(); Context.IsFinishAsVictory = _isVictory; Context.SettlementContext = Context.SettlementFlowService.BuildSettlementContext( _isVictory, Context.CurrentLevel, Context.EnemyManager.DefeatedEnemyCount, Context.CombatInRunResourceManager); if (Context.SettlementContext.Flow.ShouldOpenRewardSelection) { Flow.ChangeState(new CombatRewardSelectionState(Context, Flow)); return; } Flow.ChangeState(new CombatFinishFormState(Context, Flow)); } } }