feat: implement Room Enchantments system for Enchanter attunement
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s

- Add roomEnchantment field to FloorState (coverage meter 0-100)
- Add 8 room enchantment effect definitions (fire/frost/death/lightning/dark/earth/transference)
- Add room-enchanting discipline with perks (room-coverage-rate capped, resonant-stamps once, 8 unlock perks)
- Add room enchantment combat tick phase (after DoT) with coverage growth and effect application
- Add coverage carryover between rooms via resonant-stamps perk
- Add RoomDisplay coverage bar and effect magnitude UI
- Add room-enchantments-utils.ts for coverage/effect computation
- Extract combat-room-enchantments.ts to keep combat-actions.ts under 400 lines
- Add 25 tests covering all acceptance criteria (AC-1 through AC-22)
This commit is contained in:
2026-06-14 23:48:57 +02:00
parent 718aed38b1
commit 9b559bb9f9
17 changed files with 1093 additions and 30 deletions
+12 -1
View File
@@ -1,6 +1,6 @@
{
"_meta": {
"generated": "2026-06-13T17:47:22.745Z",
"generated": "2026-06-14T19:56:35.928Z",
"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."
},
@@ -554,6 +554,7 @@
"constants.ts",
"data/guardian-encounters.ts",
"effects/discipline-effects.ts",
"stores/combat-channel.ts",
"stores/combat-damage.ts",
"stores/combat-invocation.ts",
"stores/combat-melee.ts",
@@ -564,6 +565,14 @@
"types.ts",
"utils/index.ts"
],
"stores/combat-channel-actions.ts": [
"stores/combat-state.types.ts"
],
"stores/combat-channel.ts": [
"effects/discipline-effects.ts",
"stores/combat-state.types.ts",
"stores/manaStore.ts"
],
"stores/combat-damage.ts": [
"constants/spells.ts",
"data/enchantment-effects.ts",
@@ -596,6 +605,7 @@
"stores/combat-melee.ts": [
"constants.ts",
"data/guardian-encounters.ts",
"stores/combat-channel.ts",
"stores/combat-damage.ts",
"stores/combat-state.types.ts",
"types.ts",
@@ -615,6 +625,7 @@
"stores/combatStore.ts": [
"data/guardian-encounters.ts",
"stores/combat-actions.ts",
"stores/combat-channel-actions.ts",
"stores/combat-descent-actions.ts",
"stores/combat-reset.ts",
"stores/combat-state.types.ts",