refactor(battlenode): rename mode-id field off BattleType, add BattleModes (§D)

Behavior-preserving; 271 BattleNode/Matching/Services tests green, full solution builds.

"BattleType" meant two things: the Sessions.BattleType enum (Pvp/Bot) and an int
"mode id" field. Renamed the int field on MatchContext AND the BattleStartBody wire
DTO to BattleModeId (wire key stays "battleType" via JsonPropertyName), so BattleType
now means only the enum project-wide.

New Bridge/BattleModes.cs (TakeTwo = 11) replaces every 11 literal — both prod
MatchContextBuilder sites and the test fixtures/assertions. The arbitrary-passthrough
42 and bot 0 stay literal.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-05 07:44:02 -04:00
parent d119d2c277
commit 578d0a75ef
24 changed files with 57 additions and 37 deletions

View File

@@ -64,7 +64,7 @@ public class MatchContextBuilderTests
Assert.That(ctx.EmblemId, Is.EqualTo(emblemId.ToString()));
Assert.That(ctx.DegreeId, Is.EqualTo(degreeId.ToString()));
Assert.That(ctx.IsOfficial, Is.EqualTo(0));
Assert.That(ctx.BattleType, Is.EqualTo(11));
Assert.That(ctx.BattleModeId, Is.EqualTo(BattleModes.TakeTwo));
// Hardcoded v1 fixtures (see spec §Deferred plumbing)
Assert.That(ctx.CardMasterName, Is.EqualTo("card_master_node_10015"));
Assert.That(ctx.FieldId, Is.EqualTo(43));
@@ -131,7 +131,7 @@ public class MatchContextBuilderTests
var ctx = await builder.BuildForRankBattleAsync(viewerId, Format.Rotation, deckNo: 1);
Assert.That(ctx.UserName, Is.EqualTo("Ranker"));
Assert.That(ctx.BattleType, Is.EqualTo(11), "BattleType=11 matches the prod rank-battle wire value (same as TK2).");
Assert.That(ctx.BattleModeId, Is.EqualTo(BattleModes.TakeTwo), "rank-battle carries the same mode id as TK2 on the wire.");
Assert.That(ctx.ClassId, Is.Not.Null.And.Not.Empty, "ClassId from the selected deck's class.");
Assert.That(ctx.CardMasterName, Is.EqualTo("card_master_node_10015"));
Assert.That(ctx.FieldId, Is.EqualTo(43));