Add focused sortie officer analysis

This commit is contained in:
2026-06-23 18:28:00 +09:00
parent dd6d85ffe9
commit dac4ed0f5a
3 changed files with 154 additions and 17 deletions

View File

@@ -5887,6 +5887,23 @@ function assertSortieTacticalRoster(state, requiredUnitIds) {
throw new Error(`Expected sortie preparation to expose deployment plan, reserve training, bond count, and terrain score: ${JSON.stringify(state.sortiePlan)}`);
}
if (
!state.sortieFocusedUnit ||
!state.sortieFocusedUnit.id ||
!state.sortieFocusedUnit.classRole ||
!state.sortieFocusedUnit.statLine?.includes('무 ') ||
!state.sortieFocusedUnit.equipmentLine?.includes('Lv') ||
!state.sortieFocusedUnit.bondLine?.includes('공명') ||
!state.sortieFocusedUnit.terrainLine?.includes('지형') ||
typeof state.sortieFocusedUnit.terrainScore !== 'number' ||
!state.sortieFocusedUnit.terrainGrade ||
!Array.isArray(state.sortieFocusedUnit.equipment) ||
state.sortieFocusedUnit.equipment.length !== 3 ||
state.sortieFocusedUnit.equipment.some((item) => !item.label || !item.itemName || typeof item.next !== 'number' || !item.bonusText)
) {
throw new Error(`Expected sortie preparation to expose focused officer analysis: ${JSON.stringify(state.sortieFocusedUnit)}`);
}
if (
!state.reserveTrainingFocus ||
!Array.isArray(state.reserveTrainingFocusOptions) ||