feat: Implement Invocation System for Invoker attunement
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
Implements the full Invocation System as per spec §13 with all 22 acceptance criteria: - Invocation charge meter with passive fill and active drain - Auto-activation when charge reaches 100 with living enemies - Guardian selection by elemental bonus × tierMultiplier scoring - Spell selection from guardian's full element spellbook (not limited to learned) - Step-down to affordable spells, auto-end when none affordable - Charge drain during invocation with spell cost and discipline scaling - Pact affinity cast speed bonus (diminishing returns, max 50%) - guardian-invocation discipline with 4 perks (efficiency/speed/sustain/mastery) - Cost multiplier (base 0.1, min 0.05) and drain multiplier (base 1.0, min 0.7) - Signal recharged on spire exit and reset on descent - Invocation Panel UI in SpireCombatPage with charge meter and status - Compact invocation status indicator in SpireCombatControls Files changed: - data/disciplines/invoker.ts: Added guardian-invocation discipline definition - effects/discipline-effects.ts: Added invocationChargeRateBonus, drainRateMultiplier, invocationCostReduction stat keys - utils/invocation-utils.ts: NEW - All invocation utility functions (guardian selection, spell selection, charge rate, cost/drain multipliers) - stores/combat-state.types.ts: Added invocationCharge and activeInvocation fields - stores/combatStore.ts: Added invocation state defaults, resetInvocationState action, partialize, spire exit reset - stores/combat-invocation.ts: NEW - Extracted invocation tick processing (charge fill/drain, casting, auto-activate/end) - stores/combat-melee.ts: NEW - Extracted melee combat processing (keeps combat-actions.ts under 400 lines) - stores/combat-actions.ts: Integrated invocation and melee modules - __tests__/invocation-system.test.ts: NEW - 39 comprehensive tests - SpireCombatPage.tsx: Added InvocationPanel between SpireHeader and RoomDisplay - SpireCombatControls.tsx: Added compact invocation status indicator All 1235 tests pass (including 39 new invocation tests).
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Circular Dependencies
|
||||
Generated: 2026-06-12T17:03:20.112Z
|
||||
Generated: 2026-06-13T11:02:39.214Z
|
||||
Found: 4 circular chain(s) — these MUST be fixed before modifying involved files.
|
||||
|
||||
1. 1) data/guardian-encounters.ts > data/guardian-procedural.ts
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_meta": {
|
||||
"generated": "2026-06-12T17:03:17.869Z",
|
||||
"generated": "2026-06-13T11:02:37.078Z",
|
||||
"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."
|
||||
},
|
||||
|
||||
@@ -236,6 +236,7 @@ Mana-Loop/
|
||||
│ │ │ │ ├── guardian-names-unique.test.ts
|
||||
│ │ │ │ ├── guardian-names.test.ts
|
||||
│ │ │ │ ├── hasty-enchanter.test.ts
|
||||
│ │ │ │ ├── invocation-system.test.ts
|
||||
│ │ │ │ ├── mana-conversion-component-deduction.test.ts
|
||||
│ │ │ │ ├── mana-utils.test.ts
|
||||
│ │ │ │ ├── melee-auto-attack.test.ts
|
||||
@@ -386,6 +387,8 @@ Mana-Loop/
|
||||
│ │ │ │ ├── combat-actions.ts
|
||||
│ │ │ │ ├── combat-damage.ts
|
||||
│ │ │ │ ├── combat-descent-actions.ts
|
||||
│ │ │ │ ├── combat-invocation.ts
|
||||
│ │ │ │ ├── combat-melee.ts
|
||||
│ │ │ │ ├── combat-reset.ts
|
||||
│ │ │ │ ├── combat-state.types.ts
|
||||
│ │ │ │ ├── combatStore.ts
|
||||
@@ -437,6 +440,7 @@ Mana-Loop/
|
||||
│ │ │ │ ├── formatting.ts
|
||||
│ │ │ │ ├── guardian-utils.ts
|
||||
│ │ │ │ ├── index.ts
|
||||
│ │ │ │ ├── invocation-utils.ts
|
||||
│ │ │ │ ├── mana-utils.ts
|
||||
│ │ │ │ ├── pact-utils.ts
|
||||
│ │ │ │ ├── result.ts
|
||||
|
||||
Reference in New Issue
Block a user