geometry-tower-defense/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatStates/CombatRewardSelectionState.cs

38 lines
1.3 KiB
C#

namespace GeometryTD.CustomComponent
{
internal sealed class CombatRewardSelectionState : CombatStateBase
{
public CombatRewardSelectionState(CombatSchedulerRuntimeContext context, CombatSchedulerFlowCoordinator flow)
: base(context, flow)
{
}
public override void OnEnter()
{
if (Context.SettlementContext == null)
{
Flow.EnterFailureFallback("Combat reward selection failed. Settlement context is missing.");
return;
}
Flow.EnsureRewardSelectFormUseCaseBound();
if (!Context.SettlementFlowService.TryPrepareRewardSelection(
Context.SettlementContext,
Context.CombatInRunResourceManager,
Context.PhaseLoopRuntime.DisplayPhaseIndex,
Flow.ResolveCurrentThemeType(),
Context.RewardSelectFormUseCase,
Flow.OnFullBaseHpRewardSelected,
Flow.OnFullBaseHpRewardGiveUp))
{
Flow.ChangeState(new CombatFinishFormState(Context, Flow));
}
}
public override void OnExit()
{
Flow.CloseRewardSelectForm();
}
}
}