fix: 6 priority-3 bug fixes with regression tests
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m24s

- Issue 83: Mana Tide pulse factor now ranges 0.5x-1.5x (was 0.5x-1.0x)
- Issue 82: SteadyStream no longer returns early like EternalFlow; only skips incursion penalty
- Issue 81: Prestige store partialize now includes defeatedGuardians, signedPacts, signedPactDetails, pactRitualFloor, pactRitualProgress, loopInsight, pactSlots
- Issue 80: Combat store partialize now includes floorHP, floorMaxHP, castProgress, spireMode, clearedFloors, golemancy, equipmentSpellStates, activityLog, achievements
- Issue 78: cancelDesign now always cancels designProgress first, then designProgress2
- Issue 79: startDesigningEnchantment now uses designProgress2 when designProgress is occupied

Added 13 regression tests in src/lib/game/__tests__/regression-fixes.test.ts
Refactored craftingStore types to craftingStore.types.ts to stay under 400-line limit
This commit is contained in:
2026-05-19 11:19:10 +02:00
parent c3a5f333da
commit 48a5ad1855
13 changed files with 387 additions and 1046 deletions
+6 -7
View File
@@ -53,8 +53,7 @@ export function computeDynamicRegen(
// Mana Tide: Regen pulses ±50% (sinusoidal based on time)
if (hasSpecial(effects, SPECIAL_EFFECTS.MANA_TIDE)) {
const pulseFactor = 0.5 + 0.5 * Math.sin(Date.now() / 10000);
regen *= (0.5 + pulseFactor * 0.5);
regen *= (1.0 + 0.5 * Math.sin(Date.now() / 10000));
}
// Eternal Flow: Regen immune to ALL penalties
@@ -62,14 +61,14 @@ export function computeDynamicRegen(
return regen * effects.regenMultiplier;
}
// Steady Stream: Regen immune to incursion
// Steady Stream: Regen immune to incursion (skip incursion penalty only)
if (hasSpecial(effects, SPECIAL_EFFECTS.STEADY_STREAM)) {
return regen * effects.regenMultiplier;
// incursion penalty is skipped, but regenMultiplier still applies below
} else {
// Apply incursion penalty
regen *= (1 - incursionStrength);
}
// Apply incursion penalty
regen *= (1 - incursionStrength);
return regen * effects.regenMultiplier;
}