Rev 24: a REFLECTION against a permanent curse afflicts both wizards
"If this spell is REFLECTed, both players take 1/2 point of damage per space moved" (WALKING DEAD); "In case of REFLECTION, both players are affected" (IDIOT); SLOW DEATH follows REFLECTION's own rule that a spell works for both parties. A permanent curse has no duration for the reflection's split to halve, so the caster went untouched; the curse is now laid on them as well, as if cast back. Older games replay as they were; PRPM, reflected at seq 108 with no move since, was re-stamped to 24 at its table's request. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
f26893f45b
commit
f738957100
@@ -1394,3 +1394,28 @@ describe("disease makes the caster the carrier (rev 7)", () => {
|
||||
throw new Error("no adjacent step for the return walk");
|
||||
});
|
||||
});
|
||||
|
||||
describe("a REFLECTION against a permanent curse afflicts both (rev 24)", () => {
|
||||
const cursed = (s: GameState, id: string) => s.sustained.some((e) => e.cardId === "walking-dead" && e.targetId === id);
|
||||
const play = (deckRev: number) => {
|
||||
let { state } = createGame({ playerIds: ["alice", "bob"], seed: 42, sets: ["basic"], deckRev });
|
||||
state = toRound2(state);
|
||||
const { attacker, defender } = faceOff(state);
|
||||
const wd = giveCard(state, attacker, "walking-dead");
|
||||
state.players.find((p) => p.id === defender)!.hand[0] = { instanceId: "reflection#T", cardId: "reflection" };
|
||||
state = must(state, attacker, { type: "cast", instanceId: wd.instanceId, target: { kind: "player", playerId: defender } });
|
||||
state = must(state, defender, { type: "counteract", instanceId: "reflection#T" });
|
||||
state = drain(state);
|
||||
return { state, attacker, defender };
|
||||
};
|
||||
it("lays WALKING DEAD on the caster too", () => {
|
||||
const { state, attacker, defender } = play(24);
|
||||
expect(cursed(state, defender)).toBe(true);
|
||||
expect(cursed(state, attacker)).toBe(true);
|
||||
});
|
||||
it("older games left the caster untouched", () => {
|
||||
const { state, attacker, defender } = play(23);
|
||||
expect(cursed(state, defender)).toBe(true);
|
||||
expect(cursed(state, attacker)).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user