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

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));
}
}
}
}