diff --git a/src/game/scenes/CampScene.ts b/src/game/scenes/CampScene.ts index c5abf9c..006c679 100644 --- a/src/game/scenes/CampScene.ts +++ b/src/game/scenes/CampScene.ts @@ -13622,16 +13622,17 @@ export class CampScene extends Phaser.Scene { bg.setStrokeStyle(1, palette.blue, 0.4); const focus = this.reserveTrainingFocusDefinition(); - const reserveCount = this.sortiePlanSummary().reserveCount; + const reserveUnits = this.reserveTrainingPreviewUnits(); + const reserveCount = reserveUnits.length; this.trackSortie(this.add.text(x + 12, y + 7, '대기 훈련', this.textStyle(12, '#f2e3bf', true))).setDepth(depth + 1); const focusPreview = reserveCount > 0 - ? `경험 +${focus.expGained} · 장비 +${focus.equipmentExpGained}${focus.bondExpGained ? ` · 공명 +${focus.bondExpGained}` : ''}` + ? this.reserveTrainingPreviewLine(reserveUnits, focus) : '대기 없음'; this.trackSortie( this.add.text( x + width - 12, y + 7, - reserveCount > 0 ? `${reserveCount}명 · ${focusPreview}` : focusPreview, + this.compactText(focusPreview, 34), this.textStyle(11, reserveCount > 0 ? '#d8b15f' : '#9fb0bf', true) ) ).setOrigin(1, 0).setDepth(depth + 1); @@ -13656,6 +13657,18 @@ export class CampScene extends Phaser.Scene { }); } + private reserveTrainingPreviewUnits() { + const selectedIds = new Set(this.selectedSortieUnits().map((unit) => unit.id)); + return this.sortieAllies().filter((unit) => !selectedIds.has(unit.id)); + } + + private reserveTrainingPreviewLine(reserveUnits: UnitData[], focus: CampaignReserveTrainingFocusDefinition) { + const previewNames = reserveUnits.slice(0, 2).map((unit) => unit.name).join(', '); + const remaining = reserveUnits.length > 2 ? ` 외 ${reserveUnits.length - 2}명` : ''; + const gainLine = `경험 +${focus.expGained} · 장비 +${focus.equipmentExpGained}${focus.bondExpGained ? ` · 공명 +${focus.bondExpGained}` : ''}`; + return `${previewNames}${remaining} · ${gainLine}`; + } + private nextSortieBriefing() { const flow = this.currentSortieFlow(); return {