From b001f495aef5d2370470be70e11f71e8aeb051da Mon Sep 17 00:00:00 2001 From: Wickedness Date: Thu, 9 Jul 2026 14:23:03 +0900 Subject: [PATCH] Expose next incomplete sortie checklist item --- scripts/verify-flow.mjs | 4 +++- src/game/scenes/CampScene.ts | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/verify-flow.mjs b/scripts/verify-flow.mjs index 459e7e8..ee7d206 100644 --- a/scripts/verify-flow.mjs +++ b/scripts/verify-flow.mjs @@ -9583,7 +9583,9 @@ function assertSortieTacticalRoster(state, requiredUnitIds) { typeof state.sortieChecklistSummary?.completeCount !== 'number' || typeof state.sortieChecklistSummary?.complete !== 'boolean' || typeof state.sortieChecklistSummary?.requiredRemainingCount !== 'number' || - typeof state.sortieChecklistSummary?.recommendedRemainingCount !== 'number' + typeof state.sortieChecklistSummary?.recommendedRemainingCount !== 'number' || + (state.sortieChecklistSummary?.nextIncompleteLabel !== null && typeof state.sortieChecklistSummary?.nextIncompleteLabel !== 'string') || + (state.sortieChecklistSummary?.nextIncompletePriority !== null && typeof state.sortieChecklistSummary?.nextIncompletePriority !== 'string') ) { throw new Error(`Expected sortie checklist summary counts: ${JSON.stringify(state.sortieChecklistSummary)}`); } diff --git a/src/game/scenes/CampScene.ts b/src/game/scenes/CampScene.ts index 49c45cf..1f1d562 100644 --- a/src/game/scenes/CampScene.ts +++ b/src/game/scenes/CampScene.ts @@ -13799,12 +13799,15 @@ export class CampScene extends Phaser.Scene { private sortieChecklistSummary(checklist: SortieChecklistItem[]) { const completeCount = checklist.filter((item) => item.complete).length; + const nextIncomplete = checklist.find((item) => !item.complete); return { total: checklist.length, completeCount, complete: completeCount === checklist.length, requiredRemainingCount: checklist.filter((item) => !item.complete && item.priority === 'required').length, - recommendedRemainingCount: checklist.filter((item) => !item.complete && item.priority !== 'required').length + recommendedRemainingCount: checklist.filter((item) => !item.complete && item.priority !== 'required').length, + nextIncompleteLabel: nextIncomplete?.label ?? null, + nextIncompletePriority: nextIncomplete?.priority ?? null }; }