nomeansnoquest/rooms/room3.json
m3ultra 50817ced59 NOMEANSNO QUEST v1.0 — the first MRPCI game
Six rooms of band history: the 1979 basement (Portastudio, Mom, the Castle box), D.O.A. at UVic, the alley wall that named the band, Alternative Tentacles 1987 (Jello signs you), the Roskilde main stage 1994 (MODELBEAST flux matte painting quantized by the engine; ops paint only walkability + cycling footlights), and the Polish field 1997 (the $2,500 van ransom — with one fatal dialogue option to prove checkpoint mercy). 60 points, deterministic playthrough in tests/, zero engine forks: pure game data + rhai. Generated art via tools/gen_sprites.py + gen_rooms.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 20:49:05 +10:00

881 lines
11 KiB
JSON

{
"name": "Alternative Tentacles, 1987",
"enter_text": "San Francisco. The office smells of newsprint, coffee, and litigation. Every poster on the wall is somebody's whole life.",
"ops": [
{
"VGradient": {
"x": 0,
"y": 0,
"w": 320,
"h": 96,
"ramp": [
196,
154
],
"ink": {
"color": 0,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 20,
"y": 14,
"w": 60,
"h": 44,
"ink": {
"color": 18,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 24,
"y": 18,
"w": 52,
"h": 36,
"ink": {
"color": 127,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Line": {
"pts": [
[
24,
40
],
[
75,
34
]
],
"ink": {
"color": 182,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 38,
"y": 44,
"w": 4,
"h": 10,
"ink": {
"color": 22,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 56,
"y": 40,
"w": 4,
"h": 14,
"ink": {
"color": 22,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 110,
"y": 12,
"w": 30,
"h": 26,
"ink": {
"color": 176,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 114,
"y": 16,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 148,
"y": 12,
"w": 30,
"h": 26,
"ink": {
"color": 53,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 152,
"y": 16,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 186,
"y": 12,
"w": 30,
"h": 26,
"ink": {
"color": 194,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 190,
"y": 16,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 224,
"y": 12,
"w": 30,
"h": 26,
"ink": {
"color": 107,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 228,
"y": 16,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 262,
"y": 12,
"w": 30,
"h": 26,
"ink": {
"color": 57,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 266,
"y": 16,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 110,
"y": 46,
"w": 30,
"h": 26,
"ink": {
"color": 176,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 114,
"y": 50,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 148,
"y": 46,
"w": 30,
"h": 26,
"ink": {
"color": 53,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 152,
"y": 50,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 186,
"y": 46,
"w": 30,
"h": 26,
"ink": {
"color": 194,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 190,
"y": 50,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 224,
"y": 46,
"w": 30,
"h": 26,
"ink": {
"color": 107,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 228,
"y": 50,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 262,
"y": 46,
"w": 30,
"h": 26,
"ink": {
"color": 57,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 266,
"y": 50,
"w": 22,
"h": 4,
"ink": {
"color": 17,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"FbmFill": {
"x": 0,
"y": 96,
"w": 320,
"h": 94,
"ramp": [
153,
110,
153
],
"scale": 22.0,
"octaves": 2,
"seed": 41,
"ink": {
"color": 0,
"pri": "Band",
"ctl": {
"Set": 0
},
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
104
],
[
319,
104
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
116
],
[
319,
116
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
128
],
[
319,
128
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
140
],
[
319,
140
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
152
],
[
319,
152
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
164
],
[
319,
164
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
176
],
[
319,
176
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Line": {
"pts": [
[
0,
188
],
[
319,
188
]
],
"ink": {
"color": 110,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Rect": {
"x": 0,
"y": 168,
"w": 90,
"h": 22,
"ink": {
"color": 110,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"VoronoiFill": {
"x": 2,
"y": 170,
"w": 86,
"h": 18,
"cell": 6,
"colors": [
176,
36,
200,
19,
51
],
"edge_color": null,
"edge": 0.6,
"seed": 42,
"ink": {
"color": null,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Rect": {
"x": 230,
"y": 168,
"w": 90,
"h": 22,
"ink": {
"color": 110,
"pri": "Keep",
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"VoronoiFill": {
"x": 232,
"y": 170,
"w": 86,
"h": 18,
"cell": 6,
"colors": [
143,
48,
188,
20
],
"edge_color": null,
"edge": 0.6,
"seed": 43,
"ink": {
"color": null,
"pri": "Keep",
"ctl": "Keep",
"hot": null
}
}
},
{
"Rect": {
"x": 150,
"y": 100,
"w": 74,
"h": 22,
"ink": {
"color": 110,
"pri": {
"Set": 10
},
"ctl": {
"Set": 1
},
"hot": null
}
}
},
{
"Rect": {
"x": 150,
"y": 100,
"w": 74,
"h": 4,
"ink": {
"color": 153,
"pri": {
"Set": 10
},
"ctl": "Keep",
"hot": null
}
}
},
{
"Rect": {
"x": 158,
"y": 92,
"w": 18,
"h": 8,
"ink": {
"color": 29,
"pri": {
"Set": 10
},
"ctl": "Keep",
"hot": null
}
}
}
],
"scale": {
"horizon_y": 90,
"min_scale": 0.72,
"full_y": 186
},
"spawn": [
60,
140
],
"exits": [
null,
4,
null,
0
],
"exit_flags": [
"",
"signed",
"",
""
],
"exit_blocked": [
"",
"Europe doesn't book the unsigned. Talk to Jello.",
"",
""
],
"hotspots": [
{
"name": "poster wall",
"rect": [
108,
8,
200,
74
],
"msgs": {
"look": "Dead Kennedys. D.O.A. Butthole Surfers. A wall of bands that never asked permission.",
"do": "You straighten one thumbtack. History looks marginally tidier."
}
},
{
"name": "window",
"rect": [
18,
12,
64,
48
],
"msgs": {
"look": "Fog rolling off the bay, gold light on the bridge. Even the weather here has a record deal."
}
},
{
"name": "record crates",
"rect": [
0,
160,
92,
30
],
"msgs": {
"look": "Crates of vinyl heading to distributors on four continents. The machine, fed."
}
},
{
"name": "desk",
"rect": [
148,
96,
78,
30
],
"msgs": {
"look": "The desk: contracts, cassettes, and a rubber tarantula used as a paperweight."
}
}
],
"props": [],
"npcs": [
{
"name": "Jello",
"sprite": "biafra",
"x": 246,
"y": 132,
"portrait": "biafra-face",
"wander": 14,
"msgs": {
"look": "Jello Biafra, sorting demos like a heron reads a river."
},
"dialogue": [
{
"says": "The Canadians. The brothers. The ones who sound like — what did Trouser Press say — Wire on psychotic steroids?",
"choices": [
{
"text": "Slip him the demo tape.",
"goto": 1,
"requires_flag": "demo_done",
"sets_flag": "signed",
"points": 10
},
{
"text": "We're NoMeansNo. And no means no.",
"goto": 2
},
{
"text": "Just admiring the tarantula.",
"goto": -1
}
]
},
{
"says": "He plays thirty seconds of Sex Mad. Both eyebrows achieve escape velocity. “Licensed. International. Don't shave, don't die, and tour Europe until Europe apologizes.”",
"choices": [
{
"text": "Deal.",
"goto": -1
}
]
},
{
"says": "“Good name. Better policy.” He gestures at the demo mountain. “Feed the machine, gentlemen.”",
"choices": [
{
"text": "(Feed it.)",
"goto": 0
}
]
}
]
}
],
"music": 4,
"script": "room3.rhai"
}