Enable Advanced selected-deck Harkonnen Nexus reaction
Verify and publish checkpoint container / container (push) Successful in 10m1s

This commit is contained in:
Quintine committed 2026-10-30 19:22:31 +11:00
1 parent 3bfcd10140
commit eaaab566e2
9 files changed
+288 -27

No files matched your search

+1 -4
View File
@@ -12657,6 +12657,7 @@ function harkonnenNexusBetrayalContext(g: Game) {
heroLeaderIds:g.expansions.includes('ix') ? physicalTreacheryCards(g).filter(card => card.kind === 'hero').map(card => card.id) : []};
return {status:g.status,phase:g.phase,turn:g.turn,advanced:g.advanced,ecazTreachery:g.ecazTreachery === true,
...(g.expansions.length ? {expansions:g.expansions} : {}),
...(g.ecazLoyalty ? {ecazLoyalty:g.ecazLoyalty} : {}),
sequence:g.nexusHarkonnenBetrayalCursor!.sequence,players:g.players,
cards:g.nexusCards!.cards!,physicalCards:physicalTreacheryCards(g),
traitors:nexusTraitorSnapshot(g),universe:nexusTraitorUniverse(g),battle};
@@ -12752,10 +12753,6 @@ function harkonnenNexusBetrayalIntegrity(g: Game, mentatOpening = false): void {
}
function offerHarkonnenNexusBetrayal(g: Game, provider: string, response?: ResponseWindow): boolean {
if (!g.nexusHarkonnenBetrayalPreview || getPlayer(g,provider).faction !== 'harkonnen') return false;
// The expanded physical census below currently covers Basic. Avoid blocking
// the original call in Advanced selected-deck games until their distinct
// Auditor and Loyalty inventories are supported.
if (g.advanced && g.expansions.length) return false;
const b = g.battle!;
const required = nexusRule(() => harkonnenBetrayalResponders(g.nexusCards!.cards!,g.players));
if (!required.length) return false;