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
+1 -1
View File
@@ -1,5 +1,5 @@
# Circular Dependencies
Generated: 2026-06-08T18:24:27.320Z
Generated: 2026-06-08T18:36:58.404Z
Found: 1 circular chain(s) — these MUST be fixed before modifying involved files.
1. 1) stores/golem-combat-actions.ts > stores/golem-combat-helpers.ts
+2 -1
View File
@@ -1,6 +1,6 @@
{
"_meta": {
"generated": "2026-06-08T18:24:25.222Z",
"generated": "2026-06-08T18:36:56.442Z",
"description": "Import dependency graph for src/lib/game. Keys are files, values are arrays of files they import.",
"usage": "To find what a file affects, search for its path in the VALUES. To find what a file depends on, look at its KEY entry."
},
@@ -757,6 +757,7 @@
],
"stores/non-combat-room-actions.ts": [
"constants.ts",
"data/attunements.ts",
"stores/attunementStore.ts",
"stores/combat-state.types.ts",
"stores/discipline-slice.ts",
+1
View File
@@ -201,6 +201,7 @@ Mana-Loop/
│ │ │ ├── __tests__/
│ │ │ │ ├── achievements.test.ts
│ │ │ │ ├── activity-log.test.ts
│ │ │ │ ├── attunement-conversion-fix.test.ts
│ │ │ │ ├── bug-fixes.test.ts
│ │ │ │ ├── combat-actions.test.ts
│ │ │ │ ├── combat-utils.test.ts
@@ -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`.
---