docs: fix documentation inconsistencies (issue #291)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m29s

- Fix pact-system-spec.md §5.2: Remove misquote of AGENTS.md (pacts do NOT persist)
- Fix pact-system-spec.md §4.2: Update pactBinding note (now resolved in code)
- Fix pact-system-spec.md §8.2/8.3: Correct floor 140/150/200 element tags
- Add pactInterferenceMitigation to AGENTS.md and GAME_BRIEFING.md (15 upgrades)
- Fix GAME_BRIEFING.md §7: Correct Tier 1 armor values and pact times
- Fix GAME_BRIEFING.md §7: Correct Tier 2 armor values and pact times
- Fix GAME_BRIEFING.md §7: Correct Tier 3 pact times
- Fix GAME_BRIEFING.md §7: Correct floor 100 element (sand, not sand+fire+earth)
- Fix AGENTS.md: Update equipment count from 50 to 43
- Fix AGENTS.md: Fix enchantment design time (per stack, not per effect slot)
- Fix GAME_BRIEFING.md §6: Clarify puzzle room frequency (guaranteed per 7th floor)
- Fix GAME_BRIEFING.md §11: Clarify spireKey formula (1 + level × 2)
This commit is contained in:
2026-06-07 16:14:23 +02:00
parent 831dab1eeb
commit e90ae82da1
5 changed files with 45 additions and 44 deletions
+3 -3
View File
@@ -103,13 +103,13 @@ ManaDrainPerTick = drainBase × (1 + (XP / difficultyFactor)^0.4)
## Crafting System ## Crafting System
### Enchanting: 3-Step Flow — Design → Prepare → Apply ### Enchanting: 3-Step Flow — Design → Prepare → Apply
- **Design:** Select effects for a named design. Time: 1h + 0.5h per effect slot. Dual design slot with Enchant Mastery special. - **Design:** Select effects for a named design. Time: 1h + 0.5h per stack (summed across all effects). Dual design slot with Enchant Mastery special.
- **Prepare:** Clears existing enchantments, costs `capacity × 10` raw mana, time: `2h + 1h per 50 capacity`. ONLY stage where explicit disenchanting occurs. - **Prepare:** Clears existing enchantments, costs `capacity × 10` raw mana, time: `2h + 1h per 50 capacity`. ONLY stage where explicit disenchanting occurs.
- **Apply:** Applies saved design to prepared equipment. Time: `2h + stacks` hours. Mana: `20 + 5×stacks` per hour. - **Apply:** Applies saved design to prepared equipment. Time: `2h + stacks` hours. Mana: `20 + 5×stacks` per hour.
### Equipment ### Equipment
- 8 slots: mainHand, offHand, head, body, hands, feet, accessory1, accessory2 - 8 slots: mainHand, offHand, head, body, hands, feet, accessory1, accessory2
- 50 equipment types across 9 categories (casters, swords, shields, catalysts, head, body, hands, feet, accessories) - 43 equipment types across 8 categories (casters, swords, catalysts, head, body, hands, feet, accessories)
- Instance fields: `instanceId`, `typeId`, `name`, `enchantments[]`, `usedCapacity`, `totalCapacity`, `rarity`, `quality` - Instance fields: `instanceId`, `typeId`, `name`, `enchantments[]`, `usedCapacity`, `totalCapacity`, `rarity`, `quality`
- Stacking cost: each additional stack costs 20% more - Stacking cost: each additional stack costs 20% more
@@ -147,7 +147,7 @@ ManaDrainPerTick = drainBase × (1 + (XP / difficultyFactor)^0.4)
### Prestige (Insight) ### Prestige (Insight)
- `baseInsight = floor(maxFloorReached × 15 + totalManaGathered / 500 + signedPacts.length × 150)` - `baseInsight = floor(maxFloorReached × 15 + totalManaGathered / 500 + signedPacts.length × 150)`
- Multiplied by discipline and boon bonuses. No victory ×3 multiplier (victory condition not yet defined) - Multiplied by discipline and boon bonuses. No victory ×3 multiplier (victory condition not yet defined)
- 14 prestige upgrade types: manaWell, manaFlow, insightAmp, spireKey, temporalEcho, steadyHand, ancientKnowledge, elementalAttune, spellMemory, guardianPact, quickStart, elemStart, unlockedManaTypeCapacity, pactBinding - 15 prestige upgrade types: manaWell, manaFlow, insightAmp, spireKey, temporalEcho, steadyHand, ancientKnowledge, elementalAttune, spellMemory, guardianPact, quickStart, elemStart, unlockedManaTypeCapacity, pactBinding, pactInterferenceMitigation
- Signed pacts do NOT persist through prestige (reset each loop) - Signed pacts do NOT persist through prestige (reset each loop)
### Starting State ### Starting State
+31 -30
View File
@@ -1,7 +1,7 @@
# Mana-Loop: Comprehensive Game Briefing Document # Mana-Loop: Comprehensive Game Briefing Document
**Document Version:** 4.0 **Document Version:** 4.0
**Updated:** Post-refactoring — 22 mana types, 8-tier guardian system, 64 disciplines, 14 prestige upgrades, 43 equipment types, 8 Zustand stores, localStorage-only **Updated:** Post-refactoring — 22 mana types, 8-tier guardian system, 64 disciplines, 15 prestige upgrades, 43 equipment types, 8 Zustand stores, localStorage-only
--- ---
@@ -224,7 +224,7 @@ HP = floor(5000 × (floor/10) ^ (1.1 + floor/200))
| Room Type | Chance | Description | | Room Type | Chance | Description |
|-----------|--------|-------------| |-----------|--------|-------------|
| **Guardian** | Every 10th floor | Boss encounter | | **Guardian** | Every 10th floor | Boss encounter |
| **Puzzle** | 100% on every 7th floor (except guardian floors) | Attunement-themed trial | | **Puzzle** | 1 guaranteed room per 7th floor (seeded, except guardian floors) | Attunement-themed trial |
| **Swarm** | ~12% | 37 weak enemies | | **Swarm** | ~12% | 37 weak enemies |
| **Speed** | ~10% | Single enemy with elevated dodge chance | | **Speed** | ~10% | Single enemy with elevated dodge chance |
| **Combat** | ~68% (default) | Single enemy, normal combat | | **Combat** | ~68% (default) | Single enemy, normal combat |
@@ -354,51 +354,51 @@ Shadow Glass ↔ Light
| Floor | Name | Element | Armor | Pact Mult | Pact Cost | Pact Time | | Floor | Name | Element | Armor | Pact Mult | Pact Cost | Pact Time |
|-------|------|---------|-------|-----------|-----------|-----------| |-------|------|---------|-------|-----------|-----------|-----------|
| 10 | Ignis Prime | fire | 10% | 1.5× | formula | 2h | | 10 | Ignis Prime | fire | 10% | 1.5× | formula | 3h |
| 20 | Aqua Regia | water | 15% | 1.75× | formula | 4h | | 20 | Aqua Regia | water | 15% | 1.75× | formula | 4h |
| 30 | Ventus Rex | air | 20% | 2.0× | formula | 6h | | 30 | Ventus Rex | air | 18% | 2.0× | formula | 5h |
| 40 | Terra Firma | earth | 25% | 2.25× | formula | 8h | | 40 | Terra Firma | earth | 25% | 2.25× | formula | 6h |
| 50 | Lux Aeterna | light | 30% | 2.5× | formula | 10h | | 50 | Lux Aeterna | light | 20% | 2.5× | formula | 7h |
| 60 | Umbra Mortis | dark | 35% | 2.75× | formula | 12h | | 60 | Umbra Mortis | dark | 22% | 2.75× | formula | 8h |
| 70 | Mors Ultima | death | 40% | 3.0× | formula | 14h | | 70 | Mors Ultima | death | 25% | 3.0× | formula | 9h |
| 80 | Vinculum Arcana | transference | 45% | 3.25× | formula | 16h | | 80 | Vinculum Arcana | transference | 20% | 3.25× | formula | 10h |
**Tier 1 Formulas:** **Tier 1 Formulas:**
- Pact Cost: `floor(hp × 0.3 + power × 5 + hp × armor × 0.5 + shield × 2 + hp × barrier × 0.3)` - Pact Cost: `floor(hp × 0.3 + power × 5 + hp × armor × 0.5 + shield × 2 + hp × barrier × 0.3)`
- Pact Time: `2 + floor(floor / 10)` hours - Pact Time: `2 + floor(floor / 10)` hours
- Armor: Starts at 10% on floor 10, increases by 5% per 10th floor - Armor: Non-uniform per guardian (see guardian-data.ts for exact values)
#### Tier 2 — Composite Elements (Floors 90160) #### Tier 2 — Composite Elements (Floors 90160)
| Floor | Element | Armor | Pact Mult | Pact Cost | Pact Time | | Floor | Element | Armor | Pact Mult | Pact Cost | Pact Time |
|-------|---------|-------|-----------|-----------|-----------| |-------|---------|-------|-----------|-----------|-----------|
| 90 | metal | 50% | 3.5× | formula | 18h | | 90 | metal | 30% | 3.5× | formula | 11h |
| 100 | sand+fire+earth | 55% | 3.75× | formula | 20h | | 100 | sand | 25% | 3.75× | formula | 12h |
| 110 | lightning | 60% | 4.0× | formula | 22h | | 110 | lightning | 22% | 4.0× | formula | 13h |
| 120 | frost | 65% | 4.25× | formula | 24h | | 120 | frost | 28% | 4.25× | formula | 14h |
| 130 | metal+fire+earth (blackflame) | 70% | 4.5× | formula | 26h | | 130 | metal+fire+earth (blackflame) | 32% | 4.5× | formula | 15h |
| 140 | sand+earth+water (radiantflames) | 75% | 4.75× | formula | 28h | | 140 | sand+earth+water (radiantflames) | 25% | 4.75× | formula | 16h |
| 150 | lightning+fire+air (miasma) | 80% | 5.0× | formula | 30h | | 150 | lightning+fire+air (miasma) | 28% | 5.0× | formula | 17h |
| 160 | shadowglass | 85% | 5.25× | formula | 32h | | 160 | shadowglass | 33% | 5.25× | formula | 18h |
**Tier 2 Formulas:** **Tier 2 Formulas:**
- Pact Cost: Same formula as Tier 1 - Pact Cost: Same formula as Tier 1
- Pact Time: `2 + floor(floor / 10)` hours - Pact Time: `2 + floor(floor / 10)` hours
- Armor: Starts at 50% on floor 90, increases by 5% per 10th floor (capped at 90%) - Armor: Non-uniform per guardian (see guardian-data.ts for exact values)
- Note: Floor 100 guardian element is `sand+fire+earth` (composite components), Floor 140 is `sand+earth+water`, Floor 150 is `lightning+fire+air` - Note: Floor 100 guardian element is `sand`, Floor 140 is `sand+earth+water`, Floor 150 is `lightning+fire+air`
#### Tier 3 — Exotic Elements (Floors 170240) #### Tier 3 — Exotic Elements (Floors 170240)
| Floor | Element | Armor | Pact Mult | Pact Cost | Pact Time | | Floor | Element | Armor | Pact Mult | Pact Cost | Pact Time |
|-------|---------|-------|-----------|-----------|-----------| |-------|---------|-------|-----------|-----------|-----------|
| 170 | crystal | 35% | 5.5× | formula | 37h | | 170 | crystal | 35% | 5.5× | formula | 19h |
| 180 | stellar | 30% | 6.0× | formula | 38h | | 180 | stellar | 30% | 6.0× | formula | 20h |
| 190 | void | 35% | 6.5× | formula | 39h | | 190 | void | 35% | 6.5× | formula | 21h |
| 200 | crystal+stellar+void | 35% | 7.0× | formula | 40h | | 200 | crystal+stellar+void | 35% | 7.0× | formula | 22h |
| 210 | soul+time+plasma | 32% | 7.5× | formula | 41h | | 210 | soul+time+plasma | 32% | 7.5× | formula | 23h |
| 220 | plasma | 28% | 8.0× | formula | 42h | | 220 | plasma | 28% | 8.0× | formula | 24h |
| 230 | crystal+stellar+void | 40% | 8.5× | formula | 43h | | 230 | crystal+stellar+void | 40% | 8.5× | formula | 25h |
| 240 | soul+time+plasma | 42% | 9.0× | formula | 44h | | 240 | soul+time+plasma | 42% | 9.0× | formula | 26h |
**Tier 3 Formulas:** **Tier 3 Formulas:**
- Pact Cost: Same formula as Tier 1 - Pact Cost: Same formula as Tier 1
@@ -817,7 +817,7 @@ finalInsight = floor(baseInsight × mult)
| `manaWell` | Mana Well | +500 starting max mana | 5 | 500 | | `manaWell` | Mana Well | +500 starting max mana | 5 | 500 |
| `manaFlow` | Mana Flow | +0.5 regen/sec permanently | 10 | 750 | | `manaFlow` | Mana Flow | +0.5 regen/sec permanently | 10 | 750 |
| `insightAmp` | Insight Amp | +25% insight gain | 4 | 1500 | | `insightAmp` | Insight Amp | +25% insight gain | 4 | 1500 |
| `spireKey` | Spire Key | Start at floor +2 | 5 | 4000 | | `spireKey` | Spire Key | Start at floor `1 + level × 2` (e.g. level 1 → floor 3) | 5 | 4000 |
| `temporalEcho` | Temporal Echo | +10% mana generation | 5 | 3000 | | `temporalEcho` | Temporal Echo | +10% mana generation | 5 | 3000 |
| `steadyHand` | Steady Hand | -15% durability loss | 5 | 1200 | | `steadyHand` | Steady Hand | -15% durability loss | 5 | 1200 |
| `ancientKnowledge` | Ancient Knowledge | Start with blueprint discovered | 5 | 2000 | | `ancientKnowledge` | Ancient Knowledge | Start with blueprint discovered | 5 | 2000 |
@@ -828,6 +828,7 @@ finalInsight = floor(baseInsight × mult)
| `elemStart` | Elem. Start | Start with 5 of each unlocked element | 3 | 800 | | `elemStart` | Elem. Start | Start with 5 of each unlocked element | 3 | 800 |
| `unlockedManaTypeCapacity` | Mana Type Capacity | +10 capacity for selected mana type | 5 | 1000 | | `unlockedManaTypeCapacity` | Mana Type Capacity | +10 capacity for selected mana type | 5 | 1000 |
| `pactBinding` | Pact Binding | +1 pact slot per level | 5 | 2000 | | `pactBinding` | Pact Binding | +1 pact slot per level | 5 | 2000 |
| `pactInterferenceMitigation` | Pact Interference Mitigation | Reduces pact interference penalty | 10 | 1500 |
### Pact Persistence ### Pact Persistence
- Signed pacts do **NOT** persist through prestige — the player must re-defeat Guardians and re-sign pacts each loop. - Signed pacts do **NOT** persist through prestige — the player must re-defeat Guardians and re-sign pacts each loop.
@@ -1126,5 +1127,5 @@ The following systems no longer exist and should not be re-introduced:
--- ---
*Document Version: 5.0 — Updated: 8 stores, 22 mana types, 64 disciplines, 14 prestige upgrades, 43 equipment types, component-based golemancy, 8-tier guardians, localStorage-only* *Document Version: 5.0 — Updated: 8 stores, 22 mana types, 64 disciplines, 15 prestige upgrades, 43 equipment types, component-based golemancy, 8-tier guardians, localStorage-only*
*End of Game Briefing Document* *End of Game Briefing Document*
+1 -1
View File
@@ -1,4 +1,4 @@
# Circular Dependencies # Circular Dependencies
Generated: 2026-06-07T12:41:54.930Z Generated: 2026-06-07T12:48:17.619Z
No circular dependencies found. ✅ No circular dependencies found. ✅
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_meta": { "_meta": {
"generated": "2026-06-07T12:41:52.654Z", "generated": "2026-06-07T12:48:15.677Z",
"description": "Import dependency graph for src/lib/game. Keys are files, values are arrays of files they import.", "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." "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."
}, },
@@ -131,9 +131,9 @@ The `pactBinding` prestige upgrade adds +1 slot per level:
pactSlots: id === 'pactBinding' ? state.pactSlots + 1 : state.pactSlots pactSlots: id === 'pactBinding' ? state.pactSlots + 1 : state.pactSlots
``` ```
> **Note:** The `pactBinding` upgrade is referenced in the store logic but is **not > **Note:** The `pactBinding` upgrade is defined in `PRESTIGE_DEF` constants
> defined** in `PRESTIGE_DEF` constants. This is a known gap — the upgrade exists > (`prestige.ts`) with `max: 5` and `cost: 2000`. It is fully functional in both
> in code but has no definition, cost, or max level. > store logic and UI.
### 4.3 Slot Enforcement ### 4.3 Slot Enforcement
@@ -162,9 +162,9 @@ meaning **pacts do NOT persist through prestige loops**. The player must re-defe
Guardians and re-sign pacts each loop. The `signedPactDetails` record persists Guardians and re-sign pacts each loop. The `signedPactDetails` record persists
for historical tracking but does not confer active boons. for historical tracking but does not confer active boons.
> **Design intent vs. implementation:** The AGENTS.md states "Signed pacts persist > **Note:** AGENTS.md states "Signed pacts do NOT persist through prestige (reset
> through prestige (bounded by `pactSlots`)." The current code resets them. This > each loop)." The current code correctly resets `signedPacts` to `[]` on
> is a known discrepancy. > `startNewLoop`, matching the documented behavior. There is no discrepancy.
--- ---
@@ -298,8 +298,8 @@ mana to any elemental type. All elemental mana must come from:
| 110 | lightning | 22% | 13h | | 110 | lightning | 22% | 13h |
| 120 | frost | 28% | 14h | | 120 | frost | 28% | 14h |
| 130 | blackflame | 32% | 15h | | 130 | blackflame | 32% | 15h |
| 140 | radiantflames | 25% | 16h | | 140 | sand+earth+water | 25% | 16h |
| 150 | miasma | 28% | 17h | | 150 | lightning+fire+air | 28% | 17h |
| 160 | shadowglass | 33% | 18h | | 160 | shadowglass | 33% | 18h |
### 8.3 Tier 3 — Exotic Elements (Floors 170240) ### 8.3 Tier 3 — Exotic Elements (Floors 170240)
@@ -309,7 +309,7 @@ mana to any elemental type. All elemental mana must come from:
| 170 | crystal | 35% | 19h | | 170 | crystal | 35% | 19h |
| 180 | stellar | 30% | 20h | | 180 | stellar | 30% | 20h |
| 190 | void | 35% | 21h | | 190 | void | 35% | 21h |
| 200 | soul+stellar+void | 35% | 22h | | 200 | crystal+stellar+void | 35% | 22h |
| 210 | soul+time+plasma | 32% | 23h | | 210 | soul+time+plasma | 32% | 23h |
| 220 | plasma | 28% | 24h | | 220 | plasma | 28% | 24h |
| 230 | crystal+stellar+void | 40% | 25h | | 230 | crystal+stellar+void | 40% | 25h |