Resume worm rides after advanced Sneak arrivals
Verify and publish checkpoint container / container (push) Successful in 10m40s
Verify and publish checkpoint container / container (push) Successful in 10m40s
This commit is contained in:
1 parent
b79e448deb
commit
57321c2c8d
8 files changed
+363
-36
No files matched your search
@@ -69,20 +69,39 @@ function ready(state: Game) {
|
||||
}
|
||||
const queuedRide = { kind: 'wormRide', player: 'in', territory: 'hagga_basin' } as const;
|
||||
|
||||
void test('Advanced worm Sneak shows the temporary positive-entry guard and preserves the ride on zero', () => {
|
||||
void test('Advanced worm Sneak preserves the original and child entries before the ride', () => {
|
||||
const { g } = table('sneakAttack');
|
||||
let state = wormRide(g);
|
||||
assert.match(viewGame(state, 'm').terrorEntry?.sneakAttack?.blocked ?? '', /worm ride/);
|
||||
assert.equal(viewGame(state, 'm').terrorEntry?.sneakAttack?.blocked, null);
|
||||
state = action(state, 'm', {type:'decision', reveal:true});
|
||||
const before = structuredClone(state);
|
||||
assert.throws(() => action(state, 'm', {type:'decision', amount:1}), /worm ride/);
|
||||
assert.deepEqual(state, before);
|
||||
state = action(state, 'm', {type:'decision', amount:0});
|
||||
state = action(state, 'm', {type:'decision', amount:1});
|
||||
assert.equal(state.pendingArrivalOverlap?.stage, 'second');
|
||||
state = action(state, 'ec', {type:'decision', event:state.pendingAmbassador!.event, decline:true});
|
||||
assert.equal(state.pendingAmbassador?.entrant, 'm');
|
||||
state = action(state, 'ec', {type:'decision', event:state.pendingAmbassador!.event, decline:true});
|
||||
assert.deepEqual(state.decision, queuedRide);
|
||||
});
|
||||
|
||||
void test('a summoned worm during a held Sneak arrival keeps its Nexus before the next ride', () => {
|
||||
const { g } = table('sneakAttack');
|
||||
const karama = g.deck.find(card => card.effect === 'karama')!;
|
||||
g.deck = g.deck.filter(card => card.id !== karama.id);
|
||||
seat(g, 'in').hand = [karama];
|
||||
let state = wormRide(g);
|
||||
state = action(state, 'm', {type:'decision', reveal:true});
|
||||
state = action(state, 'm', {type:'decision', amount:1});
|
||||
assert.equal(state.pendingAmbassador?.entrant, 'in');
|
||||
state = action(state, 'in', {type:'card', mode:'special', card:karama.id, territory:'the_great_flat'});
|
||||
assert.equal(state.summonedNexusBeforeRides, true);
|
||||
state = action(state, 'ec', {type:'decision', event:state.pendingAmbassador!.event, decline:true});
|
||||
assert.equal(state.pendingAmbassador?.entrant, 'm');
|
||||
state = action(state, 'ec', {type:'decision', event:state.pendingAmbassador!.event, decline:true});
|
||||
assert.equal(state.pendingSneakWorm ?? null, null);
|
||||
assert.equal(state.nexus, true);
|
||||
assert.deepEqual(state.wormRides, ['hagga_basin']);
|
||||
assert.equal(state.decision ?? null, null);
|
||||
});
|
||||
|
||||
void test('Terror first keeps Robbery overflow custody and the ordered arrival intact', () => {
|
||||
const { g, terror } = table('robbery');
|
||||
seat(g, 'm').hand = g.deck.splice(0, 4);
|
||||
|
||||
Reference in new issue
Block a user