38 lines
1.3 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|