chore(battle-node): delete dead ScriptedProfiles.Opponent{Matched,BattleStart}Profile fields

Phase 2 absorbed the scripted opponent cosmetics + class/chara fixture
into ScriptedBotParticipant.Context; the two profile fields have been
unreferenced since (kept one phase as documentation tie-back, per PLAN.md
L104 (d)). The Context comments now describe the values directly with
frame[N] provenance instead of pointing at the deleted fields. Also
removes the now-unused SVSim.BattleNode.Protocol.Bodies import from
ScriptedProfiles.cs.

948 tests passing (unchanged).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-02 13:58:32 -04:00
parent 5c4e427fab
commit a6b9a942ab
2 changed files with 4 additions and 27 deletions

View File

@@ -1,5 +1,3 @@
using SVSim.BattleNode.Protocol.Bodies;
namespace SVSim.BattleNode.Lifecycle;
/// <summary>
@@ -15,32 +13,11 @@ internal static class ScriptedProfiles
// From frame[2] (Matched).
public const long BattleSeed = 17_548_138L;
public static readonly MatchedOppoInfo OpponentMatchedProfile = new(
CountryCode: "JPN",
UserName: "Opponent",
SleeveId: "704141010",
EmblemId: "400001100",
DegreeId: "120027",
FieldId: 5,
IsOfficial: 0,
OppoId: 0,
Seed: BattleSeed,
OppoDeckCount: 30);
// From frame[5] (BattleStart). Hardcoded; see spec §Deferred plumbing — sourcing these
// from real per-viewer state needs a TK2 rank/battle-point tracker.
public const string PlayerRank = "10";
public const string PlayerBattlePoint = "6270";
public static readonly BattleStartOppoInfo OpponentBattleStartProfile = new(
Rank: "1",
IsMasterRank: "0",
BattlePoint: 0,
MasterPoint: "0",
ClassId: "8",
CharaId: "8",
CardMasterName: "card_master_node_10015");
// From frame[8] (Ready). Provenance is "what prod sent"; the client
// doesn't validate, but echoing matches the capture protects against
// a regression on a future tightening.

View File

@@ -23,12 +23,12 @@ public sealed class ScriptedBotParticipant : IBattleParticipant
{
public long ViewerId => ScriptedLifecycle.FakeOpponentViewerId;
public MatchContext Context { get; } = new(
// 30 dummy card ids so oppoCtx.SelfDeckCardIds.Count == 30 (matches the
// hardcoded OppoDeckCount that ScriptedProfiles.OpponentMatchedProfile shipped).
// 30 dummy card ids so oppoCtx.SelfDeckCardIds.Count == 30 — prod frame[2] (Matched)
// shipped OppoDeckCount: 30.
SelfDeckCardIds: Enumerable.Range(1, 30).Select(_ => 0L).ToList(),
// BattleStart opponent half: ClassId/CharaId from ScriptedProfiles.OpponentBattleStartProfile.
// BattleStart opponent half (frame[5]): ClassId/CharaId both "8" (neutral test class).
ClassId: "8", CharaId: "8", CardMasterName: "card_master_node_10015",
// Matched opponent half: cosmetic fields from ScriptedProfiles.OpponentMatchedProfile.
// Matched opponent half (frame[2]): cosmetic fields from the prod capture.
CountryCode: "JPN", UserName: "Opponent", SleeveId: "704141010",
EmblemId: "400001100", DegreeId: "120027", FieldId: 5, IsOfficial: 0,
BattleType: 0);