Mist shields its wizard from creatures; a glued square turns with its sector; Waterbolt splits the power it is cast with
Three of Ramses's reports from KFJL: - Rev 28: MIST-BODY's "may not attack or be attacked" holds against creatures. A wraith's or democratic monster's touch, a fire imp's scorch, and an ordered troll/skeleton/shadow blow all pass the mist by; older games keep the strike their ledgers recorded. The automaton no longer orders its creatures at a misted wizard. - ROTATE and RELOCATE SECTOR threw while GLUE was down: GLUE keeps its cell's key in the sustained effect's edge slot, and the remap read it as an edge. It maps as a cell now (the throw never reached a ledger, so this ships ungated). - WATERBOLT's damage/knockback split was sized by the NUMBER's face; the engine weighs POWERSTONE's +1 and AMPLIFY's doubling, so a 5 behind a powerstone was refused for not totalling 6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3368a92cf5
commit
8dcdfd2415
@@ -331,6 +331,27 @@ describe("sector manipulation", () => {
|
||||
}
|
||||
});
|
||||
|
||||
it("a glued treasure turns with its sector, and the glue turns with it (KFJL)", () => {
|
||||
// GLUE keeps its cell's key in the sustained effect's edge slot; the
|
||||
// rotation once read it as an edge key and threw.
|
||||
let { state } = newGame();
|
||||
const me = activePlayer(state);
|
||||
const chest = state.treasures.find((t) => t.owner === me.id)!;
|
||||
const key = cellKey(chest.position!);
|
||||
state.gluedCells[key] = true;
|
||||
state.sustained.push({
|
||||
id: "fx-glue", cardId: "glue", casterId: me.id, targetId: me.id, remainingTurns: 4, data: {}, edge: key,
|
||||
});
|
||||
const rs = giveCard(state, me.id, "rotate-sector");
|
||||
state = must(state, me.id, {
|
||||
type: "cast", instanceId: rs.instanceId,
|
||||
target: { kind: "cell", cell: me.position }, params: { clockwise: true },
|
||||
});
|
||||
const moved = cellKey(state.treasures.find((t) => t.id === chest.id)!.position!);
|
||||
expect(state.gluedCells).toEqual({ [moved]: true });
|
||||
expect(state.sustained.find((s) => s.id === "fx-glue")!.edge).toBe(moved);
|
||||
});
|
||||
|
||||
it("relocate sector slides everything and keeps adjacency", () => {
|
||||
let { state } = newGame(); // 2 players: 5x10 column, sectors at y=0 and y=5
|
||||
const me = activePlayer(state);
|
||||
|
||||
Reference in New Issue
Block a user