Expose reserve drill option state

This commit is contained in:
2026-07-09 14:05:55 +09:00
parent 90c1297700
commit c499fdc4fc
2 changed files with 13 additions and 4 deletions

View File

@@ -9666,7 +9666,9 @@ function assertSortieTacticalRoster(state, requiredUnitIds) {
typeof state.rosterCollection?.reserveTrainingBondAssignmentCount !== 'number' ||
!Array.isArray(state.reserveTrainingFocusOptions) ||
state.reserveTrainingFocusOptions.length !== 3 ||
!state.reserveTrainingFocusOptions.some((focus) => focus.id === 'bond-practice' && focus.bondExpGained > 0)
!state.reserveTrainingFocusOptions.some((focus) => focus.id === 'bond-practice' && focus.bondExpGained > 0) ||
!state.reserveTrainingFocusOptions.some((focus) => focus.selected) ||
state.reserveTrainingFocusOptions.some((focus) => typeof focus.selected !== 'boolean' || typeof focus.assignedReserveCount !== 'number')
) {
throw new Error(`Expected sortie preparation to expose selectable reserve drill focuses: ${JSON.stringify(state.reserveTrainingFocusOptions)}`);
}

View File

@@ -15746,6 +15746,9 @@ export class CampScene extends Phaser.Scene {
getDebugState() {
const sortieChecklist = this.sortieChecklist();
const sortieScenario = this.nextSortieScenario();
const reserveTrainingAssignments = this.campaign?.reserveTrainingAssignments ?? {};
const reserveTrainingFocus = this.reserveTrainingFocusDefinition();
const reserveTrainingUnits = this.reserveTrainingPreviewUnits();
return {
scene: this.scene.key,
activeTab: this.activeTab,
@@ -15759,7 +15762,7 @@ export class CampScene extends Phaser.Scene {
selectedVisitId: this.selectedVisitId,
selectedSortieUnitIds: [...this.selectedSortieUnitIds],
sortieFormationAssignments: { ...this.sortieFormationAssignments },
reserveTrainingAssignments: { ...(this.campaign?.reserveTrainingAssignments ?? {}) },
reserveTrainingAssignments: { ...reserveTrainingAssignments },
sortieItemAssignments: this.cloneSortieItemAssignments(this.sortieItemAssignments),
sortieDeploymentPreview: this.sortieDeploymentPreviewDebug(),
sortieFocusedUnitId: this.sortieFocusedUnitId,
@@ -15767,8 +15770,12 @@ export class CampScene extends Phaser.Scene {
sortiePlanFeedback: this.sortiePlanFeedback,
sortieChecklist,
sortieNextAction: this.sortiePrepSubtitle(sortieChecklist),
reserveTrainingFocus: this.reserveTrainingFocusDefinition(),
reserveTrainingFocusOptions: campaignReserveTrainingFocusDefinitions.map((focus) => ({ ...focus })),
reserveTrainingFocus,
reserveTrainingFocusOptions: campaignReserveTrainingFocusDefinitions.map((focus) => ({
...focus,
selected: focus.id === reserveTrainingFocus.id,
assignedReserveCount: reserveTrainingUnits.filter((unit) => reserveTrainingAssignments[unit.id] === focus.id).length
})),
sortieRosterView: this.sortieRosterViewState(this.sortieAllies().length),
sortieRoster: this.sortieAllies().map((unit) => {
const summary = this.sortieUnitTacticalSummary(unit);