Prototype Tleilaxu special Karama Truthtrance
Verify and publish checkpoint container / container (push) Successful in 11m6s
Verify and publish checkpoint container / container (push) Successful in 11m6s
This commit is contained in:
1 parent
5b8d510470
commit
cfccfe5acb
15 files changed
+391
-20
No files matched your search
@@ -2196,6 +2196,42 @@ void test('Emperor special Karama guide forwards only a current legal force pack
|
||||
owner.tanks = 3; owner.specialKaramaUsed = true; press(button); assert.equal(sent.length, 1);
|
||||
});
|
||||
|
||||
void test('Tleilaxu special Karama authoring uses only the public Revival opportunity', () => {
|
||||
const game = projected(4);
|
||||
game.advanced = true; game.expansions = ['ix'];
|
||||
const owner = game.players.find(player => player.id === 'p')!;
|
||||
owner.faction = 'tleilaxu'; owner.specialKaramaUsed = false;
|
||||
const source = JSON.stringify(['karamaTleilaxuSpecial', game.turn, 'p']);
|
||||
const initial = windowClaim('karamaTleilaxuSpecial', source), e = editor(initial, false, game);
|
||||
Object.defineProperty(owner, 'hand', { get() { throw Error('Question authoring read private hand'); }, configurable: true });
|
||||
assert.equal(e.error(), null);
|
||||
assert.match(e.html(), /Use Tleilaxu’s special Karama during Revival/);
|
||||
assert.match(e.html(), /Turn 2 · Tleilaxu special Karama during Revival/);
|
||||
assert.ok(turnActionInputError(initial, game, 'r'));
|
||||
owner.specialKaramaUsed = true; assert.ok(e.error());
|
||||
owner.specialKaramaUsed = false; game.phase = 5; assert.ok(e.error());
|
||||
});
|
||||
|
||||
void test('Tleilaxu special Karama guide requires the current quoted physical card and target', () => {
|
||||
const source = JSON.stringify(['karamaTleilaxuSpecial', 2, 'p']);
|
||||
const game = projected(4, { type: 'card', mode: 'special', card: 'controlled-printed-karama', target: 'r' });
|
||||
game.advanced = true; game.expansions = ['ix'];
|
||||
const owner = game.players.find(player => player.id === 'p')!;
|
||||
owner.faction = 'tleilaxu'; owner.specialKaramaUsed = false;
|
||||
game.tleilaxuSpecialKarama = { blocked: null, cards: ['controlled-printed-karama'],
|
||||
targets: [{ player: 'r', blocked: null }], pending: false };
|
||||
game.turnActionPromises[0].mixed = windowClaim('karamaTleilaxuSpecial', source);
|
||||
const sent: Action[] = [], props = { game, busy: false, act(action: Action) { sent.push(action); } };
|
||||
const button = guide(props); assert.equal(button.props.disabled, false);
|
||||
assert.match(renderToStaticMarkup(button), /Tleilaxu’s special Karama/);
|
||||
press(button); assert.deepEqual(sent, [game.turnActionGuide!.action]);
|
||||
game.tleilaxuSpecialKarama.targets[0].blocked = 'Unavailable'; press(button); assert.equal(sent.length, 1);
|
||||
game.tleilaxuSpecialKarama.targets[0].blocked = null;
|
||||
game.tleilaxuSpecialKarama.cards.length = 0; press(button); assert.equal(sent.length, 1);
|
||||
game.tleilaxuSpecialKarama.cards.push('controlled-printed-karama');
|
||||
owner.hand = []; press(button); assert.equal(sent.length, 1);
|
||||
});
|
||||
|
||||
void test('Atreides special Karama authoring uses the public battle window and owner', () => {
|
||||
const game = combat(false);
|
||||
game.advanced = true;
|
||||
|
||||
Reference in new issue
Block a user