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