Files
two-keys/content/games/labyrinth-of-lanterns.yaml
joshuaandClaude Opus 5.5 62245ca67a Make game time estimates and difficulties realistic
Estimates were 2-8x longer than actual playthroughs. Base them on
recorded best times, rounded up to a multiple of 5 minutes, and drop
difficulties to 1-2 keys since no game warrants 3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:41:41 +02:00

88 lines
3.6 KiB
YAML

id: labyrinth-of-lanterns
engine: labyrinth
category: co-op
title: Labyrinth of Lanterns
tagline: One of you is lost in the dark. The other holds the only map.
estimatedMinutes: 10
difficulty: 1
players: { min: 2, max: 2 }
theme: { primary: "#3d2c6b", accent: "#ffb347", background: "#09070f", headingFont: "Playfair Display" }
roles:
A:
name: Navigator
blurb: You hold the ancient map. You can see every wall, glyph and trap. You can't see your partner.
B:
name: Explorer
blurb: You're inside the labyrinth with one candle. You only see the floor right under your feet.
intro: |
Beneath an old cathedral lies a labyrinth built for lovers. Legend says only a couple who
truly listen to each other can carry the **three lanterns** out.
**Explorer:** describe every glyph you step on and which ways you can go.
**Navigator:** work out where they are, guide them to the lanterns, and steer them **around the traps**.
The Explorer can't see the traps. One wrong step and they wake up back at the entrance.
# Grid legend:
# # wall . floor S start
# E exit (opens only when all 3 lanterns are carried)
# K lantern key (collected on entry)
# T trap (invisible to Explorer; on entry → back to S, keys kept, +60s penalty)
# Coordinates are (x, y) with (0,0) top-left.
grid:
- "###########"
- "#S..#.....#"
- "#.#.#.###.#"
- "#.#...#K..#"
- "#.#####.#.#"
- "#...T...#K#"
- "###.###.#.#"
- "#K..#.T.#.#"
- "#.###.#.#.#"
- "#..T....#E#"
- "###########"
# Floor glyphs: Explorer sees the glyph of their current cell; Navigator sees all of them on the map.
# Many floor cells are deliberately blank so the Navigator has to track moves, not just glyphs.
glyphs:
- { x: 1, y: 1, glyph: sun, label: "☀ A carved sun (the entrance)" }
- { x: 3, y: 1, glyph: spiral, label: "🌀 A spiral" }
- { x: 5, y: 3, glyph: crescent, label: "☾ A crescent moon" }
- { x: 9, y: 1, glyph: eye, label: "👁 An open eye" }
- { x: 1, y: 5, glyph: feather, label: "🪶 A feather" }
- { x: 3, y: 7, glyph: wave, label: "🌊 Three wavy lines" }
- { x: 7, y: 5, glyph: crown, label: "👑 A crown" }
- { x: 7, y: 9, glyph: star, label: "★ A star" }
- { x: 9, y: 7, glyph: rose, label: "🌹 A rose" }
- { x: 5, y: 9, glyph: heart, label: "♥ Two hearts, intertwined" }
lanterns:
- { x: 7, y: 3, name: Lantern of Patience }
- { x: 9, y: 5, name: Lantern of Trust }
- { x: 1, y: 7, name: Lantern of Listening }
explorerView:
# What the Explorer gets each move (server-built, never the grid):
# { glyphLabel | null, open: { n, e, s, w }, lanternHere: bool, keysCarried: n, atExit: bool }
flavour:
blank: "Bare stone. Your candle flickers."
trap: "The floor gives way! Darkness... you wake up at the carved sun."
lantern: "A lantern glows to life in your hands! ({name})"
exitLocked: "A heavy door with three empty lantern hooks. It won't budge."
exitOpen: "You hang the three lanterns. The door swings open onto starlight."
navigatorView:
# Navigator sees the full grid, glyphs, lanterns (dimmed once collected), traps, exit.
# Navigator NEVER receives the Explorer's coordinates. They do get: keysCarried, and a
# toast "Your Explorer fell into a trap and is back at the entrance." when it happens.
showMoveCount: true
scoring:
trapPenaltySeconds: 60
parMoves: 60
successEnding: |
The Explorer climbs out into the cathedral garden carrying three lanterns.
The Navigator is waiting with the map rolled up and a grin.
**Patience. Trust. Listening.** Turns out that's the whole map. 🏮🔑