feat: align campaign audiovisual story flow
This commit is contained in:
@@ -29,6 +29,7 @@ try {
|
||||
acknowledgeCampaignVictoryReward,
|
||||
campaignVictoryRewardPresentation,
|
||||
campaignStorageKey,
|
||||
completeCampaignAftermath,
|
||||
dismissCampaignVictoryRewardNotice,
|
||||
applyCampBondExp,
|
||||
applyCampVisitReward,
|
||||
@@ -51,7 +52,8 @@ try {
|
||||
setCampaignReserveTrainingAssignment,
|
||||
setCampaignSortieOrderSelection,
|
||||
setCampaignSortieResonanceSelection,
|
||||
setFirstBattleReport
|
||||
setFirstBattleReport,
|
||||
summarizeCampaignProgress
|
||||
} = await server.ssrLoadModule('/src/game/state/campaignState.ts');
|
||||
const { battleScenarios } = await server.ssrLoadModule('/src/game/data/battles.ts');
|
||||
const { campaignRecruitUnits } = await server.ssrLoadModule('/src/game/data/scenario.ts');
|
||||
@@ -851,6 +853,22 @@ try {
|
||||
createdAt: '2026-07-03T09:00:00.000Z'
|
||||
};
|
||||
setFirstBattleReport(firstBattleReport);
|
||||
const pendingAftermathState = loadCampaignState();
|
||||
assert(
|
||||
pendingAftermathState.pendingAftermathBattleId === firstScenario.id &&
|
||||
pendingAftermathState.step === 'first-camp' &&
|
||||
summarizeCampaignProgress(pendingAftermathState).meta === '승리 후 이야기',
|
||||
`Expected a settled victory to preserve its pending aftermath across save reloads: ${JSON.stringify(pendingAftermathState)}`
|
||||
);
|
||||
const completedAftermathState = completeCampaignAftermath(firstScenario.id);
|
||||
assert(
|
||||
completedAftermathState.pendingAftermathBattleId === undefined &&
|
||||
completedAftermathState.step === 'first-camp' &&
|
||||
summarizeCampaignProgress(completedAftermathState).meta === '승리 후 군영' &&
|
||||
completedAftermathState.firstBattleReport?.battleId === firstScenario.id &&
|
||||
completedAftermathState.battleHistory[firstScenario.id]?.outcome === 'victory',
|
||||
`Expected completing the aftermath to clear only its resume marker: ${JSON.stringify(completedAftermathState)}`
|
||||
);
|
||||
const preJianYongSave = JSON.parse(storage.get(campaignStorageKey));
|
||||
preJianYongSave.roster = preJianYongSave.roster.filter((unit) => unit.id !== 'jian-yong');
|
||||
preJianYongSave.bonds = preJianYongSave.bonds.filter((bond) => bond.id !== 'liu-bei__jian-yong');
|
||||
|
||||
Reference in New Issue
Block a user