Preserve permanent Traitor markers through legal replacement recycling
This commit is contained in:
1 parent
1cd7db7d0b
commit
e265af3cb3
29 files changed
+1273
-68
No files matched your search
@@ -19,6 +19,7 @@ import {
|
||||
finishNexusSpice,
|
||||
orderNexusSpice,
|
||||
} from './fixture-nexus-cards';
|
||||
import { nextStrongholdFactionsNativeStep } from './fixture-stronghold-factions';
|
||||
|
||||
export function nexusTraitorFixture(
|
||||
options: {
|
||||
@@ -233,11 +234,14 @@ export function nexusTraitorBattle(g: Game, reveal = true): Game {
|
||||
type: 'battlePreparationReady',
|
||||
event: g.battle!.event,
|
||||
});
|
||||
// Consume the original absent-BG opportunity before native Prescience.
|
||||
// When requested, leave that native power for the caller's actual use.
|
||||
while (g.battle!.preparation && (reveal || g.battle!.preparation.kind === 'nexusVoice')) {
|
||||
const step = nextStrongholdFactionsNativeStep(g);
|
||||
assert.ok(step);
|
||||
g = applyAction(g, step.actor, step.action);
|
||||
}
|
||||
if (!reveal) return g;
|
||||
while (g.battle!.preparation)
|
||||
g = applyAction(g, g.battle!.preparation.owner, {
|
||||
type: 'declineBattlePower',
|
||||
});
|
||||
for (const id of [owner.id, target.id])
|
||||
g = applyAction(g, id, {
|
||||
type: 'battlePlan',
|
||||
|
||||
Reference in new issue
Block a user