Bugs found by playing the game over the bus: - hotspots now have positions: 'walk to precinct door' pathfinds there, and touch verbs walk over to hotspots like they do to props/NPCs - GameState::settle(): the MCP surface resolves walk-then-act in one call instead of returning zero events on a distant verb - typed 'use X on Y' walks over like a clicked use (was unlimited range) - taking/deleting a solid prop rebakes — no more lingering invisible walls - sergeant dialogue no longer loops back to its greeting - serde-facing maps are BTreeMap: room JSON and --sample are byte-stable Engine: - sprite-sheet actor views: <name>-sheet<C>x<R>.png slices into C frames x R direction loops (vend-bot now rolls on animated treads) - pixel-accurate click targeting with 1px slop; typed commands click mid-sprite (a feet click lands between an actor's legs) - parser: compass walking (go east / n), 'bye' ends conversations, 'look' lists exits GUI: - hover hot-text: cursor reads the sentence a click would say - death banner + '+N' score toast Tests: full-playthrough regression suite (win path, death rewind, walk-over dialogue, solid-prop footprint) + sheet slicing unit test. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1187 lines
20 KiB
JSON
1187 lines
20 KiB
JSON
{
|
|
"name": "Neon Row",
|
|
"enter_text": "Neon Row at 2 AM. The EAT sign crawls. The precinct door glows across the street.",
|
|
"background": "",
|
|
"ops": [
|
|
{
|
|
"FbmFill": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 320,
|
|
"h": 84,
|
|
"ramp": [
|
|
33,
|
|
33,
|
|
34,
|
|
70,
|
|
77
|
|
],
|
|
"scale": 46.0,
|
|
"octaves": 4,
|
|
"seed": 7,
|
|
"ink": {
|
|
"color": 0,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Scatter": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 320,
|
|
"h": 34,
|
|
"colors": [
|
|
26,
|
|
23,
|
|
15
|
|
],
|
|
"density": 5,
|
|
"seed": 8,
|
|
"ink": {
|
|
"color": 0,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 30,
|
|
"w": 90,
|
|
"h": 78,
|
|
"ink": {
|
|
"color": 76,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 90,
|
|
"y": 44,
|
|
"w": 70,
|
|
"h": 64,
|
|
"ink": {
|
|
"color": 112,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 160,
|
|
"y": 24,
|
|
"w": 100,
|
|
"h": 84,
|
|
"ink": {
|
|
"color": 77,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 260,
|
|
"y": 50,
|
|
"w": 60,
|
|
"h": 58,
|
|
"ink": {
|
|
"color": 119,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 6,
|
|
"y": 38,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 32,
|
|
"y": 38,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 45,
|
|
"y": 38,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 71,
|
|
"y": 38,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 6,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 32,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 45,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 71,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 6,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 32,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 45,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 71,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 6,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 32,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 45,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 71,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 96,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 122,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 135,
|
|
"y": 52,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 96,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 109,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 135,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 148,
|
|
"y": 66,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 109,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 122,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 148,
|
|
"y": 80,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 268,
|
|
"y": 58,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 294,
|
|
"y": 58,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 307,
|
|
"y": 58,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 281,
|
|
"y": 72,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 294,
|
|
"y": 72,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 268,
|
|
"y": 86,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 281,
|
|
"y": 86,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 307,
|
|
"y": 86,
|
|
"w": 6,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 195,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 204,
|
|
"y": 60,
|
|
"w": 38,
|
|
"h": 48,
|
|
"ink": {
|
|
"color": 120,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 210,
|
|
"y": 68,
|
|
"w": 26,
|
|
"h": 40,
|
|
"ink": {
|
|
"color": 76,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 214,
|
|
"y": 56,
|
|
"w": 18,
|
|
"h": 8,
|
|
"ink": {
|
|
"color": 244,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 96,
|
|
"y": 22,
|
|
"w": 4,
|
|
"h": 18,
|
|
"ink": {
|
|
"color": 248,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 100,
|
|
"y": 22,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 249,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 100,
|
|
"y": 30,
|
|
"w": 6,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 250,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 114,
|
|
"y": 22,
|
|
"w": 12,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 251,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 114,
|
|
"y": 30,
|
|
"w": 4,
|
|
"h": 10,
|
|
"ink": {
|
|
"color": 252,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 124,
|
|
"y": 30,
|
|
"w": 4,
|
|
"h": 10,
|
|
"ink": {
|
|
"color": 253,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 116,
|
|
"y": 34,
|
|
"w": 8,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 254,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 134,
|
|
"y": 22,
|
|
"w": 12,
|
|
"h": 4,
|
|
"ink": {
|
|
"color": 255,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 138,
|
|
"y": 26,
|
|
"w": 4,
|
|
"h": 14,
|
|
"ink": {
|
|
"color": 248,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"VoronoiFill": {
|
|
"x": 0,
|
|
"y": 108,
|
|
"w": 320,
|
|
"h": 42,
|
|
"cell": 26,
|
|
"colors": [
|
|
22,
|
|
22,
|
|
21,
|
|
22
|
|
],
|
|
"edge_color": 20,
|
|
"edge": 1.1,
|
|
"seed": 11,
|
|
"ink": {
|
|
"color": 0,
|
|
"pri": "Band",
|
|
"ctl": {
|
|
"Set": 0
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 150,
|
|
"w": 320,
|
|
"h": 3,
|
|
"ink": {
|
|
"color": 24,
|
|
"pri": "Keep",
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"FbmFill": {
|
|
"x": 0,
|
|
"y": 153,
|
|
"w": 320,
|
|
"h": 37,
|
|
"ramp": [
|
|
18,
|
|
19,
|
|
18,
|
|
20
|
|
],
|
|
"scale": 9.0,
|
|
"octaves": 3,
|
|
"seed": 12,
|
|
"ink": {
|
|
"color": 0,
|
|
"pri": "Band",
|
|
"ctl": {
|
|
"Set": 0
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Ellipse": {
|
|
"cx": 60,
|
|
"cy": 166,
|
|
"rx": 26,
|
|
"ry": 6,
|
|
"ink": {
|
|
"color": 77,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 2
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 74,
|
|
"y": 92,
|
|
"w": 4,
|
|
"h": 54,
|
|
"ink": {
|
|
"color": 26,
|
|
"pri": {
|
|
"Set": 12
|
|
},
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 68,
|
|
"y": 86,
|
|
"w": 16,
|
|
"h": 6,
|
|
"ink": {
|
|
"color": 245,
|
|
"pri": {
|
|
"Set": 12
|
|
},
|
|
"ctl": "Keep",
|
|
"hot": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 74,
|
|
"y": 143,
|
|
"w": 4,
|
|
"h": 3,
|
|
"ink": {
|
|
"color": null,
|
|
"pri": "Keep",
|
|
"ctl": {
|
|
"Set": 1
|
|
},
|
|
"hot": null
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"palette": null,
|
|
"cycles": [
|
|
{
|
|
"start": 248,
|
|
"len": 8,
|
|
"period": 3,
|
|
"reverse": false,
|
|
"active": true
|
|
}
|
|
],
|
|
"scale": {
|
|
"horizon_y": 100,
|
|
"min_scale": 0.55,
|
|
"full_y": 185
|
|
},
|
|
"spawn": [
|
|
104,
|
|
168
|
|
],
|
|
"exits": [
|
|
null,
|
|
2,
|
|
null,
|
|
null
|
|
],
|
|
"exit_flags": [
|
|
"",
|
|
"",
|
|
"",
|
|
""
|
|
],
|
|
"exit_blocked": [
|
|
"",
|
|
"",
|
|
"",
|
|
""
|
|
],
|
|
"hotspots": [
|
|
{
|
|
"name": "precinct door",
|
|
"rect": [
|
|
206,
|
|
104,
|
|
34,
|
|
12
|
|
],
|
|
"poly": [],
|
|
"msgs": {
|
|
"look": "The 41st Precinct. Your house."
|
|
},
|
|
"exit_to": 1,
|
|
"arrive": [
|
|
160,
|
|
176
|
|
],
|
|
"requires_flag": "",
|
|
"blocked_text": "",
|
|
"trigger": false,
|
|
"blocks": false
|
|
},
|
|
{
|
|
"name": "neon sign",
|
|
"rect": [
|
|
92,
|
|
18,
|
|
54,
|
|
34
|
|
],
|
|
"poly": [],
|
|
"msgs": {
|
|
"do": "It's four stories up. Even your warrant doesn't reach.",
|
|
"look": "EAT, insists the neon, in colors that never sit still."
|
|
},
|
|
"exit_to": null,
|
|
"arrive": null,
|
|
"requires_flag": "",
|
|
"blocked_text": "",
|
|
"trigger": false,
|
|
"blocks": false
|
|
},
|
|
{
|
|
"name": "puddle",
|
|
"rect": [
|
|
34,
|
|
160,
|
|
52,
|
|
13
|
|
],
|
|
"poly": [],
|
|
"msgs": {
|
|
"do": "You are 900 pounds of municipal robot. The puddle wins.",
|
|
"look": "Neon drowns in the puddle. Your chassis manual is very clear about puddles."
|
|
},
|
|
"exit_to": null,
|
|
"arrive": null,
|
|
"requires_flag": "",
|
|
"blocked_text": "",
|
|
"trigger": false,
|
|
"blocks": false
|
|
},
|
|
{
|
|
"name": "tripwire",
|
|
"rect": [
|
|
120,
|
|
108,
|
|
24,
|
|
82
|
|
],
|
|
"poly": [],
|
|
"msgs": {},
|
|
"exit_to": null,
|
|
"arrive": null,
|
|
"requires_flag": "",
|
|
"blocked_text": "",
|
|
"trigger": true,
|
|
"blocks": false
|
|
}
|
|
],
|
|
"props": [
|
|
{
|
|
"name": "dumpster",
|
|
"sprite": "dumpster",
|
|
"x": 288,
|
|
"y": 148,
|
|
"msgs": {
|
|
"do": "You rummage. Old circuit boards, a single roller skate, regret.",
|
|
"look": "A city dumpster. Something inside is composting on a geological timescale.",
|
|
"smell": "Your olfactory sensor files a grievance."
|
|
},
|
|
"takeable": false,
|
|
"synonyms": "",
|
|
"use_text": "",
|
|
"needs": "",
|
|
"wins": false,
|
|
"requires_flag": "",
|
|
"sets_flag": "",
|
|
"dialogue": [],
|
|
"portrait": "",
|
|
"points": 0,
|
|
"consumes": false,
|
|
"kills": false,
|
|
"visible_flag": "",
|
|
"hidden_by_flag": "",
|
|
"solid": true,
|
|
"fixed_priority": null,
|
|
"fixed_scale": null
|
|
}
|
|
],
|
|
"npcs": [
|
|
{
|
|
"name": "vend-bot",
|
|
"sprite": "vendbot-sheet2x1",
|
|
"x": 150,
|
|
"y": 132,
|
|
"msgs": {
|
|
"look": "A vending robot on tired treads, hawking hot oil."
|
|
},
|
|
"dialogue": [
|
|
{
|
|
"says": "Hot oil! Fresh volts! You look like a cop with questions.",
|
|
"choices": [
|
|
{
|
|
"text": "Seen anything shady tonight?",
|
|
"goto": 1,
|
|
"requires_flag": "",
|
|
"sets_flag": "",
|
|
"points": 0,
|
|
"kills": false
|
|
},
|
|
{
|
|
"text": "Just passing through.",
|
|
"goto": -1,
|
|
"requires_flag": "",
|
|
"sets_flag": "",
|
|
"points": 0,
|
|
"kills": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Somebody ditched a keycard in the alley east of here. Behind the crates. Didn't touch it — bad for business.",
|
|
"choices": [
|
|
{
|
|
"text": "Appreciated, citizen.",
|
|
"goto": -1,
|
|
"requires_flag": "",
|
|
"sets_flag": "",
|
|
"points": 0,
|
|
"kills": false
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"portrait": "vendbot-face",
|
|
"wander": 34,
|
|
"visible_flag": "",
|
|
"hidden_by_flag": "",
|
|
"fixed_scale": null
|
|
}
|
|
],
|
|
"music": 6,
|
|
"weather": 1,
|
|
"defaults": {},
|
|
"script": "room0.rhai"
|
|
} |