applySpellEffect 'curse' and 'modifier' effects are no-ops (Phase 2/3 stubs) #64

Closed
opened 2026-09-15 04:49:09 +00:00 by Mark · 0 comments
Owner

Summary

The resolver applies SpellEffect kinds 'curse' and 'modifier' to game state via applySpellEffect, but the implementation in conditions.ts/modifiers.ts is stubbed — these effects don't actually do anything to players' state.

Where

  • src/engine/resolver.ts: applySpellEffect (calls handlers for each effect kind)
  • src/engine/conditions.ts / modifiers.ts: stub handlers

Repro

  • Black Ichor's curse effect should apply a 'black-ichor' condition to the target player. Currently: nothing.
  • Blind Witness's modifier effect should apply a 'reflective-shroud' modifier. This was a top-priority review finding and the modifier definition itself was fixed (see #FIX-REF-A in the review summary); the apply path still needs wiring.

Why this matters

  • Spells whose effects are 'curse' or 'modifier' silently fail
  • Several spell families (Black Ichor, Blind Witness, Paper Phoenix, Iron Grasp, Shattered Lens, Echo Barrier) depend on these stub handlers working

Acceptance criteria

  • Each 'curse' SpellEffect creates a corresponding ConditionInstance on the target player
  • Each 'modifier' SpellEffect queues a corresponding ModifierDefinition on the target player
  • The UI displays these conditions and modifiers (the activeModifiers UI is currently always empty — see related issue)
  • Tests cover: cast Black Ichor → opponent has black-ichor condition with correct turnsRemaining and intensity
## Summary The resolver applies SpellEffect kinds 'curse' and 'modifier' to game state via applySpellEffect, but the implementation in conditions.ts/modifiers.ts is stubbed — these effects don't actually do anything to players' state. ## Where - src/engine/resolver.ts: applySpellEffect (calls handlers for each effect kind) - src/engine/conditions.ts / modifiers.ts: stub handlers ## Repro - Black Ichor's curse effect should apply a 'black-ichor' condition to the target player. Currently: nothing. - Blind Witness's modifier effect should apply a 'reflective-shroud' modifier. This was a top-priority review finding and the modifier definition itself was fixed (see #FIX-REF-A in the review summary); the apply path still needs wiring. ## Why this matters - Spells whose effects are 'curse' or 'modifier' silently fail - Several spell families (Black Ichor, Blind Witness, Paper Phoenix, Iron Grasp, Shattered Lens, Echo Barrier) depend on these stub handlers working ## Acceptance criteria - Each 'curse' SpellEffect creates a corresponding ConditionInstance on the target player - Each 'modifier' SpellEffect queues a corresponding ModifierDefinition on the target player - The UI displays these conditions and modifiers (the activeModifiers UI is currently always empty — see related issue) - Tests cover: cast Black Ichor → opponent has black-ichor condition with correct turnsRemaining and intensity
Mark closed this issue 2026-09-18 13:57:26 +00:00
Sign in to join this conversation.
No description provided.