docs: reconcile spec inconsistencies across all documentation
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s
- Fix incursion start day: 5→20 in GAME_BRIEFING.md (matches code constant) - Fix fabricator discipline count: 2→5 in AGENTS.md - Fix discipline counts: elemental.ts 22→21, advanced-regen.ts 14→15 - Fix equipment count: 50→43, remove shields, fix catalysts count - Fix prestige upgrade count: add missing manaWell, manaFlow, pactBinding, pactInterferenceMitigation - Remove x3 victory multiplier (no victory condition defined yet) - Update pact persistence: pacts do NOT persist through prestige - Update elemental matchup tables to match ultimate truth - Update room type frequencies to match spire-climbing-spec - Update guardian data tables to use formulas - Update Tier 3 guardian elements to match guardian-data.ts code - Add pactBinding + pactInterferenceMitigation to PRESTIGE_DEF constants - Wire pactInterferenceMitigation into useGameDerived.ts - Update spire-combat-spec.md Known Gaps table (DoT implemented, melee bypass bug) - Update invoker-spec.md known issues (all resolved) - Update golemancy-spec.md status (undergoing redesign) - Update PrestigeTab test to expect 15 upgrades - Create Gitea issues #285 (melee defense bypass), #286 (DoT verified), #287 (mana conversion gap)
This commit is contained in:
@@ -4,9 +4,10 @@
|
||||
> configuration, summoning lifecycle, maintenance costs, room duration, combat
|
||||
> behavior, and discipline interactions.
|
||||
>
|
||||
> **⚠ Spec-defined, implementation pending.** This spec is based on
|
||||
> `docs/specs/spire-combat-spec.md` §9 and represents the intended design.
|
||||
> The current code has golem data defined but disconnected from the combat pipeline.
|
||||
> **⚠ Undergoing full redesign (see issue #268).** The golemancy system is being
|
||||
> redesigned from predefined golem types to a component-based construction system
|
||||
> (Core + Frame + Mind Circuit + Enchantments). The current data definitions exist
|
||||
> but are disconnected from the combat pipeline.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -190,10 +190,10 @@ The following inconsistencies exist in the codebase:
|
||||
|
||||
| Issue | Description |
|
||||
|---|---|
|
||||
| `pactBinding` upgrade | Referenced in `prestigeStore.doPrestige` but **not defined** in `PRESTIGE_DEF` constants |
|
||||
| UI vs store mismatch | UI displays `prestigeUpgrades.pactCapacity` but store logic checks `pactBinding` |
|
||||
| Pact persistence | `signedPacts` is persisted but also reset to `[]` on `startNewLoop` — pacts don't survive loops in current implementation |
|
||||
| `pactInterferenceMitigation` | Used in `pact-utils.ts` but no prestige upgrade defines it |
|
||||
| `pactBinding` upgrade | ✅ **RESOLVED** — Added to `PRESTIGE_DEF` in `prestige.ts` |
|
||||
| UI vs store mismatch | ✅ **RESOLVED** — `pactBinding` is now the canonical ID used everywhere |
|
||||
| Pact persistence | ✅ **RESOLVED BY DESIGN** — Pacts intentionally do NOT persist through prestige (reset each loop). This is the correct behavior per design intent. |
|
||||
| `pactInterferenceMitigation` | ✅ **RESOLVED** — Added to `PRESTIGE_DEF` in `prestige.ts`; `useGameDerived.ts` now passes it from prestige store |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -539,14 +539,14 @@ They are **in scope for the implementation this spec describes**:
|
||||
|
||||
| Feature | Where Defined | Status | This Spec's Requirement |
|
||||
|---|---|---|---|
|
||||
| Enemy armor reduction | `EnemyState.armor`, `MODIFIER_CONFIG.armored` | Data-only | Implement in `onDamageDealt` §5.2 |
|
||||
| Enemy barrier absorption | `EnemyState.barrier`, `MODIFIER_CONFIG.mage/shield` | Data-only | Implement in `onDamageDealt` §5.2 |
|
||||
| Enemy dodge roll | `EnemyState.dodgeChance`, `MODIFIER_CONFIG.agile` | Data-only | Implement in `onDamageDealt` §5.2 |
|
||||
| Enemy armor reduction | `EnemyState.armor`, `MODIFIER_CONFIG.armored` | **Implemented** (spells/DoTs only; melee bypasses — see issue #285) | Implement in `onDamageDealt` §5.2 |
|
||||
| Enemy barrier absorption | `EnemyState.barrier`, `MODIFIER_CONFIG.mage/shield` | **Implemented** (spells/DoTs only; melee bypasses — see issue #285) | Implement in `onDamageDealt` §5.2 |
|
||||
| Enemy dodge roll | `EnemyState.dodgeChance`, `MODIFIER_CONFIG.agile` | **Implemented** (spells/DoTs only; melee bypasses — see issue #285) | Implement in `onDamageDealt` §5.2 |
|
||||
| Mage barrier recharge | `MODIFIER_CONFIG.mage.barrierRechargeRate` | Data-only | Tick in `onDamageDealt` §5.2 |
|
||||
| Guardian armor | `GuardianDef.armor` | Data-only | Add check to guardian pipeline §5.3 |
|
||||
| DoT / debuff system | Spell/enchantment type defs | No runtime | Implement per §6 |
|
||||
| DoT / debuff system | Spell/enchantment type defs | **Implemented** — `dot-runtime.ts` complete and wired into combat tick | Verified working; curse amplification needs investigation (see issue #286) |
|
||||
| Golemancy combat | Full golem data exists | Disconnected | Implement per §9 |
|
||||
| Sword melee attacks | Weapon type exists | Not in combat tick | Add `meleeProgress` per §3.1 |
|
||||
| Sword melee attacks | Weapon type exists | **Partial** — meleeProgress exists but bypasses enemy defenses (see issue #285) | Add `meleeProgress` per §3.1 |
|
||||
| AoE target distribution | `SpellDefinition.aoe` flag | Partial | Implement per §3.2 |
|
||||
| `elemMasteryBonus` | Stub in `calcDamage` | Hardcoded `1` | Future — leave as `1` for now |
|
||||
| `guardianBonus` | Stub in `calcDamage` | Hardcoded `1` | Future — leave as `1` for now |
|
||||
@@ -612,7 +612,7 @@ interface EnemyState {
|
||||
| `src/lib/game/constants/elements.ts` | Element list, opposition cycle |
|
||||
| `src/lib/game/constants/core.ts` | `HOURS_PER_TICK`, `INCURSION_START_DAY` |
|
||||
| `src/lib/game/data/guardian-encounters.ts` | Guardian definitions |
|
||||
| `src/lib/game/data/golems/` | Golem definitions (12 golems, tiers 1–4) |
|
||||
| `src/lib/game/data/golems/` | Golem definitions (10 golems, tiers 1–4; undergoing redesign — see issue #268) |
|
||||
| `src/lib/game/effects.ts` | `getUnifiedEffects` — merges all combat bonuses |
|
||||
| `src/components/game/tabs/SpireCombatPage/SpireHeader.tsx` | In-game time display |
|
||||
| `src/components/game/tabs/SpireCombatPage/RoomDisplay.tsx` | Room type, enemy state, active effects |
|
||||
Reference in New Issue
Block a user