Commit Graph

14 Commits

Author SHA1 Message Date
n8n-gitea cba3090d7e fix(pact-system): resolve 5 spec-vs-code discrepancies (DISC-4,6,8,11,12)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s
- DISC-11: Fix floor 140/150 element composition in guardian-data.ts
  Floor 140 now uses [light, fire, radiantflames] (was [sand, earth, water])
  Floor 150 now uses [air, death, miasma] (was [lightning, fire, air])
- DISC-12: Reconcile spec §7.1 vs §8.2 tables in pact-system-spec.md
  Updated §8.2 to match §7.1 authoritative element mappings
- DISC-4: Deduplicate pact ritual completion logic
  Refactored pact-ritual.ts pipeline to delegate completion to
  prestigeStore.completePactRitual() instead of duplicating state writes
- DISC-6: Add 4 missing boon types to guardians
  critChance (floor 90), manaGain (floor 110), prestigeInsight (floor 200),
  studySpeed (floor 220) — all 12 spec boon types now used
- DISC-8: Add comment clarifying signedPactDetails persistence
  Code already correct (not reset by startNewLoop/resetPrestigeForNewLoop)
- Updated spire-utils.test.ts to match corrected floor 140/150 elements
2026-06-08 22:50:03 +02:00
n8n-gitea 573130cdb1 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
2026-06-08 22:08:17 +02:00
n8n-gitea 64c1d2f51e fix: spire climbing spec discrepancies (DISC-1,14,15,18,19,21,22,23,29,34)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
- DISC-1: Fix ascent seed missing +runId in combat-descent-actions.ts
- DISC-14: Recovery room 10x regen/conversion already in gameStore.ts
- DISC-15/18/21: Add missing completion logs for recovery, library, treasure rooms
- DISC-19: Filter library discipline selection to non-paused disciplines
- DISC-22: Fix puzzle room log format to match spec
- DISC-23: Replace hardcoded MAX_LEVEL with MAX_ATTUNEMENT_LEVEL
- DISC-29: Update spec to document libraryStayed/recoveryStayed on currentRoom
- DISC-34: Add 'Exited the Spire' activity log in exitSpireMode
2026-06-08 20:36:42 +02:00
n8n-gitea e90ae82da1 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)
2026-06-07 16:14:23 +02:00
n8n-gitea 3e8e8f72d5 chore: remove last stale golem ref in spire-combat-spec files table
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m25s
2026-06-07 14:41:39 +02:00
n8n-gitea 1a0886f702 chore: golemancy redesign cleanup — remove orphaned legacy code and update docs
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s
2026-06-07 12:54:12 +02:00
n8n-gitea 9d4b3f3c69 fix: complete golemancy component-based redesign cleanup
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s
- Fix summonGolemsForRoom to use golemLoadout instead of removed enabledGolems
- Fix discBonus hardcoded to 0 in golem-combat.ts pipeline (now computed from discipline effects)
- Remove deprecated types: SummonedGolem, ActiveGolem, GolemDef
- Remove legacy GolemancyState fields: enabledGolems, summonedGolems, legacyActiveGolems
- Remove orphaned store actions: toggleGolem, setEnabledGolems
- Delete orphaned legacy data files: base-golems.ts, elemental-golems.ts, hybrid-golems.ts
- Update GolemDebugSection to use new golemLoadout system
- Update golemancy-spec.md §17 to reflect all features as complete
- Update all test files to match new type shapes
- All 958 tests passing
2026-06-06 18:37:09 +02:00
n8n-gitea bd15df85ff fix: add curse amplification to applyEnemyDefenses (spec §6.3)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s
The curse debuff was stored on enemies via dot-runtime.ts but the
amplification was never applied to incoming damage. Added curse
magnitude check in applyEnemyDefenses (combat-tick.ts) that multiplies
incoming damage by (1 + magnitude) for each active curse effect.

- Curse amplification applied BEFORE dodge/barrier/armse defenses
- Multiple curse effects stack multiplicatively
- Non-curse effects (burn, freeze, etc.) are ignored for amplification

Also updated spire-combat-spec.md Known Gaps table to reflect:
- Melee defense bypass fixed (issue #285)
- Curse amplification now implemented (issue #286)

Added 9 regression tests in curse-amplification.test.ts.

All 957 tests pass (50 test files).
2026-06-06 17:46:39 +02:00
n8n-gitea c40e4ee940 feat: redesign golemancy system spec - component-based construction (Core + Frame + Mind Circuit + Enchantments)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s
2026-06-05 15:36:17 +02:00
n8n-gitea 6aed5c8d2b docs: reconcile spec inconsistencies across all documentation
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)
2026-06-05 14:07:22 +02:00
n8n-gitea 94a2b671b9 docs: update spire-climbing-spec with non-combat room mechanics (recovery, treasure, library, puzzle)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m3s
2026-06-04 13:37:38 +02:00
n8n-gitea c22f9c3bd5 feat: add mana conversion system spec and ticket
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m2s
2026-06-04 13:24:15 +02:00
n8n-gitea b506f0bcc3 feat: implement DoT/debuff runtime system (spec §6, AC-12, AC-13)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s
- Add ActiveEffect, EffectType types to game.ts; activeEffects + effectiveArmor on EnemyState
- Add SpellOnHitEffect + onHitEffect field to SpellDefinition
- Wire onHitEffect to fire (burn), death (curse), lightning (armor_corrode), frost (freeze), soul (bypassArmor burn)
- Add applyOnHitEffect() — applies on-hit effect on successful spell hit (spec §6.2)
- Add processDoTPhase() — ticks all active effects after weapon/golem attacks (spec §6.3)
- Add bypassArmor/bypassBarrier support in applyEnemyDefenses() (AC-13)
- Export standalone applyEnemyDefenses from combat-tick.ts for DoT pipeline
- Split DoT runtime into separate dot-runtime.ts (135 lines) to keep combat-actions.ts under 400 lines
- Update all enemy generation sites with activeEffects/effectiveArmor defaults
- Fix test helpers for new required fields

All 921 tests pass (45 test files)
2026-06-03 18:38:01 +02:00
n8n-gitea feae6b468d fix: update AGENTS.md and specs for incursion day, elemental matchups, golem count, and descent mechanics
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
2026-06-03 11:54:40 +02:00