fix: hardcoded 3-element arrays in BatchRunner causing empty stats for 4-player games

This commit is contained in:
KoalaTrapLord committed 2026-03-16 17:09:57 +00:00
1 parent 94bb369866
commit 2b6ccac3ea
3 files changed
+12 -5

No files matched your search

@@ -557,8 +557,13 @@ public class BatchRunner {
Map<String, String> lossReasons = new HashMap<>();
// ── Issue #1: Track last-known life totals from verbose log ──────
int[] lastKnownLife = {40, 40, 40}; // Start at Commander default
boolean[] lifeTracked = {false, false, false};
int numPlayers = decks.size();
int[] lastKnownLife = new int[numPlayers];
boolean[] lifeTracked = new boolean[numPlayers];
for (int i = 0; i < numPlayers; i++) {
lastKnownLife[i] = 40; // Commander starting life
lifeTracked[i] = false;
}
Set<Integer> loserSeats = new HashSet<>();
for (String line : lines) {
@@ -1060,7 +1065,8 @@ public class BatchRunner {
// Track current turn per seat
int globalTurn = 0;
boolean[] openingHandPhase = {true, true, true}; // before first turn
boolean[] openingHandPhase = new boolean[decks.size()];
java.util.Arrays.fill(openingHandPhase, true); // before first turn
for (String rawLine : lines) {
String line = rawLine.trim();
@@ -383,6 +383,7 @@ public class LabCli implements Callable<Integer> {
result.metadata.masterSeed = masterSeed;
result.metadata.threads = threads;
result.metadata.elapsedMs = elapsedMs;
result.metadata.podSize = decks.size();
result.decks = decks;
result.games = games;
result.summary = summary;
@@ -62,11 +62,11 @@ public class JsonExporter {
try {
BatchResult result = GSON.fromJson(json, BatchResult.class);
return result.metadata != null
&& result.decks != null && result.decks.size() == 3
&& result.decks != null && result.decks.size() >= 3 && result.decks.size() <= 4
&& result.games != null
&& result.summary != null
&& result.metadata.schemaVersion.equals("1.0.0")
&& result.metadata.podSize == 3;
&& result.metadata.podSize >= 3 && result.metadata.podSize <= 4;
} catch (Exception e) {
return false;
}