namespace GeometryTD.CustomComponent { public partial class CombatScheduler { private sealed class CombatRewardSelectionState : CombatStateBase { public CombatRewardSelectionState(CombatScheduler scheduler) : base(scheduler) { } public override void OnEnter() { if (Scheduler._settlementContext == null) { Scheduler.EnterFailureFallback("Combat reward selection failed. Settlement context is missing."); return; } Scheduler.EnsureRewardSelectFormUseCaseBound(); if (!Scheduler._settlementFlowService.TryPrepareRewardSelection( Scheduler._settlementContext, Scheduler._combatInRunResourceManager, Scheduler._phaseLoopRuntime.DisplayPhaseIndex, Scheduler.ResolveCurrentThemeType(), Scheduler._rewardSelectFormUseCase, Scheduler.OnFullBaseHpRewardSelected, Scheduler.OnFullBaseHpRewardGiveUp)) { Scheduler.ChangeState(new CombatFinishFormState(Scheduler)); } } public override void OnExit() { Scheduler.CloseRewardSelectForm(); } } } }