fix: attunement system spec-vs-code discrepancies (issue #331)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m24s

- Fix conversion rate level scaling from linear (1+level*0.5) to exponential (1.5^(level-1)) in conversion-rates.ts
- Fix getAttunementLevelMultiplier formula to match spec §4.3
- Add level-up logging in attunementStore.ts via combat store addActivityLog
- Clarify getAttunementConversionRate returns flat base rate (level scaling applied separately)
- Update spec §8 to describe time-based puzzle room system matching code implementation
- Add 17 regression tests verifying exponential scaling, base rate behavior, and spec table values
This commit is contained in:
2026-06-08 22:08:17 +02:00
parent 64c1d2f51e
commit 573130cdb1
8 changed files with 199 additions and 13 deletions
@@ -295,8 +295,12 @@ per-attunement variants:
| `hybrid_enchanter_invoker` | Dual attunement challenge |
| `hybrid_fabricator_invoker` | Dual attunement challenge |
Progress scales at 1.52% per tick base, with attunement bonus of 2.53% per
relevant attunement level.
**Time-based progression system:** Each puzzle room has a base time requirement
that varies by floor range (4h for floors 120, 8h for 2150, 16h for 51100,
24h for 101+). Each relevant attunement reduces the total time needed, up to
a maximum 90% reduction shared across all relevant attunements. Progress
accumulates at `HOURS_PER_TICK` (0.04h) per tick. The room completes when
`puzzleProgress >= puzzleRequired`.
---