Admit original Advanced Tleilaxu Ixian Nexus replacement

This commit is contained in:
Quintine committed 2026-10-16 03:26:49 +11:00
1 parent 2c6bb02ccb
commit 7ef00e0a65
10 files changed
+80 -57

No files matched your search

+4 -3
View File
@@ -13,6 +13,7 @@ import {
export type NativeIxianReplacementOptions = {
initial?: Game;
advanced?: boolean;
buyerFaction?: 'atreides' | 'tleilaxu';
purchasedId?: string;
replacementId?: string;
@@ -78,7 +79,7 @@ function orderStartingCards(game: Game, buyer: string, reserved: readonly string
...pool.filter(card => reserved.includes(card.id))];
}
/** Basic native Tleilaxu + classic setup, a full first turn, an actual alliance-
/** Native Tleilaxu + classic setup, a full first turn, an actual alliance-
* qualified closing Nexus draw, and an original paid normal-auction purchase.
* The unplayed deck is ordered before native auction allocation, not the row. */
export function createNativeIxianReplacementFixture(
@@ -91,11 +92,11 @@ export function createNativeIxianReplacementFixture(
game.nexusIxianReplacementPreview === true && game.turn === 1 && game.phase === 0 &&
game.players.every(player => player.hand.length === 0)));
} else {
game = createGame('NATIXREP', newPlayer('a', 'Atreides', 'atreides'), false, ['ix']);
game = createGame('NATIXREP', newPlayer('a', 'Atreides', 'atreides'), options.advanced ?? false, ['ix']);
joinGame(game, newPlayer('e', 'Emperor', 'emperor'));
joinGame(game, newPlayer('t', 'Tleilaxu', 'tleilaxu'));
}
assert.equal(game.advanced, false);
if (options.advanced !== undefined) assert.equal(game.advanced, options.advanced);
assert.deepEqual(game.expansions, ['ix']);
assert.ok(game.players.some(player => player.faction === 'tleilaxu'));
const buyer = game.players.find(player => player.faction === (options.buyerFaction ?? 'atreides'))!.id;