diff --git a/SVSim.BattleNode/Bridge/IMatchingBridge.cs b/SVSim.BattleNode/Bridge/IMatchingBridge.cs index 0092326..33147c3 100644 --- a/SVSim.BattleNode/Bridge/IMatchingBridge.cs +++ b/SVSim.BattleNode/Bridge/IMatchingBridge.cs @@ -15,8 +15,6 @@ public interface IMatchingBridge /// connect WS within 60s. /// Bot: must be null. One viewer expected; /// opponent runs in client. - /// Scripted: currently null; future - /// server-driven bot config rides on . /// /// PendingMatch RegisterBattle(BattlePlayer p1, BattlePlayer? p2, BattleType type); diff --git a/SVSim.BattleNode/Bridge/MatchContext.cs b/SVSim.BattleNode/Bridge/MatchContext.cs index b5b81d2..62a6862 100644 --- a/SVSim.BattleNode/Bridge/MatchContext.cs +++ b/SVSim.BattleNode/Bridge/MatchContext.cs @@ -1,8 +1,8 @@ namespace SVSim.BattleNode.Bridge; /// -/// Per-battle player snapshot captured at do_matching time and replayed into the scripted -/// lifecycle on WS connect. SVSim.BattleNode does not know how to build this — the HTTP-side +/// Per-battle player snapshot captured at do_matching time and replayed into the +/// server-authored frame lifecycle on WS connect. SVSim.BattleNode does not know how to build this — the HTTP-side /// per-mode controller is the source. Snapshot semantics: cosmetic changes between matching /// and WS connect have no effect on the in-battle render. /// diff --git a/SVSim.BattleNode/Bridge/MatchingBridge.cs b/SVSim.BattleNode/Bridge/MatchingBridge.cs index ad74daf..7214382 100644 --- a/SVSim.BattleNode/Bridge/MatchingBridge.cs +++ b/SVSim.BattleNode/Bridge/MatchingBridge.cs @@ -6,7 +6,7 @@ namespace SVSim.BattleNode.Bridge; /// /// In-process implementation of . The HTTP-side /// matching queue calls once it has decided "these two -/// play each other" or "this viewer is solo (bot/scripted)." +/// play each other" or "this viewer is solo (bot)." /// public sealed class MatchingBridge : IMatchingBridge { diff --git a/SVSim.BattleNode/Protocol/IMsgBody.cs b/SVSim.BattleNode/Protocol/IMsgBody.cs index b1c7fb2..fafe9ca 100644 --- a/SVSim.BattleNode/Protocol/IMsgBody.cs +++ b/SVSim.BattleNode/Protocol/IMsgBody.cs @@ -3,7 +3,7 @@ namespace SVSim.BattleNode.Protocol; /// /// Marker for every type that can appear as . /// Implementers fall into two camps: typed records used on the outbound path -/// (one per scripted frame shape) and used on the inbound +/// (one per server-authored frame shape) and used on the inbound /// path. The marker exists so the envelope can carry either without falling /// back to object. /// diff --git a/SVSim.BattleNode/Sessions/BattleSessionPhase.cs b/SVSim.BattleNode/Sessions/BattleSessionPhase.cs index 4bfb3ea..7375486 100644 --- a/SVSim.BattleNode/Sessions/BattleSessionPhase.cs +++ b/SVSim.BattleNode/Sessions/BattleSessionPhase.cs @@ -1,8 +1,8 @@ namespace SVSim.BattleNode.Sessions; /// -/// Where we are in the v1 scripted lifecycle. Drives which scripted frames the session pushes -/// in response to inbound emits. +/// Where we are in the v1 server-authored frame lifecycle. Drives which server-authored frames +/// the session pushes in response to inbound emits. /// public enum BattleSessionPhase { diff --git a/SVSim.BattleNode/Sessions/Dispatch/Handlers/PlayActionsHandler.cs b/SVSim.BattleNode/Sessions/Dispatch/Handlers/PlayActionsHandler.cs index 6d76df4..f591f30 100644 --- a/SVSim.BattleNode/Sessions/Dispatch/Handlers/PlayActionsHandler.cs +++ b/SVSim.BattleNode/Sessions/Dispatch/Handlers/PlayActionsHandler.cs @@ -6,7 +6,7 @@ namespace SVSim.BattleNode.Sessions.Dispatch.Handlers; /// PvP PlayActions translator (vanilla deck-card slice). Synthesizes the opponent-facing /// knownList from the sender's idx->cardId map + the orderList move op, renames targetList -> /// oppoTargetList, drops orderList, consumes keyAction. Token plays (idx>deck) degrade silently to -/// {playIdx,type} (no knownList). Scripted/Bot drop (no rule). +/// {playIdx,type} (no knownList). Bot drop (no rule). internal sealed class PlayActionsHandler : IFrameHandler { public IReadOnlyList Handle(FrameDispatchContext ctx) diff --git a/SVSim.BattleNode/Sessions/Dispatch/Handlers/TurnEndActionsHandler.cs b/SVSim.BattleNode/Sessions/Dispatch/Handlers/TurnEndActionsHandler.cs index 96d95c1..fbd4db9 100644 --- a/SVSim.BattleNode/Sessions/Dispatch/Handlers/TurnEndActionsHandler.cs +++ b/SVSim.BattleNode/Sessions/Dispatch/Handlers/TurnEndActionsHandler.cs @@ -4,7 +4,7 @@ namespace SVSim.BattleNode.Sessions.Dispatch.Handlers; /// PvP TurnEndActions: the sender's orderList is dropped; the opponent receives an /// empty body (it only flips _sendEcho + runs the opponent's end-of-turn triggers via the -/// opponent's own engine). Scripted/Bot drop. +/// opponent's own engine). Bot drop. internal sealed class TurnEndActionsHandler : IFrameHandler { public IReadOnlyList Handle(FrameDispatchContext ctx) diff --git a/SVSim.BattleNode/Sessions/IBattleParticipant.cs b/SVSim.BattleNode/Sessions/IBattleParticipant.cs index cb31188..1c0b539 100644 --- a/SVSim.BattleNode/Sessions/IBattleParticipant.cs +++ b/SVSim.BattleNode/Sessions/IBattleParticipant.cs @@ -5,9 +5,9 @@ namespace SVSim.BattleNode.Sessions; /// /// One side of a battle. Two of these are held by a BattleSession; the session -/// brokers between them. Concrete impls (added in subsequent Phase-1 tasks): +/// brokers between them. Concrete impls: /// -/// RealParticipant — WS-backed. +/// RealParticipant — WS-backed (used for BattleType.Pvp). /// NoOpBotParticipant — silent; for BattleType.Bot (AI-passive). /// /// @@ -23,19 +23,17 @@ public interface IBattleParticipant : IAsyncDisposable /// Session calls this to deliver a frame from the OTHER participant /// (or a server-synthesized broadcast). Real impl: encode + WS-send. - /// NoOp: swallow. Scripted: may emit a response via . + /// NoOp: swallow. /// True for control frames (BattleFinish, JudgeResult, ack); /// bypasses playSeq assignment + archive. Task PushAsync(MsgEnvelope envelope, bool noStock, CancellationToken ct); /// Participant fires this when it has a frame to send TO the session - /// (its own gameplay action). Real impl: fires on WS recv. NoOp: never fires. - /// Scripted: fires from inside PushAsync when the scripted lifecycle wants to - /// respond to an inbound frame. + /// (its own gameplay action). Real impl: fires on WS recv. NoOp: never fires. event Func? FrameEmitted; /// Drives the participant's inbound loop. For Real: the WS read loop - /// (returns when the WS closes). For NoOp/Scripted: completes immediately (the + /// (returns when the WS closes). For NoOp: completes immediately (the /// session keeps running as long as the OTHER participant's RunAsync is alive). Task RunAsync(CancellationToken ct); diff --git a/SVSim.BattleNode/Sessions/Participants/RealParticipant.cs b/SVSim.BattleNode/Sessions/Participants/RealParticipant.cs index 727fc0e..1374031 100644 --- a/SVSim.BattleNode/Sessions/Participants/RealParticipant.cs +++ b/SVSim.BattleNode/Sessions/Participants/RealParticipant.cs @@ -287,7 +287,7 @@ public sealed class RealParticipant : IBattleParticipant, IHasHandshakePhase /// (used by its stockEmitMessageMgr.GetSelectData lookup); it's NOT on the wire. /// /// - /// In scripted/Bot mode the server has no opponent to forward touches to; ack-only is + /// In Bot mode the server has no opponent to forward touches to; ack-only is /// correct. PvP-side forwarding semantics are unverified — see /// docs/audits/battle-node-sio-events-2026-06-02.md. /// diff --git a/SVSim.Database/Models/BotRosterEntry.cs b/SVSim.Database/Models/BotRosterEntry.cs index 5a8ce79..b9b081a 100644 --- a/SVSim.Database/Models/BotRosterEntry.cs +++ b/SVSim.Database/Models/BotRosterEntry.cs @@ -13,7 +13,7 @@ namespace SVSim.Database.Models; /// /// Cosmetic ids (sleeve / emblem / degree / field) MUST resolve in /// SBattleLoad.LoadOpponentAssets; placeholder 1s left the client hanging on -/// "Waiting for opponent". Prod-verified values come from the Scripted bot fixture. +/// "Waiting for opponent". Prod-verified values were captured from live prod traffic. /// public class BotRosterEntry : BaseEntity {