namespace SVSim.BattleNode.Lifecycle; /// /// Default frame constants templated from TK2 prod captures, shared by the /// server-authored battle-frame builders. Every value here originated in a real prod /// frame in data_dumps/captures/battle-traffic_tk2_regular.ndjson; pulling them /// out of makes the magic numerics navigable and gives /// the seed a single source of truth instead of two duplicated literals. /// internal static class BattleFrameDefaults { // Shared per the spec — selfInfo.seed and oppoInfo.seed always agree. // From frame[2] (Matched). public const long BattleSeed = 17_548_138L; // 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"; // 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. public const int ReadyIdxChangeSeed = 771_335_280; public const int ReadySpin = 243; /// /// Server-pushed Judge frame spin value. Prod varies per push (55, 175, 73, ...) — it's /// an animation seed, not a stateful value. Fixed at 100 here for test stability; /// the client's JudgeOperation doesn't read it. /// public const int OpponentJudgeSpin = 100; }