Add ten new games (18 in total) and the engine features they need. Story: Dead Air, The Masquerade at Montague House, The Kalahari Expedition, The Alchemist's Vault, Submerged: Deep Lab Nereid, The Kestrel Bank Job. Games can now set their own hint penalty and a hard time limit, shown as a countdown; running out ends the game with the fail ending. Defuse: Tick Tock: Overtime. Manuals are now rulesets, so each game has its own solver. Adds indicator lights, per-level strike limits, and the Passwords, Morse Light and Say It Back modules. Sync: In Sync: Deep Cuts. Adds telepathy (typed word) and ranking rounds, and a per-round bar for the key. Labyrinth: The Drowned Catacombs and The Mirror Maze. Adds one-way gates, a relative (no compass) Explorer, a mirrored Navigator map, and mazes with a lantern count other than three. Validation now rejects a maze where a gate can leave the Explorer stuck. Difficulty runs from 1 to 5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
95 lines
4.0 KiB
YAML
95 lines
4.0 KiB
YAML
id: mirror-maze
|
|
engine: labyrinth
|
|
category: co-op
|
|
title: The Mirror Maze
|
|
tagline: The map is backwards. Your partner can't tell north from left. Seven traps. Good luck.
|
|
estimatedMinutes: 30
|
|
difficulty: 5
|
|
players: { min: 2, max: 2 }
|
|
theme: { primary: "#5f0f40", accent: "#c0fdff", background: "#07040a", headingFont: "Playfair Display" }
|
|
roles:
|
|
A:
|
|
name: Navigator
|
|
blurb: You hold the only map of the maze. It was copied from a mirror, so it's flipped left to right.
|
|
B:
|
|
name: Explorer
|
|
blurb: You're inside a hall of mirrors. You have no compass, only forward, back, left and right.
|
|
intro: |
|
|
An abandoned carnival on the edge of town. Its famous **Mirror Maze** has four **glass lanterns** hidden inside.
|
|
Legend says couples who carry all four out together never lose each other.
|
|
|
|
☠️ **Nightmare rules:**
|
|
- **Explorer:** you have no compass. Your controls are **Forward / Left / Right / Back**, relative to the way you're facing.
|
|
Whenever you move, you turn to face that way.
|
|
- **Navigator:** the only surviving map was **traced from a mirror**. Everything on it is flipped **left to right**.
|
|
- Some carvings appear **twice** in the maze. Don't trust a single glyph.
|
|
- **Seven** hidden traps. Four lanterns needed.
|
|
|
|
# Grid as it REALLY is (server truth). The Navigator is served the mirror image (see navigatorView).
|
|
grid:
|
|
- "###############"
|
|
- "#S..#.........#"
|
|
- "###.#.#.#####.#"
|
|
- "#K#.....#...#.#"
|
|
- "#.####.##.#.#.#"
|
|
- "#..T.....T....#"
|
|
- "#.###T#.###..T#"
|
|
- "#...#T#.#.....#"
|
|
- "#.#.#.#.#.###.#"
|
|
- "#..K#.#.....#K#"
|
|
- "#.#.#.#.###.#T#"
|
|
- "#.#.........#.#"
|
|
- "#.#.#.#.###.#.#"
|
|
- "#KT...#......E#"
|
|
- "###############"
|
|
|
|
lanternsRequired: 4
|
|
|
|
explorer:
|
|
compass: relative # controls are forward/left/right/back instead of N/E/S/W
|
|
startFacing: e # the only open way out of S
|
|
# Server converts relative → absolute using the Explorer's current facing, then sets facing = move direction.
|
|
# Explorer's view lists open directions as relative ("Open: forward, right") and never shows N/E/S/W.
|
|
|
|
glyphs:
|
|
- { x: 1, y: 1, glyph: ticket, label: "🎟 A torn carnival ticket (the entrance)" }
|
|
- { x: 3, y: 1, glyph: crescent, label: "☾ A crescent moon etched in the glass" }
|
|
- { x: 11, y: 11, glyph: crescent, label: "☾ A crescent moon etched in the glass" }
|
|
- { x: 9, y: 3, glyph: star, label: "✦ A four-pointed star" }
|
|
- { x: 7, y: 11, glyph: star, label: "✦ A four-pointed star" }
|
|
- { x: 13, y: 1, glyph: shard, label: "🪞 A shattered mirror panel" }
|
|
- { x: 5, y: 5, glyph: bell, label: "🔔 A tiny brass bell hanging from the ceiling" }
|
|
- { x: 11, y: 7, glyph: butterfly, label: "🦋 A painted butterfly" }
|
|
- { x: 1, y: 7, glyph: feather, label: "🪶 A feather on the floor" }
|
|
- { x: 9, y: 9, glyph: rose, label: "🌹 A paper rose" }
|
|
- { x: 5, y: 13, glyph: heart, label: "♥ Two hearts scratched into the glass" }
|
|
|
|
lanterns:
|
|
- { x: 1, y: 3, name: Lantern of Reflection }
|
|
- { x: 1, y: 13, name: Lantern of Patience }
|
|
- { x: 3, y: 9, name: Lantern of Trust }
|
|
- { x: 13, y: 9, name: Lantern of Home }
|
|
|
|
navigatorView:
|
|
mapTransform: mirror-x # serve each row reversed; glyph/lantern/trap x becomes (width - 1 - x)
|
|
showMoveCount: true
|
|
banner: "This map was traced from a mirror. Left is right. Right is left."
|
|
|
|
explorerView:
|
|
flavour:
|
|
blank: "Your own reflection stares back from every side."
|
|
trap: "The mirror floor cracks and you drop through... and wake up at the entrance, facing the way in."
|
|
lantern: "A glass lantern glows to life in your hands. ({name})"
|
|
exitLocked: "A mirrored door with four lantern hooks. It won't budge."
|
|
exitOpen: "You hang four lanterns. Every mirror in the maze lights up at once, and the door opens onto the fairground."
|
|
|
|
scoring:
|
|
trapPenaltySeconds: 90
|
|
parMoves: 110
|
|
|
|
successEnding: |
|
|
The Explorer stumbles out into the empty fairground. The Navigator is waiting by the ferris wheel,
|
|
holding the backwards map upside down, grinning.
|
|
|
|
**You never lost each other.** 🪞🔑
|