feat: port retail magic lifecycle and retained spell UI

Complete the retail cast-intent, target, component, enchantment, and busy-state paths; mount the DAT-authored spell bar, spellbook, component book, effects panels, and shared panel lifecycle; and add scoped input plus conformance coverage.

Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
Erik 2026-07-15 10:55:22 +02:00
parent 7b7ffcd278
commit 07be994d97
84 changed files with 17822 additions and 1051 deletions

View file

@ -108,12 +108,12 @@ movement queries.
## Current state
**Currently working toward: M3 — Cast a spell. M2 — Kill a drudge LANDED 2026-07-15**:
the live melee/missile loop covers weapon switching, target-facing, attack/damage/death, loot,
inventory, and item giving. The M2/M3 projectile + DAT-effect foundation is automated through
Step 9; single-client missiles/protection effects are user-gated. **Next:** reconcile F.4/L.1d's
cast lifecycle against that foundation, then F.5 spellbook + active enchantments. **Carried:** final
two-client portal/observer VFX gate, #145-residual, #116, R6/TS-42, and Track MP0. Detail below.
**M3 — Cast a spell ACTIVE; automated implementation complete 2026-07-15.** Retail cast intent,
component/target gates, live enchantment wire, Magic-scoped input, spell bar, spellbook, component
book, effect indicators, shared main-panel switching, and positive/negative effects UI are implemented over the Step-9 projectile/DAT-effect
foundation. **Next:** connected single-client magic UI/casting visual gate, then the final two-client
portal-out/materialization observer gate. **Carried:** #145-residual, #116, R6/TS-42, Track MP0.
Start magic work at `claude-memory/project_magic_ui_and_casting.md`; detailed state is below.
For canonical state, read in this order:
- [`docs/plans/2026-05-12-milestones.md`](docs/plans/2026-05-12-milestones.md) — milestone targets + freeze list per milestone