From e3a09496beff87259183339b75babd273c053c88 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Thu, 9 Jul 2026 14:13:17 +0900 Subject: [PATCH] Show recommended class coverage in sortie plan --- scripts/verify-flow.mjs | 7 +++++++ src/game/scenes/CampScene.ts | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/verify-flow.mjs b/scripts/verify-flow.mjs index e2e453d..7d6d2d7 100644 --- a/scripts/verify-flow.mjs +++ b/scripts/verify-flow.mjs @@ -9642,6 +9642,13 @@ function assertSortieTacticalRoster(state, requiredUnitIds) { throw new Error(`Expected individualized bond drill count to be visible in reserve training preview: ${JSON.stringify(state.sortiePlan)}`); } + if ( + state.sortiePlan.recommendedClassTotal > 0 && + !state.sortiePlan.recommendationLine.includes(`${state.sortiePlan.recommendedClassSelectedCount}/${state.sortiePlan.recommendedClassTotal}`) + ) { + throw new Error(`Expected recommended class coverage to be visible in sortie recommendation line: ${JSON.stringify(state.sortiePlan)}`); + } + if ( !state.sortieFocusedUnit || !state.sortieFocusedUnit.id || diff --git a/src/game/scenes/CampScene.ts b/src/game/scenes/CampScene.ts index 444581c..48cb092 100644 --- a/src/game/scenes/CampScene.ts +++ b/src/game/scenes/CampScene.ts @@ -13353,6 +13353,9 @@ export class CampScene extends Phaser.Scene { const activeBondCount = this.currentBonds().filter((bond) => bond.unitIds.every((unitId) => selectedIds.has(unitId))).length; const recommendedSelectedCount = recommended.filter((entry) => selectedIds.has(entry.unitId)).length; const recommendedClassSelectedCount = recommendedClasses.length - missingClassRecommendations.length; + const recommendedClassCoverageLine = recommendedClasses.length > 0 + ? `${recommendedClassSelectedCount}/${recommendedClasses.length} ${this.sortieRecommendedClassLine(scenario)}` + : this.sortieRecommendedClassLine(scenario); const roleCounts = selectedUnits.reduce( (counts, unit) => { counts[this.sortieFormationRole(unit)] += 1; @@ -13423,8 +13426,8 @@ export class CampScene extends Phaser.Scene { recommendedClassTotal: recommendedClasses.length, deploymentLine: roleLine, recommendationLine: recommended.length > 0 - ? `추천 무장 ${recommendedSelectedCount}/${recommended.length} · 병종 ${this.sortieRecommendedClassLine(scenario)}` - : `추천 병종 ${this.sortieRecommendedClassLine(scenario)}`, + ? `추천 무장 ${recommendedSelectedCount}/${recommended.length} · 병종 ${recommendedClassCoverageLine}` + : `추천 병종 ${recommendedClassCoverageLine}`, recruitedLine: recruitedUnits.length > 0 ? `합류 무장 ${selectedRecruitedCount}/${recruitedUnits.length} · 대기 ${reserveUnits.length}`