ADD joins two number cards on movement, as printed
"You may add two NUMBER cards together for any single action" — movement included. The engine accepts a second movement number when an ADD accompanies it (once per turn); the client spends your Add automatically and says so on the button. 120 tests passing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
42ea9b8f2c
commit
89961bbb59
@@ -246,3 +246,23 @@ describe("thumb of god (divine meteor)", () => {
|
||||
expect(allObjects.some((c) => c.cardId === "dagger")).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("add for movement", () => {
|
||||
it("an ADD permits a second number card on movement, once", () => {
|
||||
let { state } = newGame();
|
||||
const me = activePlayer(state).id;
|
||||
giveCard(state, me, "number-3", "N1", 0);
|
||||
giveCard(state, me, "number-2", "N2", 1);
|
||||
giveCard(state, me, "add", "A", 2);
|
||||
giveCard(state, me, "number-4", "N3", 3);
|
||||
state = must(state, me, { type: "playNumberForMovement", instanceId: "number-3#N1" });
|
||||
expect(state.turn.movementAllowance).toBe(6);
|
||||
// Second without ADD: refused.
|
||||
expect(applyCommand(state, me, { type: "playNumberForMovement", instanceId: "number-2#N2" }).ok).toBe(false);
|
||||
// With ADD: allowed.
|
||||
state = must(state, me, { type: "playNumberForMovement", instanceId: "number-2#N2", addInstanceId: "add#A" });
|
||||
expect(state.turn.movementAllowance).toBe(8);
|
||||
// A third is refused even with another add wished for.
|
||||
expect(applyCommand(state, me, { type: "playNumberForMovement", instanceId: "number-4#N3" }).ok).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user