38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
namespace GeometryTD.CustomComponent
|
|
{
|
|
public partial class CombatScheduler
|
|
{
|
|
private sealed class CombatSettlementState : CombatStateBase
|
|
{
|
|
private readonly string _reason;
|
|
private readonly bool _isVictory;
|
|
|
|
public CombatSettlementState(CombatScheduler scheduler, string reason, bool isVictory) : base(scheduler)
|
|
{
|
|
_reason = reason;
|
|
_isVictory = isVictory;
|
|
}
|
|
|
|
public override void OnEnter()
|
|
{
|
|
Scheduler._enemyManager.EndPhase();
|
|
Scheduler._enemyManager.CleanupTrackedEnemies();
|
|
Scheduler._isFinishAsVictory = _isVictory;
|
|
Scheduler._settlementContext = Scheduler._settlementFlowService.BuildSettlementContext(
|
|
_reason,
|
|
_isVictory,
|
|
Scheduler._currentLevel,
|
|
Scheduler._enemyManager.DefeatedEnemyCount,
|
|
Scheduler._combatInRunResourceManager);
|
|
if (Scheduler._settlementContext.ShouldOpenRewardSelection)
|
|
{
|
|
Scheduler.ChangeState(new CombatRewardSelectionState(Scheduler));
|
|
return;
|
|
}
|
|
|
|
Scheduler.ChangeState(new CombatFinishFormState(Scheduler));
|
|
}
|
|
}
|
|
}
|
|
}
|