Files
Dune/game/nexus-play-boundary.ts
T

22 lines
1.3 KiB
TypeScript

import type { Game } from './engine';
/** Optional no-phase Nexus effects must not interrupt a committed parent. */
export function nexusCleanPlayBlocked(g: Game, automaticPending = false): boolean {
return !!(automaticPending || g.response || g.decision || g.truthtrance || g.phaseOpening ||
g.pendingKarama || g.pendingTreacheryDiscard || g.pendingNullentropy ||
g.pendingExchange || g.pendingAmbassador || g.pendingRicheseGift ||
g.pendingRichesePurchaseIncome || g.pendingRevival || g.pendingCapture ||
g.pendingShipment || g.pendingHomeworldShipment || g.pendingIxMove ||
g.pendingFremenMove || g.pendingMobileMove || g.pendingTerrorEntry ||
g.pendingMoritaniPlacement || g.pendingEcazPlacement || g.pendingChoamMove ||
g.pendingChoamWorthless || g.pendingChoamBattleIncome ||
g.pendingChoamMarketGhola || g.pendingAuditor || g.pendingFaceDance ||
g.pendingTech || g.pendingIxTechnology || g.pendingIxAlly ||
g.pendingIxSubstitution ||
g.pendingWinnerDiscards || g.pendingSukRescue || g.ornithopter ||
g.summonedWorm || g.battle || g.auction || g.richeseAuction ||
g.choamMarket || g.nexusTraitorPending ||
g.nexusTraitorExchanges?.some(record => record.stage === 'return') ||
g.nexusCards?.phase?.stage === 'drawing');
}