diff --git a/deploy/scene-goldens/dust-and-light-s12-fpv.png b/deploy/scene-goldens/dust-and-light-s12-fpv.png new file mode 100644 index 0000000..2f76122 Binary files /dev/null and b/deploy/scene-goldens/dust-and-light-s12-fpv.png differ diff --git a/deploy/scene-goldens/dust-and-light-s14-board.png b/deploy/scene-goldens/dust-and-light-s14-board.png new file mode 100644 index 0000000..d51725b Binary files /dev/null and b/deploy/scene-goldens/dust-and-light-s14-board.png differ diff --git a/deploy/scene-goldens/dust-and-light-s14-fpv.png b/deploy/scene-goldens/dust-and-light-s14-fpv.png new file mode 100644 index 0000000..19e2370 Binary files /dev/null and b/deploy/scene-goldens/dust-and-light-s14-fpv.png differ diff --git a/deploy/scene-goldens/dust-and-light-s20-fpv.png b/deploy/scene-goldens/dust-and-light-s20-fpv.png new file mode 100644 index 0000000..aa4d9e7 Binary files /dev/null and b/deploy/scene-goldens/dust-and-light-s20-fpv.png differ diff --git a/packages/web/src/fpv/screenplays.ts b/packages/web/src/fpv/screenplays.ts index c4829b9..a54ed9c 100644 --- a/packages/web/src/fpv/screenplays.ts +++ b/packages/web/src/fpv/screenplays.ts @@ -336,6 +336,36 @@ export const SCREENPLAYS: Screenplay[] = [ { seat: "Rival", cmd: { type: "endTurn", draw: 0 } }, ], }, + { + ...DUEL, + name: "dust-and-light", + title: "Dust and Light", + blurb: "A dust cloud hides her from his spells — so he throws a warp behind her, steps through the light, and she flees blind into her own dust.", + pov: "Rival", + rig: { Rival: ["number-2", "dimensional-warp"], Wanderer: ["dust-cloud"] }, + beats: [12, 14, 20], + boardBeat: 14, + moves: [ + ...STANDOFF, + // Round two. Rival lays a warp: one mouth under his own feet at the + // north mouth, the other at Wanderer's back, and waits a turn. + { seat: "Rival", cmd: { type: "cast", instanceId: rigId("dimensional-warp"), target: { kind: "cell", cell: { x: 2, y: 5 } }, params: { cell: { x: 2, y: 0 } } } }, + { seat: "Rival", cmd: { type: "endTurn", draw: 0 } }, + // Wanderer fills the corridor between them with dust: no sight, no spells. + { seat: "Wanderer", cmd: { type: "cast", instanceId: rigId("dust-cloud"), target: { kind: "cell", cell: { x: 2, y: 3 } } } }, + { seat: "Wanderer", cmd: { type: "endTurn", draw: 0 } }, + // Round three. Through the light, onto her square, fists first. + { seat: "Rival", cmd: { type: "warpStep" } }, + { seat: "Rival", cmd: { type: "move", direction: "N" } }, + { seat: "Rival", cmd: { type: "punch", targetId: "Wanderer" } }, + { seat: "Wanderer", cmd: { type: "pass" } }, + { seat: "Rival", cmd: { type: "endTurn", draw: 0 } }, + // She bolts into her own cloud — and the die picks where she goes. + { seat: "Wanderer", cmd: { type: "move", direction: "N" } }, + { seat: "Wanderer", cmd: { type: "move", direction: "N" } }, + { seat: "Wanderer", cmd: { type: "endTurn", draw: 0 } }, + ], + }, ]; export function screenplayByName(name: string): Screenplay | null {