Uses the new MRPGI features (room names/enter prose, exit_flags, points, kills, consumes, visible_flag/hidden_by_flag). Golden path re-verified: 250/250 and the win; gate tests cover all four locked exits, the kebab death, and the improvised-words Becky-grue. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
178 lines
5.2 KiB
JSON
178 lines
5.2 KiB
JSON
{
|
|
"strokes": [
|
|
{
|
|
"Image": {
|
|
"name": "bg_car",
|
|
"x": 80,
|
|
"y": 84,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 138,
|
|
"color": 0,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 138,
|
|
"w": 160,
|
|
"h": 30,
|
|
"color": 8,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Image": {
|
|
"name": "bg_car",
|
|
"x": 80,
|
|
"y": 84,
|
|
"meaning": "None"
|
|
}
|
|
}
|
|
],
|
|
"spawn": [
|
|
80,
|
|
152
|
|
],
|
|
"exits": [
|
|
null,
|
|
1,
|
|
null,
|
|
null
|
|
],
|
|
"music": 1,
|
|
"objects": [
|
|
{
|
|
"name": "paperclip",
|
|
"sprite": "paperclip",
|
|
"x": 58,
|
|
"y": 150,
|
|
"look": "It glints under the seat with the confidence of a tool that knows its moment has come.",
|
|
"takeable": true,
|
|
"synonyms": "clip",
|
|
"points": 3
|
|
},
|
|
{
|
|
"name": "car keys",
|
|
"sprite": "keys",
|
|
"x": 100,
|
|
"y": 148,
|
|
"look": "Your keys. The fob battery died last week, same as the clock. The metal part still believes in you.",
|
|
"takeable": true,
|
|
"synonyms": "key keys fob",
|
|
"points": 2
|
|
},
|
|
{
|
|
"name": "wallet",
|
|
"sprite": "wallet",
|
|
"x": 122,
|
|
"y": 152,
|
|
"look": "Your wallet. Inside: a bank card, three receipts you insist are important, and the faint scent of consequences. It is both your identity and your final boss.",
|
|
"takeable": true,
|
|
"points": 2
|
|
},
|
|
{
|
|
"name": "45 adapter",
|
|
"sprite": "adapter",
|
|
"x": 138,
|
|
"y": 146,
|
|
"look": "A tiny plastic ring, loose in the glovebox. It is somehow the difference between listening and pretending. Small enough to lose. Important enough to ruin your day.",
|
|
"takeable": true,
|
|
"synonyms": "adapter ring spider",
|
|
"points": 3
|
|
},
|
|
{
|
|
"name": "tote bag",
|
|
"sprite": "tote",
|
|
"x": 30,
|
|
"y": 150,
|
|
"look": "A cotton tote from a festival you don't remember enjoying. Structurally, it is 90% intention.",
|
|
"takeable": true,
|
|
"synonyms": "tote bag",
|
|
"points": 2
|
|
},
|
|
{
|
|
"name": "seatbelt",
|
|
"sprite": "none",
|
|
"x": 45,
|
|
"y": 130,
|
|
"look": "The buckle is jammed. It has chosen violence, quietly.",
|
|
"synonyms": "belt buckle",
|
|
"needs": "paperclip",
|
|
"use_text": "You pick the jammed buckle with the paperclip. The belt releases with a noise like a sigh. Freedom, sponsored by office supplies.",
|
|
"sets_flag": "seatbelt-freed",
|
|
"points": 5
|
|
},
|
|
{
|
|
"name": "mirror",
|
|
"sprite": "none",
|
|
"x": 80,
|
|
"y": 125,
|
|
"look": "The rear-view mirror. Something is scratched into the plastic edge, under the dust.",
|
|
"synonyms": "rearview rear-view",
|
|
"use_text": "You wipe the dust from the mirror's edge. Scratched underneath, one word: RSD. It reads less like an acronym and more like an instruction.",
|
|
"sets_flag": "word-rsd",
|
|
"points": 10
|
|
},
|
|
{
|
|
"name": "list",
|
|
"sprite": "none",
|
|
"x": 130,
|
|
"y": 140,
|
|
"look": "Uncle's list, in handwriting like a cardiogram: RAMP (1977). A The The 10-inch. Model 500, 'Initial'. Three records that are basically rumours. At the bottom: DON'T COME BACK WITH NOTHING.",
|
|
"synonyms": "note uncles"
|
|
},
|
|
{
|
|
"name": "kebab",
|
|
"sprite": "none",
|
|
"x": 20,
|
|
"y": 145,
|
|
"look": "It is clearly mouldy. It is also somehow still in your car. This is a warning. This is another warning.",
|
|
"synonyms": "falafel food",
|
|
"use_text": "You eat the kebab. It is exactly as mouldy as it looked, and you knew, and you did it anyway. Somewhere, Morp files this under 'informed consent'. He died with a falafel in his hand.",
|
|
"kills": true
|
|
},
|
|
{
|
|
"name": "ignition",
|
|
"sprite": "none",
|
|
"x": 62,
|
|
"y": 128,
|
|
"look": "The ignition. The car will start when you have somewhere to be and a reason to leave. Currently you have neither.",
|
|
"synonyms": "engine start drive home",
|
|
"needs": "car keys",
|
|
"requires_flag": "beckies-dispersed",
|
|
"sets_flag": "went-home",
|
|
"wins": true,
|
|
"use_text": "The engine turns over first try — even the car is surprised. You pull out past the empty footpath, the white label on the passenger seat like a sleeping child. Uncle calls: furious, then quiet, then — BUT ALL OF THESE RECORDS ARE AWESOME. The cat gets fed. The shop is there all year, by the way. Buy records on the other 364 days too."
|
|
},
|
|
{
|
|
"name": "dashboard",
|
|
"sprite": "none",
|
|
"x": 110,
|
|
"y": 130,
|
|
"look": "The car interior is a small museum of your habits: receipts, cables, and the faint hum of unfinished plans. The dashboard clock blinks 12:00 (the battery died last week). Outside, through the windscreen, the shop waits.",
|
|
"synonyms": "dash clock windscreen glovebox wheel car"
|
|
}
|
|
],
|
|
"name": "Your Car",
|
|
"enter_text": "The last calm place before you choose suffering on purpose.",
|
|
"exit_flags": [
|
|
"",
|
|
"seatbelt-freed",
|
|
"",
|
|
""
|
|
],
|
|
"exit_blocked": [
|
|
"",
|
|
"The seatbelt holds you with the confidence of a system that has never been questioned.",
|
|
"",
|
|
""
|
|
]
|
|
} |