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
@@ -83,7 +83,7 @@ void test('the real saved table mounts the offer instead of shipment and volunta
|
||||
assert.match(disabled, /disabled=""[^>]*>Use Kull Wahad/);
|
||||
});
|
||||
|
||||
void test('a successful phase ban removes the retained Karama shipment-rate control', () => {
|
||||
void test('a successful effect restriction removes the retained Karama shipment-rate control', () => {
|
||||
const initial = choamKullGame();
|
||||
let g = applyAction(initial, 'e', kullShipmentAttempt(initial));
|
||||
g = applyAction(g, 'c', {
|
||||
@@ -102,9 +102,10 @@ void test('a successful phase ban removes the retained Karama shipment-rate cont
|
||||
const render = (game: GameView) => renderToStaticMarkup(createElement(GameTable, {
|
||||
game, send: async () => { assert.fail('Rendering must not submit gameplay.'); }, busy: false, onExit() {},
|
||||
}));
|
||||
assert.ok(blocked.karamaBlocked);
|
||||
assert.equal(blocked.karamaBlocked, null);
|
||||
assert.deepEqual(blocked.karamaPurposeBlocks.map(rule => rule.purpose), ['shipment-price']);
|
||||
assert.doesNotMatch(render(blocked), />Guild rates for/);
|
||||
const available = { ...blocked, karamaBlocked: null };
|
||||
const available = { ...blocked, karamaPurposeBlocks: [] };
|
||||
assert.match(render(available), />Guild rates for/);
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user