Enable advanced ambassador child arrivals
Verify and publish checkpoint container / container (push) Successful in 10m16s

This commit is contained in:
Quintine committed 2026-10-29 19:42:27 +11:00
1 parent 22b463a395
commit 8a39f5a172
9 files changed
+288 -17

No files matched your search

+3 -8
View File
@@ -6,7 +6,7 @@ import { createAmbassadors, placeAmbassador } from '../game/ecaz-ambassadors';
import { createTerrorState, placeTerror } from '../game/moritani-terror';
/** Controlled Advanced Ecaz/Moritani table with original physical markers.
* It isolates the pre-existing Advanced overlap gate, not a played setup or
* It isolates Advanced overlap availability, not a played setup or
* an assurance of every optional-module combination. */
function advancedTable(effect: 'fremen' | 'guild'): Game {
const game = createGame('OVERLAPADVANCEDGATE', newPlayer('ec','Ecaz','ecaz'), true, ['ecaz']);
@@ -31,16 +31,11 @@ function advancedTable(effect: 'fremen' | 'guild'): Game {
}
for (const effect of ['fremen','guild'] as const) {
void test(`Advanced ${effect} Ambassador child stays gated during overlap`,()=>{
void test(`Advanced ${effect} Ambassador child is offered during a native overlap`,()=>{
const game = applyAction(advancedTable(effect),'in',{type:'ship',territory:'arrakeen',sector:10,amount:2});
const entry = game.pendingAmbassador; assert.ok(entry);
assert.equal(game.pendingArrivalOverlap?.first,'ambassador');
const blocked = viewGame(game,'ec').ambassadorEntry?.beneficiaries[0].blocked;
assert.match(blocked ?? '',/bare Basic faction preview/);
const before = structuredClone(game);
assert.throws(()=>applyAction(game,'ec',{type:'decision',event:entry.event,trigger:true,beneficiary:'ec'}),
/bare Basic faction preview/);
assert.deepEqual(game,before);
assert.equal(viewGame(game,'ec').ambassadorEntry?.beneficiaries[0].blocked, null);
let settled = applyAction(game,'ec',{type:'decision',event:entry.event,decline:true});
assert.equal(settled.pendingTerrorEntry?.entrant,'in');
settled = applyAction(settled,'m',{type:'decision',decline:true});