Exercise combined expansion Nexus games and saved continuation

This commit is contained in:
Quintine committed 2026-09-28 20:44:25 +10:00
1 parent c6784468a1
commit 068da48734
5 files changed
+81 -22

No files matched your search

+16
View File
@@ -6716,6 +6716,22 @@ export function initializePairedNexusGameForAudit(state: Game): Game {
return initializeSetupGameForAudit(state, false, true, false, false, false, false, true);
}
/** Offline-only all-expansion Nexus composition; not a public start gate. */
export function initializeCombinedNexusGameForAudit(state: Game): Game {
requireRule(state.expansions.length === 3 &&
['ix', 'choam', 'ecaz'].every(expansion => state.expansions.includes(expansion)) &&
[5, 6].includes(state.players.length) &&
state.players.every(player => ['ixians', 'tleilaxu', 'choam', 'richese', 'ecaz', 'moritani'].includes(player.faction)) &&
['ixians', 'tleilaxu', 'choam', 'ecaz', 'moritani']
.every(faction => state.players.some(player => player.faction === faction)),
'The combined Nexus sample requires five or six expansion factions and their three decks.');
requireRule(!!state.nexusCards && state.nexusCards.cards === null && state.nexusCards.phase === null &&
!state.homeworlds && !state.leaderSkills && !state.discoveryEnabled &&
!state.ecazTreachery && !state.techTokens && !state.strongholdCards,
'Enable only Nexus Cards in a fresh combined expansion lobby.');
return initializeSetupGameForAudit(state, false, true, false, false, false, false, true);
}
/** Offline prototype entry through real Ix setup, including both expansion factions.
* No player action or room API bypasses the normal release gates. */
export function initializeIxGameForAudit(state: Game): Game {