refactor(runtime): own combat and magic intent
Move attack build/repeat state, combat-mode policy, authoritative auto-target transitions, and spell-cast intent beneath RuntimeActionState. Keep App as the input, world-query, DAT-policy, transport, and presentation adapter while preserving retail request and busy ordering. Add direct/graphical parity, reset, failure, and instance-isolation coverage. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
81b31857c6
commit
20df9d155d
49 changed files with 1949 additions and 634 deletions
|
|
@ -10,6 +10,7 @@ using AcDream.App.Rendering.Scene;
|
|||
using AcDream.App.Rendering.Vfx;
|
||||
using AcDream.App.Rendering.Wb;
|
||||
using AcDream.App.Settings;
|
||||
using AcDream.App.Spells;
|
||||
using AcDream.App.Streaming;
|
||||
using AcDream.App.UI;
|
||||
using AcDream.App.World;
|
||||
|
|
@ -76,8 +77,7 @@ internal sealed record FrameShutdownRoots(
|
|||
internal sealed record LiveShutdownRoots(
|
||||
CameraPointerInputController? CameraPointer,
|
||||
RetailUiRuntimeLease RetailUi,
|
||||
CombatTargetController? CombatTarget,
|
||||
CombatAttackController? CombatAttack,
|
||||
MagicRuntime? Magic,
|
||||
ItemInteractionController? ItemInteraction,
|
||||
ExternalContainerLifecycleController? ExternalContainers,
|
||||
LandblockStreamer? Streamer,
|
||||
|
|
@ -377,8 +377,7 @@ internal static class GameWindowShutdownManifest
|
|||
Hard("interaction/UI late bindings", () => frame.InteractionBindings?.Dispose()),
|
||||
Hard("mouse capture", () => live.CameraPointer?.ReleaseMouseLookAfterSessionRetirement()),
|
||||
Hard("retail UI", () => DisposeRetailUi(live.RetailUi)),
|
||||
Hard("combat target", () => live.CombatTarget?.Dispose()),
|
||||
Hard("combat attack", () => live.CombatAttack?.Dispose()),
|
||||
Hard("magic runtime", () => live.Magic?.Dispose()),
|
||||
Hard("item interaction", () => live.ItemInteraction?.Dispose()),
|
||||
Hard("external containers", () => live.ExternalContainers?.Dispose()),
|
||||
Hard("streamer", () => live.Streamer?.Dispose()),
|
||||
|
|
@ -393,12 +392,12 @@ internal static class GameWindowShutdownManifest
|
|||
]),
|
||||
new ResourceShutdownStage("runtime entity/object stream",
|
||||
[
|
||||
Hard(
|
||||
"runtime character state",
|
||||
live.Character.Dispose),
|
||||
Hard(
|
||||
"runtime action state",
|
||||
live.Actions.Dispose),
|
||||
Hard(
|
||||
"runtime character state",
|
||||
live.Character.Dispose),
|
||||
Hard(
|
||||
"runtime inventory state",
|
||||
live.Inventory.Dispose),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue