Stabilize save retry flow

This commit is contained in:
2026-06-27 07:00:18 +09:00
parent c49a344d4d
commit 88207c3b6f
4 changed files with 240 additions and 3 deletions

View File

@@ -475,7 +475,15 @@ export function setFirstBattleReport(report: FirstBattleReport) {
const stepRule = campaignBattleSteps[battleId] ?? campaignBattleSteps['first-battle-zhuo-commandery'];
const victoryStep: CampaignStep = stepRule.victory;
const retryStep: CampaignStep = stepRule.retry;
state.step = reportClone.outcome === 'victory' ? victoryStep : retryStep;
if (reportClone.outcome !== 'victory') {
state.step = retryStep;
state.latestBattleId = battleId;
state.updatedAt = new Date().toISOString();
persistCampaignState(state);
return;
}
state.step = victoryStep;
state.gold = Math.max(0, state.gold - (previousSettlement?.rewardGold ?? 0) + reportClone.rewardGold);
state.roster = mergeRosterProgress(state.roster, reportClone.units.filter((unit) => unit.faction === 'ally'));
state.bonds = reportClone.bonds.map(cloneBondSnapshot);