补全 S1 测试

- 调整 CombatNode 正常结束与异常的变量语义,现在是 DidCombatWin 与 Exception
- 补充测试样例
- 完成 S1 目标
This commit is contained in:
SepComet
2026-03-08 21:10:03 +08:00
parent 1023239880
commit 793a87c171
29 changed files with 393 additions and 113 deletions
@@ -66,9 +66,9 @@ namespace GeometryTD.CustomComponent
Runtime.PhaseLoopRuntime.AdvancePhaseElapsed(elapseSeconds);
Runtime.EnemyManager.OnUpdate(elapseSeconds, realElapseSeconds);
if (Coordinator.ShouldEnterSettlementFromActiveState(out bool isVictory))
if (Coordinator.ShouldEnterSettlementFromActiveState(out bool didCombatWin))
{
Coordinator.ChangeState(new CombatSettlementState(Runtime, Coordinator, isVictory));
Coordinator.ChangeState(new CombatSettlementState(Runtime, Coordinator, didCombatWin));
return;
}
@@ -2,23 +2,23 @@ namespace GeometryTD.CustomComponent
{
internal sealed class CombatSettlementState : CombatStateBase
{
private readonly bool _isVictory;
private readonly bool _didCombatWin;
public CombatSettlementState(
CombatSchedulerRuntime runtime,
CombatSchedulerCoordinator coordinator,
bool isVictory) : base(runtime, coordinator)
bool didCombatWin) : base(runtime, coordinator)
{
_isVictory = isVictory;
_didCombatWin = didCombatWin;
}
public override void OnEnter()
{
Runtime.EnemyManager.EndPhase();
Runtime.EnemyManager.CleanupTrackedEnemies();
Runtime.IsFinishAsVictory = _isVictory;
Runtime.DidCombatWin = _didCombatWin;
Runtime.SettlementContext = Runtime.CombatSettlementService.BuildSettlementContext(
_isVictory,
_didCombatWin,
Runtime.CurrentLevel,
Runtime.EnemyManager.DefeatedEnemyCount,
Runtime.CombatRunResourceStore);
@@ -22,9 +22,9 @@ namespace GeometryTD.CustomComponent
Runtime.PhaseLoopRuntime.AdvancePhaseElapsed(elapseSeconds);
if (Coordinator.ShouldEnterSettlementFromActiveState(out bool isVictory))
if (Coordinator.ShouldEnterSettlementFromActiveState(out bool didCombatWin))
{
Coordinator.ChangeState(new CombatSettlementState(Runtime, Coordinator, isVictory));
Coordinator.ChangeState(new CombatSettlementState(Runtime, Coordinator, didCombatWin));
return;
}
@@ -34,7 +34,7 @@ namespace GeometryTD.CustomComponent
Runtime.LoadSession.Cleanup();
Coordinator.CloseCombatFinishForm();
Coordinator.CloseRewardSelectForm();
Coordinator.CompleteNormalCombatAndNotify(Runtime.IsFinishAsVictory);
Coordinator.CompleteNormalCombatAndNotify(Runtime.DidCombatWin);
}
}
}