Expose reserve drill assignments in debug state

This commit is contained in:
2026-07-09 13:44:07 +09:00
parent 11bda30b7f
commit 2c4927cc1f
2 changed files with 14 additions and 0 deletions

View File

@@ -9634,6 +9634,9 @@ function assertSortieTacticalRoster(state, requiredUnitIds) {
!state.sortieFocusedUnit.equipmentLine?.includes('Lv') || !state.sortieFocusedUnit.equipmentLine?.includes('Lv') ||
!state.sortieFocusedUnit.bondLine?.includes('공명') || !state.sortieFocusedUnit.bondLine?.includes('공명') ||
!state.sortieFocusedUnit.terrainLine?.includes('지형') || !state.sortieFocusedUnit.terrainLine?.includes('지형') ||
typeof state.sortieFocusedUnit.reserveTrainingAssigned !== 'boolean' ||
!state.sortieFocusedUnit.reserveTrainingFocusId ||
!state.sortieFocusedUnit.reserveTrainingFocusLabel ||
typeof state.sortieFocusedUnit.terrainScore !== 'number' || typeof state.sortieFocusedUnit.terrainScore !== 'number' ||
!state.sortieFocusedUnit.terrainGrade || !state.sortieFocusedUnit.terrainGrade ||
!Array.isArray(state.sortieFocusedUnit.equipment) || !Array.isArray(state.sortieFocusedUnit.equipment) ||
@@ -9645,6 +9648,7 @@ function assertSortieTacticalRoster(state, requiredUnitIds) {
if ( if (
!state.reserveTrainingFocus || !state.reserveTrainingFocus ||
typeof state.reserveTrainingAssignments !== 'object' ||
!Array.isArray(state.reserveTrainingFocusOptions) || !Array.isArray(state.reserveTrainingFocusOptions) ||
state.reserveTrainingFocusOptions.length !== 3 || 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)

View File

@@ -207,6 +207,9 @@ type SortieFocusedUnitSummary = SortieUnitTacticalSummary & {
className: string; className: string;
classRole: string; classRole: string;
formationRole: SortieFormationRole; formationRole: SortieFormationRole;
reserveTrainingAssigned: boolean;
reserveTrainingFocusId: CampaignReserveTrainingFocusId;
reserveTrainingFocusLabel: string;
terrainScore: number; terrainScore: number;
terrainGrade: string; terrainGrade: string;
equipment: { equipment: {
@@ -13179,6 +13182,8 @@ export class CampScene extends Phaser.Scene {
const recommendation = this.sortieRecommendation(unit.id); const recommendation = this.sortieRecommendation(unit.id);
const scenario = this.nextSortieScenario(); const scenario = this.nextSortieScenario();
const terrainScore = this.sortieTerrainScore(unit, scenario); const terrainScore = this.sortieTerrainScore(unit, scenario);
const assignedReserveTrainingFocus = this.campaign?.reserveTrainingAssignments[unit.id];
const reserveTrainingFocus = this.reserveTrainingFocusDefinitionForUnit(unit.id);
return { return {
id: unit.id, id: unit.id,
name: unit.name, name: unit.name,
@@ -13189,6 +13194,9 @@ export class CampScene extends Phaser.Scene {
className: unit.className, className: unit.className,
classRole: getUnitClass(unit.classKey).role, classRole: getUnitClass(unit.classKey).role,
formationRole: this.sortieFormationRole(unit), formationRole: this.sortieFormationRole(unit),
reserveTrainingAssigned: Boolean(assignedReserveTrainingFocus),
reserveTrainingFocusId: reserveTrainingFocus.id,
reserveTrainingFocusLabel: reserveTrainingFocus.label,
terrainScore, terrainScore,
terrainGrade: this.sortieTerrainGrade(terrainScore), terrainGrade: this.sortieTerrainGrade(terrainScore),
statLine: summary.statLine, statLine: summary.statLine,
@@ -15691,6 +15699,7 @@ export class CampScene extends Phaser.Scene {
selectedVisitId: this.selectedVisitId, selectedVisitId: this.selectedVisitId,
selectedSortieUnitIds: [...this.selectedSortieUnitIds], selectedSortieUnitIds: [...this.selectedSortieUnitIds],
sortieFormationAssignments: { ...this.sortieFormationAssignments }, sortieFormationAssignments: { ...this.sortieFormationAssignments },
reserveTrainingAssignments: { ...(this.campaign?.reserveTrainingAssignments ?? {}) },
sortieItemAssignments: this.cloneSortieItemAssignments(this.sortieItemAssignments), sortieItemAssignments: this.cloneSortieItemAssignments(this.sortieItemAssignments),
sortieDeploymentPreview: this.sortieDeploymentPreviewDebug(), sortieDeploymentPreview: this.sortieDeploymentPreviewDebug(),
sortieFocusedUnitId: this.sortieFocusedUnitId, sortieFocusedUnitId: this.sortieFocusedUnitId,
@@ -15747,6 +15756,7 @@ export class CampScene extends Phaser.Scene {
inventory: this.campaign.inventory, inventory: this.campaign.inventory,
selectedSortieUnitIds: this.campaign.selectedSortieUnitIds, selectedSortieUnitIds: this.campaign.selectedSortieUnitIds,
sortieFormationAssignments: this.campaign.sortieFormationAssignments, sortieFormationAssignments: this.campaign.sortieFormationAssignments,
reserveTrainingAssignments: this.campaign.reserveTrainingAssignments,
reserveTrainingFocus: this.campaign.reserveTrainingFocus, reserveTrainingFocus: this.campaign.reserveTrainingFocus,
roster: this.campaign.roster.map((unit) => ({ roster: this.campaign.roster.map((unit) => ({
id: unit.id, id: unit.id,