Stabilize save retry flow
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user