Count the Advanced CHOAM Auditor in the expected Traitor deck
tools/sample-custody.ts built its expected Traitor deck from the printed leaders only, but Advanced CHOAM adds its printed extra Auditor disc during setup, so every fresh Advanced all-expansion sample failed at setup with 'physical traitor custody'. The expectation now includes the Auditor for Advanced CHOAM seats; the resumed saved positions were unaffected because the resume path recomputes the inventory from the game. With the fix a fresh --profile combined-homeworld-nexus --rules both --players all run completes 2/4 (both Advanced). The two Basic samples stop at phase 6 on 'Odd-force Basic Occupy awaits the preserved publisher casualty-rounding ruling', one of the three other unresolved questions recorded in the capture resumption note, not on the five implemented rulings. tests/sample-custody.test.ts (11 cases) and the faction-games suite pass; types and lint are green.
This commit is contained in:
1 parent
7fa737f690
commit
f36632accc
2 files changed
+26
-2
No files matched your search
@@ -38,6 +38,21 @@ on the five implemented rulings:
|
||||
No capture was reset, force-completed or bypassed, and no guard was weakened.
|
||||
The resumed runs are saved-position continuations, not fresh re-runs.
|
||||
|
||||
### Fresh `combined-homeworld-nexus` run and the Auditor custody fix
|
||||
|
||||
A fresh `--profile combined-homeworld-nexus --rules both --players all` run
|
||||
exposed a harness gap rather than a product defect: `tools/sample-custody.ts`
|
||||
built its expected Traitor deck from the printed leaders only, while Advanced
|
||||
CHOAM adds its printed extra **Auditor** disc during setup, so every fresh
|
||||
Advanced all-expansion sample failed at setup with `physical traitor custody`.
|
||||
The expectation now includes the Auditor for Advanced CHOAM seats.
|
||||
|
||||
With that fixed the fresh run completes **2/4** (both Advanced: 6-seat winner
|
||||
ixians, 5-seat winner ecaz + ixians). The two Basic samples stop at phase 6 on
|
||||
`Odd-force Basic Occupy awaits the preserved publisher casualty-rounding
|
||||
ruling` — the same third-party question listed above, not the implemented
|
||||
rulings. `tests/sample-custody.test.ts` (11 cases) still passes.
|
||||
|
||||
## 7 October 2026 — five pending user rulings implemented
|
||||
|
||||
The user resolved five recorded rule questions; each is indexed in
|
||||
|
||||
+11
-2
@@ -1,5 +1,5 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { leaders, treacheryDeck } from '../game/cards';
|
||||
import { createAuditorLeader, leaders, treacheryDeck } from '../game/cards';
|
||||
import type { Game } from '../game/engine';
|
||||
import { richeseCards } from '../game/richese-cards';
|
||||
import { ecazTreacheryCards } from '../game/ecaz-cards';
|
||||
@@ -29,7 +29,16 @@ export function sampleInventory(game: Game) {
|
||||
!game.moritaniAssassinatePreview
|
||||
? null
|
||||
: traitorDeck(
|
||||
game.players.map((player) => ({ leaders: leaders(player.faction) })),
|
||||
game.players.map((player) => ({
|
||||
// Advanced CHOAM adds its printed extra Auditor disc during setup, so
|
||||
// its Traitor Card is part of the physical deck.
|
||||
leaders: [
|
||||
...leaders(player.faction),
|
||||
...(game.advanced && player.faction === 'choam'
|
||||
? [createAuditorLeader()]
|
||||
: []),
|
||||
],
|
||||
})),
|
||||
game.expansions.includes('ix'),
|
||||
).sort(),
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user