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)
This commit is contained in:
2026-06-03 18:38:01 +02:00
parent a2cdf6d21c
commit b506f0bcc3
30 changed files with 3272 additions and 71 deletions
+16
View File
@@ -12,6 +12,21 @@ Mana-Loop/
│ └── pre-commit
├── docs/
│ ├── specs/
│ │ ├── attunements/
│ │ │ ├── enchanter/
│ │ │ │ ├── systems/
│ │ │ │ │ └── enchanting-spec.md
│ │ │ │ └── enchanter-spec.md
│ │ │ ├── fabricator/
│ │ │ │ ├── systems/
│ │ │ │ │ ├── golemancy-spec.md
│ │ │ │ │ └── item-fabrication-spec.md
│ │ │ │ └── fabricator-spec.md
│ │ │ ├── invoker/
│ │ │ │ ├── systems/
│ │ │ │ │ └── pact-system-spec.md
│ │ │ │ └── invoker-spec.md
│ │ │ └── attunement-system-spec.md
│ │ ├── spire-climbing-spec.md
│ │ └── spire-combat-spec.md
│ ├── GAME_BRIEFING.md
@@ -347,6 +362,7 @@ Mana-Loop/
│ │ │ │ ├── craftingStore.types.ts
│ │ │ │ ├── debugBridge.ts
│ │ │ │ ├── discipline-slice.ts
│ │ │ │ ├── dot-runtime.ts
│ │ │ │ ├── gameActions.ts
│ │ │ │ ├── gameHooks.ts
│ │ │ │ ├── gameLoopActions.ts