Scope Advanced Kull to the attempted Karama effect
Adopt the supplied Advanced specific-effect wording, preserving Basic and legacy phase-wide semantics. Bind signed semantic purposes through ordinary/special activations, counters, feasibility and settlement; retain unrelated human controls and minimal bot actions. Phase expiry remains provisional; prior counter, BG and deferred-overbid choices stay. Validation: frozen12-file111/111, types/lint/build and two original-action/rendered-table programmes. Explicit unopened deal/auction/spice order supports real paid Baliset and shipments; Advanced retains Karama for Baliset cancellation while Basic stays blocked. Four minimal policies remain legal. Correct stale exchange/phase-market/Fremen fixture assumptions. Recovery schema expectations maintained without running deferred SQL assurance. No full modes, browser/deployed acceptance, saved-game/reset/restart or deployment operation.
This commit is contained in:
1 parent
b82441c834
commit
884a09fa92
24 files changed
+951
-64
No files matched your search
@@ -30,7 +30,8 @@ void test('all four profiles settle saved Basic and Advanced Nexus Kull with onl
|
||||
assert.equal(settled.karamaShipping, null);
|
||||
assert.equal(settled.discard.filter(card => card.id === fixture.fuel).length, 1);
|
||||
assert.ok(settled.players.find(player => player.id === fixture.actor)!.hand.some(card => card.id === fixture.original));
|
||||
assert.ok(viewGame(settled, fixture.actor).karamaBlocked);
|
||||
assert.equal(!!viewGame(settled, fixture.actor).karamaBlocked, !advanced);
|
||||
assert.deepEqual(viewGame(settled, fixture.actor).karamaPurposeBlocks.map(rule => rule.purpose), advanced ? ['shipment-price'] : []);
|
||||
assert.equal(settled.nexusCards!.cards!.hands[fixture.choam], null);
|
||||
assert.equal(settled.nexusCards!.cards!.discard.filter(face => face === 'choam').length, 1);
|
||||
assert.equal(settled.nexusChoamHistory!.at(-1)!.stage, 'complete');
|
||||
@@ -91,7 +92,8 @@ void test('all profiles leave the interrupted BG Worthless card unconverted when
|
||||
const original = settled.players.find(player => player.id === fixture.actor)!.hand.find(card => card.id === fixture.original);
|
||||
assert.equal(original?.kind, 'worthless');
|
||||
assert.ok(!settled.discard.some(card => card.id === fixture.original));
|
||||
assert.ok(viewGame(settled, fixture.actor).karamaBlocked);
|
||||
assert.equal(viewGame(settled, fixture.actor).karamaBlocked, null);
|
||||
assert.deepEqual(viewGame(settled, fixture.actor).karamaPurposeBlocks.map(rule => rule.purpose), ['shipment-price']);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user