refactor(runtime): own canonical action state
Move selection, combat, and interaction target mode under one Runtime owner; make plugins, retained UI, session routing, and typed runtime views borrow its exact children; and add failure-safe reset, instance isolation, source ownership, and normalized checkpoint coverage without changing retail ordering. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
bb45afef33
commit
b298f99f91
38 changed files with 711 additions and 93 deletions
|
|
@ -41,7 +41,7 @@ internal sealed record LiveSessionPlayerRuntime(
|
|||
internal sealed record LiveSessionDomainRuntime(
|
||||
RuntimeEntityObjectLifetime EntityObjects,
|
||||
RuntimeCharacterState Character,
|
||||
CombatState Combat,
|
||||
RuntimeActionState Actions,
|
||||
RuntimeInventoryState Inventory,
|
||||
RuntimeCommunicationState Communication);
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ internal sealed class LiveSessionRuntimeFactory
|
|||
SetChatIdentity: _domain.Communication.Chat.SetLocalPlayerGuid,
|
||||
MarkPersistent: _world.WorldState.MarkPersistent,
|
||||
SetVanishProbeIdentity: id => EntityVanishProbe.PlayerGuid = id,
|
||||
ClearCombat: _domain.Combat.Clear),
|
||||
ClearCombat: _domain.Actions.Combat.Clear),
|
||||
EnteredWorld: new(
|
||||
SetActiveCharacter: _interaction.Settings.SetActiveCharacter,
|
||||
RestoreLayout: () => _ui.RetailUi?.RestoreLayout(),
|
||||
|
|
@ -170,7 +170,7 @@ internal sealed class LiveSessionRuntimeFactory
|
|||
Spellbook = _domain.Character.ResetSpellbook,
|
||||
MagicRuntime = () => _ui.Magic?.Reset(),
|
||||
CombatAttack = _interaction.CombatAttack.ResetSession,
|
||||
CombatState = _domain.Combat.Clear,
|
||||
CombatState = _domain.Actions.Combat.Clear,
|
||||
ItemMana = _domain.Inventory.ResetItemMana,
|
||||
LocalPlayer = _domain.Character.ResetLocalPlayer,
|
||||
Friends = _domain.Communication.ResetFriends,
|
||||
|
|
@ -275,7 +275,7 @@ internal sealed class LiveSessionRuntimeFactory
|
|||
{
|
||||
var skillCreditResolver = new LiveSkillCreditResolver(skillTable);
|
||||
return new LiveCharacterSessionBindings(
|
||||
_domain.Combat,
|
||||
_domain.Actions.Combat,
|
||||
_domain.Character,
|
||||
ResolveSkillFormulaBonus: skillCreditResolver.Resolve,
|
||||
OnSkillsUpdated: (runSkill, jumpSkill) =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue