From ec72c96635f0751ef2df97a8f688916bfa47fee8 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Thu, 9 Jul 2026 14:16:41 +0900 Subject: [PATCH] Expose sortie formation coverage --- scripts/verify-flow.mjs | 1 + src/game/scenes/CampScene.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/scripts/verify-flow.mjs b/scripts/verify-flow.mjs index 5062d9c..43ede58 100644 --- a/scripts/verify-flow.mjs +++ b/scripts/verify-flow.mjs @@ -9614,6 +9614,7 @@ function assertSortieTacticalRoster(state, requiredUnitIds) { if ( !state.sortiePlan || !state.sortiePlan.deploymentLine?.includes('전열') || + typeof state.sortiePlan.formationCoverageComplete !== 'boolean' || !state.sortiePlan.objectiveLine || !state.sortiePlan.reserveTrainingLine?.includes('대기 훈련') || !state.sortiePlan.reserveTrainingPreviewLine || diff --git a/src/game/scenes/CampScene.ts b/src/game/scenes/CampScene.ts index 21d4789..857453a 100644 --- a/src/game/scenes/CampScene.ts +++ b/src/game/scenes/CampScene.ts @@ -282,6 +282,7 @@ type SortiePlanSummary = { recommendedClassMissingLabels: string[]; recommendationCoverageComplete: boolean; deploymentLine: string; + formationCoverageComplete: boolean; recommendationLine: string; recruitedLine: string; reserveLine: string; @@ -13431,6 +13432,7 @@ export class CampScene extends Phaser.Scene { recommendedClassMissingLabels: missingClassRecommendations.map((entry) => entry.label), recommendationCoverageComplete: missingRecommended.length === 0 && missingClassRecommendations.length === 0, deploymentLine: roleLine, + formationCoverageComplete: roleCounts.front > 0 && roleCounts.flank > 0 && roleCounts.support > 0, recommendationLine: recommended.length > 0 ? `추천 무장 ${recommendedSelectedCount}/${recommended.length} · 병종 ${recommendedClassCoverageLine}` : `추천 병종 ${recommendedClassCoverageLine}`,