feat(app): FA2 -- fellowship/allegiance command routing for graphical + headless hosts
Both LiveSocialSessionBindings construction sites updated together (LiveSessionRuntimeFactory.cs, HeadlessSessionHost.cs) so the single GameEventWiring.WireAll registration site serves both hosts identically (the K-slice unification). CurrentGameRuntimeCommandAdapter implements IRuntimeFellowshipCommands/IRuntimeAllegianceCommands over the App command bus (LiveSessionCommandRouter gains 12 new *RuntimeCmd records + registrations + LiveSessionCommandBindings send delegates), mirroring DirectGameRuntimeCommandAdapter's direct-session shape including the identical Quit leader-hand-off rule read from RuntimeFellowshipState. CurrentGameRuntimeAdapter (the graphical IGameRuntimeView/ IGameRuntimeCommands composite) exposes the two new views/command groups. Headless's DirectGameRuntimeCommandAdapter needed no changes -- it already implements both new interfaces from the Runtime-layer commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
369729f06a
commit
cced83b483
8 changed files with 363 additions and 3 deletions
|
|
@ -234,6 +234,8 @@ public sealed class InteractionUiRuntimeSourcesTests
|
|||
public IRuntimeCharacterView Character => null!;
|
||||
public IRuntimeSocialView Social => null!;
|
||||
public IRuntimeChatView Chat => null!;
|
||||
public IRuntimeFellowshipView Fellowship => null!;
|
||||
public IRuntimeAllegianceView Allegiance => null!;
|
||||
public IRuntimeActionView Actions => null!;
|
||||
public IRuntimeMovementView Movement => null!;
|
||||
public AcDream.Runtime.World.IRuntimeWorldEnvironmentView Environment =>
|
||||
|
|
@ -250,6 +252,8 @@ public sealed class InteractionUiRuntimeSourcesTests
|
|||
IRuntimeSpellbookCommands IGameRuntimeCommands.Spellbook => this;
|
||||
IRuntimeCharacterCommands IGameRuntimeCommands.Character => this;
|
||||
IRuntimeSocialCommands IGameRuntimeCommands.Social => null!;
|
||||
IRuntimeFellowshipCommands IGameRuntimeCommands.Fellowship => null!;
|
||||
IRuntimeAllegianceCommands IGameRuntimeCommands.Allegiance => null!;
|
||||
|
||||
public RuntimeStateCheckpoint CaptureCheckpoint() => default;
|
||||
|
||||
|
|
|
|||
|
|
@ -227,6 +227,8 @@ public sealed class GameplayInputCommandControllerTests
|
|||
throw new NotSupportedException();
|
||||
public IRuntimeSocialView Social => throw new NotSupportedException();
|
||||
public IRuntimeChatView Chat => throw new NotSupportedException();
|
||||
public IRuntimeFellowshipView Fellowship => throw new NotSupportedException();
|
||||
public IRuntimeAllegianceView Allegiance => throw new NotSupportedException();
|
||||
public IRuntimeActionView Actions => throw new NotSupportedException();
|
||||
public IRuntimeMovementView Movement => throw new NotSupportedException();
|
||||
public AcDream.Runtime.World.IRuntimeWorldEnvironmentView Environment =>
|
||||
|
|
|
|||
|
|
@ -617,6 +617,18 @@ public sealed class LiveSessionCommandRouterTests
|
|||
CharacterState: characterState ?? new RuntimeCharacterState(),
|
||||
SendSingleCharacterOption: sendSingleCharacterOption ?? ((_, _) => { }),
|
||||
SaveCharacterOptions: saveCharacterOptions ?? (() => { }),
|
||||
SendFellowshipCreate: (_, _) => { },
|
||||
SendFellowshipRecruit: _ => { },
|
||||
SendFellowshipDismiss: _ => { },
|
||||
SendFellowshipQuit: _ => { },
|
||||
SendFellowshipAssignNewLeader: _ => { },
|
||||
SendFellowshipChangeOpenness: _ => { },
|
||||
SendFellowshipUpdateRequest: _ => { },
|
||||
SendAllegianceSwear: _ => { },
|
||||
SendAllegianceBreak: _ => { },
|
||||
SendAllegianceKick: _ => { },
|
||||
SendAllegianceInfoRequest: _ => { },
|
||||
SendAllegianceUpdateRequest: _ => { },
|
||||
Log: log));
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue