Files
Dune/tests/fixture-sandmaster-worm.ts

28 lines
1.4 KiB
TypeScript

import { smugglerShipmentGame } from './smuggler-shipment-fixture';
import type { Action } from '../game/engine';
/** Genuine Leader Skills setup, followed by a conserved post-Nexus ride position. */
export function sandmasterWormGame(advanced = false, intrusion = false, independent = false) {
const g = smugglerShipmentGame('fremen', advanced, 'sandmaster', intrusion ? 'beneGesserit' : 'guild', [], independent);
const own = g.players[0];
own.name = 'Sandmaster rider';
own.forces = { 'wind_pass:14': 2, 'wind_pass:15': 2 };
own.reserves = 16; own.spice = 5; own.moved = 1;
if (own.elites) own.elites = { forces: { 'wind_pass:14': 1, 'wind_pass:15': 1 }, reserves: 1, tanks: 0, revived: 0 };
Object.assign(g, { phase: 1, nexus: true, spiceSequence: { pile: 1, skipped: [] },
wormRides: [], movementRemaining: null, decision: { kind: 'wormRide', player: 'p', territory: 'wind_pass' },
spice: { 'wind_pass:14': 7, 'red_chasm:7': 2 } });
if (intrusion) {
const bg = g.players[1];
bg.forces = { 'red_chasm:7': 1 }; bg.reserves = 19;
bg.advisors = {};
}
return g;
}
export function sandmasterRide(collect: boolean | undefined = true): Action {
return { type: 'decision', accept: true, territory: 'red_chasm', sector: 7,
forces: { 'wind_pass:14': 2, 'wind_pass:15': 2 },
eliteForces: { 'wind_pass:14': 1, 'wind_pass:15': 1 },
...(collect === undefined ? {} : { sandmasterCollect: collect }) };
}