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>
810 lines
10 KiB
JSON
810 lines
10 KiB
JSON
{
|
|
"name": "Roskilde Main Stage, 1994",
|
|
"enter_text": "Denmark. Sixty thousand people breathing as one animal in the dark. Sepultura's van died in Germany, Peter Gabriel just walked off, and somebody has to be next.",
|
|
"background": "roskilde",
|
|
"ops": [
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 320,
|
|
"h": 112,
|
|
"ink": {
|
|
"color": null,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 110,
|
|
"w": 320,
|
|
"h": 6,
|
|
"ink": {
|
|
"color": 17,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 4,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 248,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 16,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 249,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 28,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 250,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 40,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 251,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 52,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 252,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 64,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 253,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 76,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 254,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 88,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 255,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 100,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 248,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 112,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 249,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 124,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 250,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 136,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 251,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 148,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 252,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 160,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 253,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 172,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 254,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 184,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 255,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 196,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 248,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 208,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 249,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 220,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 250,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 232,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 251,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 244,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 252,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 256,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 253,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 268,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 254,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 280,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 255,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 292,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 248,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 304,
|
|
"y": 113,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 249,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"FbmFill": {
|
|
"x": 0,
|
|
"y": 118,
|
|
"w": 320,
|
|
"h": 72,
|
|
"ramp": [
|
|
68,
|
|
110,
|
|
68
|
|
],
|
|
"scale": 20.0,
|
|
"octaves": 2,
|
|
"seed": 54,
|
|
"ink": {
|
|
"color": 0,
|
|
"pri": "Band",
|
|
"ctl": {
|
|
"Set": 0
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
126
|
|
],
|
|
[
|
|
319,
|
|
126
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
136
|
|
],
|
|
[
|
|
319,
|
|
136
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
146
|
|
],
|
|
[
|
|
319,
|
|
146
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
156
|
|
],
|
|
[
|
|
319,
|
|
156
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
166
|
|
],
|
|
[
|
|
319,
|
|
166
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
176
|
|
],
|
|
[
|
|
319,
|
|
176
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Line": {
|
|
"pts": [
|
|
[
|
|
0,
|
|
186
|
|
],
|
|
[
|
|
319,
|
|
186
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 32,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Polygon": {
|
|
"pts": [
|
|
[
|
|
70,
|
|
122
|
|
],
|
|
[
|
|
96,
|
|
122
|
|
],
|
|
[
|
|
88,
|
|
132
|
|
],
|
|
[
|
|
78,
|
|
132
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 19,
|
|
"pri": {
|
|
"Set": 11
|
|
},
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Polygon": {
|
|
"pts": [
|
|
[
|
|
200,
|
|
122
|
|
],
|
|
[
|
|
226,
|
|
122
|
|
],
|
|
[
|
|
218,
|
|
132
|
|
],
|
|
[
|
|
208,
|
|
132
|
|
]
|
|
],
|
|
"ink": {
|
|
"color": 19,
|
|
"pri": {
|
|
"Set": 11
|
|
},
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"cycles": [
|
|
{
|
|
"start": 248,
|
|
"len": 8,
|
|
"period": 2,
|
|
"reverse": false,
|
|
"active": true
|
|
}
|
|
],
|
|
"scale": {
|
|
"horizon_y": 112,
|
|
"min_scale": 0.8,
|
|
"full_y": 186
|
|
},
|
|
"spawn": [
|
|
50,
|
|
160
|
|
],
|
|
"exits": [
|
|
null,
|
|
5,
|
|
null,
|
|
3
|
|
],
|
|
"exit_flags": [
|
|
"",
|
|
"legend",
|
|
"",
|
|
""
|
|
],
|
|
"exit_blocked": [
|
|
"",
|
|
"Not before the encore. Play the show.",
|
|
"",
|
|
""
|
|
],
|
|
"hotspots": [
|
|
{
|
|
"name": "crowd",
|
|
"rect": [
|
|
0,
|
|
40,
|
|
320,
|
|
70
|
|
],
|
|
"msgs": {
|
|
"look": "A field of lighters to the horizon. Sixty thousand Danes who came for Sepultura and stayed for whatever this is about to be.",
|
|
"listen": "The roar arrives in waves, like surf that learned your name.",
|
|
"talk": "You raise one fist. SIXTY THOUSAND PEOPLE RAISE IT BACK."
|
|
}
|
|
},
|
|
{
|
|
"name": "monitors",
|
|
"rect": [
|
|
66,
|
|
118,
|
|
164,
|
|
18
|
|
],
|
|
"msgs": {
|
|
"look": "Monitor wedges, mixed for a prog band. John will fix that with volume."
|
|
}
|
|
}
|
|
],
|
|
"props": [
|
|
{
|
|
"name": "the rig",
|
|
"sprite": "rig",
|
|
"x": 276,
|
|
"y": 148,
|
|
"synonyms": "amps amp stack backline",
|
|
"msgs": {
|
|
"look": "A borrowed backline the size of a rowhouse. Rob's overdrive will make it honest."
|
|
},
|
|
"solid": true
|
|
}
|
|
],
|
|
"npcs": [
|
|
{
|
|
"name": "stage manager",
|
|
"sprite": "stagehand",
|
|
"x": 96,
|
|
"y": 150,
|
|
"wander": 20,
|
|
"msgs": {
|
|
"look": "A Danish stage manager with a clipboard and eleven headaches."
|
|
},
|
|
"dialogue": [
|
|
{
|
|
"says": "Sepultura is IN A DITCH near Flensburg. I have sixty thousand people and a hole in the schedule after Peter Gabriel. You are either legends tonight, or you are filler.",
|
|
"choices": [
|
|
{
|
|
"text": "We'll take the main stage.",
|
|
"goto": 1,
|
|
"sets_flag": "mainstage",
|
|
"points": 10
|
|
},
|
|
{
|
|
"text": "We're... technically the tent act.",
|
|
"goto": 2
|
|
},
|
|
{
|
|
"text": "Give us a minute.",
|
|
"goto": -1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "“Then GO.” He points at the rig with the clipboard. “And whatever a 'jazzcore' is — do it LOUDLY.”",
|
|
"choices": [
|
|
{
|
|
"text": "Always.",
|
|
"goto": -1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "“'Were.'” He crosses something out with terrifying finality.",
|
|
"choices": [
|
|
{
|
|
"text": "(Reconsider.)",
|
|
"goto": 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"music": 3,
|
|
"weather": 3,
|
|
"script": "room4.rhai"
|
|
} |