Hide concealed Duke execution from Ghola guidance
Verify and publish checkpoint container / container (push) Successful in 11m22s
Verify and publish checkpoint container / container (push) Successful in 11m22s
This commit is contained in:
1 parent
4ec4f843a7
commit
5f4eeee4f1
6 files changed
+89
-7
No files matched your search
@@ -9,6 +9,9 @@ import {
|
||||
} from './fixture-nexus-duke-capture';
|
||||
|
||||
type Transition = { before: Game; after: Game; leader: string };
|
||||
/** Do not stop at another faction's ordered Advanced Revival opportunity. */
|
||||
const ownerRevival = (game: Game, owner: string) => game.phase === 4 && nexusDukeClean(game) &&
|
||||
(!game.revivalOrder || game.revivalOrder.remaining[0] === owner);
|
||||
export type NativeEcazCohortFixture = {
|
||||
game: Game; owner: string; captor: string; plan: NexusDukePlan; actions: NexusDukeStep[];
|
||||
deaths: Transition[]; funding: { before: Game; after: Game; amount: number };
|
||||
@@ -73,7 +76,7 @@ export function createNativeEcazCohortFixture(): NativeEcazCohortFixture {
|
||||
game = stepNexusDuke(game, plan, { actor: captor,
|
||||
action: { type: 'bribe', target: owner, amount } }, actions);
|
||||
const funding = { before: fundingBefore, after: structuredClone(game), amount };
|
||||
game = advanceNexusDuke(game, g => g.phase === 4 && nexusDukeClean(g), plan, actions);
|
||||
game = advanceNexusDuke(game, g => ownerRevival(g, owner), plan, actions);
|
||||
const firstBefore = structuredClone(game);
|
||||
const firstLeader = native[0];
|
||||
assert.ok(viewGame(game, owner).revival.leaders.some(l => l.id === firstLeader));
|
||||
@@ -81,7 +84,7 @@ export function createNativeEcazCohortFixture(): NativeEcazCohortFixture {
|
||||
action: { type: 'reviveLeader', leader: firstLeader } }, actions);
|
||||
const first = { before: firstBefore, after: structuredClone(game), leader: firstLeader };
|
||||
const repeat = kill(firstLeader);
|
||||
game = advanceNexusDuke(game, g => g.phase === 4 && nexusDukeClean(g), plan, actions);
|
||||
game = advanceNexusDuke(game, g => ownerRevival(g, owner), plan, actions);
|
||||
plan.ship = {};
|
||||
assert.equal(nexusDukePlayer(game, owner).leaders.find(l => l.id === firstLeader)!.deaths, 2);
|
||||
assertNexusDukeCustody(game);
|
||||
@@ -119,7 +122,7 @@ export function createNativeEcazSecondCohortFixture(): NativeEcazSecondCohortFix
|
||||
const paid: Transition[] = [], repeats: Transition[] = [];
|
||||
let ghola!: Transition;
|
||||
for (let i = 0; i < 3; i++) {
|
||||
game = advanceNexusDuke(game, g => g.phase === 4 && nexusDukeClean(g), plan, actions);
|
||||
game = advanceNexusDuke(game, g => ownerRevival(g, owner), plan, actions);
|
||||
const before = structuredClone(game);
|
||||
game = stepNexusDuke(game, plan, { actor: owner,
|
||||
action: { type: 'reviveLeader', leader: native[i] } }, actions);
|
||||
@@ -138,7 +141,7 @@ export function createNativeEcazSecondCohortFixture(): NativeEcazSecondCohortFix
|
||||
}
|
||||
const last = poisonDeath(game, death, native[3]);
|
||||
repeats.push(last);
|
||||
game = advanceNexusDuke(last.after, g => g.phase === 4 && nexusDukeClean(g), plan, actions);
|
||||
game = advanceNexusDuke(last.after, g => ownerRevival(g, owner), plan, actions);
|
||||
plan.ship = {};
|
||||
assert.equal(nexusDukePlayer(game, owner).leaders.find(l => l.id === native[4])!.dead, false);
|
||||
assert.equal(game.dukeVidal!.leader.dead, true);
|
||||
|
||||
Reference in new issue
Block a user