Link sortie roles to battle deployment

This commit is contained in:
2026-07-03 00:31:20 +09:00
parent 40769348ad
commit a3858db201
5 changed files with 356 additions and 17 deletions

View File

@@ -1,5 +1,6 @@
import { equipmentExpToNext, equipmentSlots } from '../data/battleItems';
import type { BattleBond, UnitData } from '../data/scenario';
import { normalizeSortieFormationAssignments, type SortieFormationAssignments } from '../data/sortieDeployment';
export type BattleObjectiveSnapshot = {
id: string;
@@ -279,6 +280,7 @@ export type CampaignState = {
bonds: CampBondSnapshot[];
inventory: Record<string, number>;
selectedSortieUnitIds: string[];
sortieFormationAssignments: SortieFormationAssignments;
reserveTrainingFocus: CampaignReserveTrainingFocusId;
completedCampDialogues: string[];
completedCampVisits: string[];
@@ -381,6 +383,7 @@ export function createInitialCampaignState(): CampaignState {
bonds: [],
inventory: {},
selectedSortieUnitIds: [],
sortieFormationAssignments: {},
reserveTrainingFocus: defaultCampaignReserveTrainingFocusId,
completedCampDialogues: [],
completedCampVisits: [],
@@ -666,6 +669,7 @@ function normalizeCampaignState(state: CampaignState): CampaignState {
normalized.completedCampVisits = [...new Set(normalized.completedCampVisits ?? [])];
normalized.inventory = { ...(normalized.inventory ?? {}) };
normalized.selectedSortieUnitIds = [...new Set(normalized.selectedSortieUnitIds ?? [])];
normalized.sortieFormationAssignments = normalizeSortieFormationAssignments(normalized.sortieFormationAssignments);
normalized.reserveTrainingFocus = normalizeReserveTrainingFocusId(normalized.reserveTrainingFocus);
normalized.battleHistory = normalized.battleHistory ?? {};
if (normalized.firstBattleReport) {