[Medium] [Bug] Spire Climbing: Treasure loot uses non-seeded random, breaking determinism #298
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spec: docs/specs/spire-climbing-spec.md §4.9
Severity: Medium
Problem:
src/lib/game/utils/spire-utils.ts:273-278usesMath.random()for treasure item count instead of the seeded random used everywhere else. This means treasure loot varies between page reloads and between ascent/descent.File:
src/lib/game/utils/spire-utils.ts:273-278Fix applied and pushed. Treasure loot now uses seeded random instead of
Math.random().Root cause:
generateTreasureLoot()usedMath.random()for item count determination, breaking determinism between page reloads and between ascent/descent.Changes:
runIdparameter togenerateTreasureLoot()makeSeededRandom(floor * 12345 + runId + 31337)) for item count determinationrng()instead ofMath.random()Tests: 1069 passed (58 files), all pre-commit checks pass.