refactor(battlenode): low-churn §B/§D/§E/§F quality cleanups
Behavior-preserving; 231 BattleNode tests green. - §D: MsgEnvelope.Try -> RetryAttempt (drops keyword-escape; wire key stays "try"); SocketIoFrame.AckResponse arg -> pubSeqEcho. - §B: Gungnir.EmitInterval -> BattleNodeOptions.AliveEmitInterval (unused literal moved to its config home); deck-idx 4L -> InitialHand.Length + 1. - §E: shared Wire.WireJsonOptions.CamelCase replaces the duplicated camelCase JsonSerializerOptions in EngineIoHandshake and MsgEnvelope. - §F: do-NOT-consistency-fix polarity notes on TurnEndFinalHandler (From wins) and RetireKillHandler (From loses). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -90,13 +90,14 @@ public static class ServerBattleFrames
|
||||
|
||||
/// <summary>
|
||||
/// Compute the player's hand after a mulligan. For every idx in <paramref name="swapIndices"/>
|
||||
/// that is currently in the hand, replace it with the next unused deck idx (starting at 4,
|
||||
/// since 1..3 were dealt). Positions of kept cards are preserved.
|
||||
/// that is currently in the hand, replace it with the next unused deck idx (the first idx past
|
||||
/// the opening hand — <see cref="InitialHand"/> is 1-based and contiguous, so that's
|
||||
/// <c>InitialHand.Length + 1</c>). Positions of kept cards are preserved.
|
||||
/// </summary>
|
||||
public static long[] ComputeHandAfterSwap(IReadOnlyList<long> swapIndices)
|
||||
{
|
||||
var hand = InitialHand.ToArray();
|
||||
var nextDeckIdx = 4L;
|
||||
var nextDeckIdx = (long)(InitialHand.Length + 1);
|
||||
for (var pos = 0; pos < hand.Length; pos++)
|
||||
{
|
||||
if (swapIndices.Contains(hand[pos]))
|
||||
@@ -151,7 +152,7 @@ public static class ServerBattleFrames
|
||||
ViewerId: FakeOpponentViewerId,
|
||||
Uuid: WireConstants.ServerUuid,
|
||||
Bid: bid,
|
||||
Try: 0,
|
||||
RetryAttempt: 0,
|
||||
Cat: EmitCategory.Battle,
|
||||
PubSeq: null,
|
||||
PlaySeq: null,
|
||||
|
||||
Reference in New Issue
Block a user