refactor(runtime): expose canonical gameplay state
Move character options and movement skills into the Runtime-owned character graph, expose borrowed inventory, character, and social views, and route retained UI state commands through generation-gated typed Runtime contracts. Preserve the existing synchronous wire path while deleting the App-owned option and skill mirrors and extending normalized parity checkpoints. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
9d0d9b07e0
commit
dcb61efb5a
34 changed files with 2076 additions and 103 deletions
|
|
@ -135,6 +135,114 @@ public interface IRuntimePortalCommands
|
|||
RuntimePortalCommand command);
|
||||
}
|
||||
|
||||
public readonly record struct RuntimeShortcutCommand(
|
||||
int Index,
|
||||
uint ObjectId,
|
||||
uint SpellId);
|
||||
|
||||
public interface IRuntimeInventoryStateCommands
|
||||
{
|
||||
RuntimeCommandResult AddShortcut(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
in RuntimeShortcutCommand command);
|
||||
|
||||
RuntimeCommandResult RemoveShortcut(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
int index);
|
||||
}
|
||||
|
||||
public interface IRuntimeSpellbookCommands
|
||||
{
|
||||
RuntimeCommandResult AddFavorite(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
int tabIndex,
|
||||
int position,
|
||||
uint spellId);
|
||||
|
||||
RuntimeCommandResult RemoveFavorite(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
int tabIndex,
|
||||
uint spellId);
|
||||
|
||||
RuntimeCommandResult SetFilter(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
uint filters);
|
||||
|
||||
RuntimeCommandResult ForgetSpell(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
uint spellId);
|
||||
|
||||
RuntimeCommandResult SetDesiredComponent(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
uint componentId,
|
||||
uint amount);
|
||||
|
||||
RuntimeCommandResult ClearDesiredComponents(
|
||||
RuntimeGenerationToken expectedGeneration);
|
||||
}
|
||||
|
||||
public enum RuntimeAdvancementKind
|
||||
{
|
||||
Attribute,
|
||||
Vital,
|
||||
Skill,
|
||||
TrainSkill,
|
||||
}
|
||||
|
||||
public readonly record struct RuntimeAdvancementCommand(
|
||||
RuntimeAdvancementKind Kind,
|
||||
uint StatId,
|
||||
ulong Cost);
|
||||
|
||||
public interface IRuntimeCharacterCommands
|
||||
{
|
||||
RuntimeCommandResult Advance(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
in RuntimeAdvancementCommand command);
|
||||
|
||||
RuntimeCommandResult SetOptions1(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
uint options);
|
||||
}
|
||||
|
||||
public enum RuntimeFriendCommandKind
|
||||
{
|
||||
Add,
|
||||
Remove,
|
||||
Clear,
|
||||
RequestLegacyList,
|
||||
}
|
||||
|
||||
public readonly record struct RuntimeFriendCommand(
|
||||
RuntimeFriendCommandKind Kind,
|
||||
uint CharacterId = 0u,
|
||||
string? Name = null);
|
||||
|
||||
public enum RuntimeSquelchScope
|
||||
{
|
||||
Character,
|
||||
Account,
|
||||
Global,
|
||||
}
|
||||
|
||||
public readonly record struct RuntimeSquelchCommand(
|
||||
RuntimeSquelchScope Scope,
|
||||
bool Add,
|
||||
uint CharacterId = 0u,
|
||||
string? Name = null,
|
||||
uint MessageType = 0u);
|
||||
|
||||
public interface IRuntimeSocialCommands
|
||||
{
|
||||
RuntimeCommandResult Execute(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
in RuntimeFriendCommand command);
|
||||
|
||||
RuntimeCommandResult Execute(
|
||||
RuntimeGenerationToken expectedGeneration,
|
||||
in RuntimeSquelchCommand command);
|
||||
}
|
||||
|
||||
public interface IGameRuntimeCommands
|
||||
{
|
||||
IRuntimeSessionCommands Session { get; }
|
||||
|
|
@ -148,4 +256,12 @@ public interface IGameRuntimeCommands
|
|||
IRuntimeChatCommands Chat { get; }
|
||||
|
||||
IRuntimePortalCommands Portal { get; }
|
||||
|
||||
IRuntimeInventoryStateCommands InventoryState { get; }
|
||||
|
||||
IRuntimeSpellbookCommands Spellbook { get; }
|
||||
|
||||
IRuntimeCharacterCommands Character { get; }
|
||||
|
||||
IRuntimeSocialCommands Social { get; }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue