feat: add signature officer tactics
This commit is contained in:
@@ -608,7 +608,7 @@ try {
|
||||
|
||||
const hiddenReadyStates = [
|
||||
['mismatched target intent', firstBattleBondChainReadyUi.mismatch, 'attack', firstBattleBondChainReadyUi.attackerId, null],
|
||||
['strategy action', firstBattleBondChainReadyUi.strategy, 'strategy', firstBattleBondChainReadyUi.partnerId, 'fireTactic'],
|
||||
['strategy action', firstBattleBondChainReadyUi.strategy, 'strategy', firstBattleBondChainReadyUi.partnerId, 'azureDragonStrike'],
|
||||
['lethal base attack', firstBattleBondChainReadyUi.lethal, 'attack', firstBattleBondChainReadyUi.attackerId, null],
|
||||
['out-of-support-range partner', firstBattleBondChainReadyUi.far, 'attack', firstBattleBondChainReadyUi.attackerId, null]
|
||||
];
|
||||
@@ -3889,20 +3889,22 @@ try {
|
||||
`Expected all 23 campaign officers to use loaded lightweight portrait cards: ${JSON.stringify(missingMidFormationPortraits)}`
|
||||
);
|
||||
const midPortraitsMissingStrategyCopy = midFormationPortraitState?.sortiePortraitRoster?.filter(
|
||||
(unit) => !Array.isArray(unit.strategyNames) || unit.strategyNames.length === 0 || !unit.strategyLine?.startsWith('전법 ')
|
||||
(unit) => !Array.isArray(unit.strategyNames) || unit.strategyNames.length === 0 || !unit.strategyLine?.trim()
|
||||
) ?? [];
|
||||
assert(
|
||||
midPortraitsMissingStrategyCopy.length === 0 &&
|
||||
sameJsonValue(midFormationPortraitState?.sortiePortraitRoster?.find((unit) => unit.id === 'guan-yu')?.strategyNames, ['화계']) &&
|
||||
sameJsonValue(midFormationPortraitState?.sortiePortraitRoster?.find((unit) => unit.id === 'zhang-fei')?.strategyNames, ['고함']),
|
||||
sameJsonValue(midFormationPortraitState?.sortiePortraitRoster?.find((unit) => unit.id === 'guan-yu')?.strategyNames, ['청룡일섬']) &&
|
||||
midFormationPortraitState?.sortiePortraitRoster?.find((unit) => unit.id === 'guan-yu')?.strategyLine?.startsWith('고유 청룡일섬') &&
|
||||
sameJsonValue(midFormationPortraitState?.sortiePortraitRoster?.find((unit) => unit.id === 'zhang-fei')?.strategyNames, ['장판교 대갈']) &&
|
||||
midFormationPortraitState?.sortiePortraitRoster?.find((unit) => unit.id === 'zhang-fei')?.strategyLine?.startsWith('고유 장판교 대갈'),
|
||||
`Expected every sortie portrait card to expose its battle strategies: ${JSON.stringify(midPortraitsMissingStrategyCopy)}`
|
||||
);
|
||||
assert(
|
||||
midFormationPortraitState?.sortieStrategyCoverage?.count === 4 &&
|
||||
midFormationPortraitState.sortieStrategyCoverage.total === 4 &&
|
||||
midFormationPortraitState.sortieStrategyCoverage.missing.length === 0 &&
|
||||
sameJsonValue(midFormationPortraitState.sortieStrategyCoverage.covered.map((definition) => definition.label), ['회복', '강화', '화공', '제어']) &&
|
||||
midFormationPortraitState?.sortieFocusedUnit?.strategyLine?.startsWith('전법 '),
|
||||
sameJsonValue(midFormationPortraitState.sortieStrategyCoverage.covered.map((definition) => definition.label), ['회복', '강화', '공격', '제어']) &&
|
||||
Boolean(midFormationPortraitState?.sortieFocusedUnit?.strategyLine?.trim()),
|
||||
`Expected the selected formation and focused officer to expose complete strategy coverage: ${JSON.stringify({
|
||||
coverage: midFormationPortraitState?.sortieStrategyCoverage,
|
||||
focused: midFormationPortraitState?.sortieFocusedUnit
|
||||
|
||||
Reference in New Issue
Block a user