MRPGI/games/lost-fuse/rooms/room2.json
type-two 2fdd730cde Add the updated manual and a teaching game: The DJ's Lost Fuse
- MANUAL.md brought up to the workspace era: game folders + manifest,
  flags & gated puzzles, hidden dialogue choices, audio file
  overrides, a Programmatic control section (CLI/HTTP/MCP/Python),
  and the new two-crate architecture map.
- games/lost-fuse: three rooms that demonstrate every mechanic in one
  chain — item, needs-lock, object sets_flag, a dialogue choice hidden
  behind requires_flag, dialogue sets_flag, and a flag-locked wins
  finale. Verified winnable headlessly, gate included.
- games/lost-fuse/expansion/roof.jsonl: a live lore drop that upserts
  a fourth room into a running game and rewires an exit — the "drop
  JSON lore in" workflow, runnable as a one-liner.
- games/README.md: the guided tour — mechanic-to-JSON map, the live
  expansion demo, and how to prompt an LLM (or point Claude's MCP at
  the engine) to write valid lore.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 09:18:50 +10:00

48 lines
2.0 KiB
JSON

{
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 6, "y": 16, "w": 148, "h": 146, "color": 8, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 16, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 160, "w": 65, "h": 8, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 95, "y": 160, "w": 65, "h": 8, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 0, "w": 6, "h": 168, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 154, "y": 0, "w": 6, "h": 168, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 40, "y": 96, "w": 80, "h": 52, "color": 5, "meaning": "None" } },
{ "Rect": { "x": 56, "y": 108, "w": 48, "h": 28, "color": 13, "meaning": "None" } },
{ "Rect": { "x": 12, "y": 24, "w": 30, "h": 8, "color": 11, "meaning": "None" } },
{ "Rect": { "x": 118, "y": 24, "w": 30, "h": 8, "color": 13, "meaning": "None" } },
{ "Rect": { "x": 58, "y": 8, "w": 44, "h": 10, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 52, "y": 62, "w": 56, "h": 12, "color": 7, "meaning": "None" } }
],
"spawn": [80, 144],
"exits": [null, null, 1, null],
"objects": [
{
"name": "turntable",
"sprite": "altar",
"x": 80,
"y": 72,
"look": "The decks. A crown for whoever dares. Below, three hundred robots hold their breath.",
"synonyms": "decks booth dj deck",
"use_text": "You drop the needle. The building inhales - then the beat lands and three hundred robots lose their minds. You are the DJ now. THE PARTY IS SAVED.",
"requires_flag": "on_the_list",
"wins": true
},
{
"name": "dj",
"sprite": "villager",
"x": 36,
"y": 112,
"look": "The resident DJ, head in hands, humming quiet error tones.",
"synonyms": "deejay resident",
"dialogue": [
{
"says": "My set... my fuse... my LIFE...",
"choices": [{ "text": "I got you. Watch this.", "goto": -1 }]
}
]
}
],
"music": 4
}