Files
two-keys/content/games/mirror-maze.yaml
T
joshuaandClaude Opus 5.5 bbe44e84c4 V1.1.0
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>
2026-10-13 23:34:11 +02:00

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.** 🪞🔑