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:
parent
7b7ffcd278
commit
07be994d97
84 changed files with 17822 additions and 1051 deletions
|
|
@ -128,6 +128,23 @@ window registration, plugin mounts, cursor feedback, layout persistence, and the
|
|||
retained tick/draw/restore/dispose paths. Panel-specific construction must not
|
||||
move back into `GameWindow.OnLoad`.
|
||||
|
||||
Magic follows the same boundary. Core `Spellbook` is the one learned/favorite/
|
||||
desired/enchantment state projection; Core.Net owns exact manifest and live
|
||||
message parsing; App `SpellCastingController` owns validated cast intent; and
|
||||
the retained spell bar, spell/component book, and effects controllers only
|
||||
project that state and invoke supplied actions. ACE remains authoritative after
|
||||
the targeted/untargeted request for turning, animation, mana/components,
|
||||
fizzle, impact, damage, and completion.
|
||||
The shared LayoutDesc importer resolves inherited controller trees with retail
|
||||
`LayoutDesc::InqFullDesc`/`ElementDesc::Incorporate` child identity semantics;
|
||||
panel controllers never reconstruct missing inherited widgets by hand.
|
||||
`RetailPanelUiController` is the single retained owner of retail
|
||||
`gmPanelUI::RecvNotice_SetPanelVisibility` semantics: one active main-panel
|
||||
child, optional DAT-property-driven deferred restoration, and visibility
|
||||
reconciliation for persistence. Toolbar buttons and the authored Helpful/
|
||||
Harmful effects indicators both send panel IDs into this owner; neither owns a
|
||||
parallel window-lifecycle map.
|
||||
|
||||
---
|
||||
|
||||
## Project Structure (current + target)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue