fix: patch adventurer stats on sync so rebalances apply to existing saves

Sync New Content now updates baseCost, class, combatPower, essencePerSecond,
goldPerSecond, level, and name for all existing adventurer entries to match
the current defaults, while preserving count and unlocked state.

Closes #126
This commit is contained in:
2026-03-24 14:46:34 -07:00
committed by Naomi Carrigan
parent 6e573bea14
commit b275b7878c
4 changed files with 121 additions and 33 deletions
+12 -10
View File
@@ -13,16 +13,17 @@ import { ConfirmationModal } from "../ui/confirmationModal.js";
type ActiveModal = "force-unlocks" | "hard-reset" | "sync-new-content" | null;
interface SyncNewContentResult {
achievementsAdded: number | undefined;
adventurersAdded: number | undefined;
bossesAdded: number | undefined;
bossRewardsPatched: number | undefined;
equipmentAdded: number | undefined;
explorationAreasAdded: number | undefined;
questRewardsPatched: number | undefined;
questsAdded: number | undefined;
upgradesAdded: number | undefined;
zonesAdded: number | undefined;
achievementsAdded: number | undefined;
adventurersAdded: number | undefined;
adventurerStatsPatched: number | undefined;
bossesAdded: number | undefined;
bossRewardsPatched: number | undefined;
equipmentAdded: number | undefined;
explorationAreasAdded: number | undefined;
questRewardsPatched: number | undefined;
questsAdded: number | undefined;
upgradesAdded: number | undefined;
zonesAdded: number | undefined;
}
const safeNumber = (value: number | undefined): number => {
@@ -43,6 +44,7 @@ const buildSyncNewContentMessage = (result: SyncNewContentResult): string => {
[ safeNumber(result.bossRewardsPatched), "boss reward(s) patched" ],
[ safeNumber(result.explorationAreasAdded), "exploration area(s)" ],
[ safeNumber(result.adventurersAdded), "adventurer tier(s)" ],
[ safeNumber(result.adventurerStatsPatched), "adventurer stat(s) patched" ],
[ safeNumber(result.upgradesAdded), "upgrade(s)" ],
[ safeNumber(result.equipmentAdded), "equipment item(s)" ],
[ safeNumber(result.achievementsAdded), "achievement(s)" ],