policesquadquest/cases/case-01-substantial-gift/rooms/room3.json
type-two 0e2523a8a9 Police Squad Quest: research, design bible, and Case One playable
A Sierra-style adventure in the Police Squad!/Naked Gun universe, on MRPGI —
which reimplements AGI, the engine Sierra shipped Police Quest on.

The premise: Police Quest's pedantic procedure x Police Squad!'s farce. The
game grades you on correct procedure with a straight face, and the reward for
perfect procedure is catastrophe anyway. Per John, the famous Police Quest II
bugs are shipped deliberately as canon gags.

- RESEARCH.md — all six Police Squad! episodes, all four films (incl. Neeson's
  Frank Drebin Jr, 2025), the recurring cast, and the ZAZ comedy grammar.
- DESIGN.md — the joke engine, the two Drebins across three eras (Drebin Sr's
  1982 cases render in a monochrome EGA subset for the 1950s M Squad look),
  an eleven-case campaign, and the PQ2 glitch-to-feature table.
- cases/case-01-substantial-gift — playable. Five rooms, 100 points, full win
  path verified headlessly at 95/100 plus four authored Sierra deaths.
  Procedure gates, dusting for latents, and Miranda rights in the correct
  order are all pure JSON; no engine features were invented for it.
- tools/sprites.py — all 24 sprites generated locally on MODELBEAST
  (flux_local -> bg_remove_local -> trim/downscale), reproducible by seed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 22:11:41 +10:00

73 lines
4.2 KiB
JSON

{
"name": "Police Squad Crime Lab",
"enter_text": "The crime lab. Ted Olson is mid-demonstration. There are, as always, several children present.",
"music": 4,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 60, "color": 8, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 58, "w": 160, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 61, "w": 160, "h": 107, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 10, "y": 10, "w": 30, "h": 38, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 14, "w": 22, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 22, "w": 22, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 30, "w": 22, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 38, "w": 22, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 52, "y": 14, "w": 96, "h": 30, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 56, "y": 18, "w": 40, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 56, "y": 26, "w": 60, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 56, "y": 34, "w": 34, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 84, "w": 160, "h": 5, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 89, "w": 160, "h": 2, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 0, "w": 4, "h": 168, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 156, "y": 0, "w": 4, "h": 168, "color": 0, "meaning": "Wall" } }
],
"spawn": [80, 150],
"exits": [null, null, 1, null],
"objects": [
{
"name": "microscope",
"sprite": "microscope",
"x": 116,
"y": 84,
"look": "A comparison microscope. Two stages, one eyepiece: you put the known print on the left and the unknown print on the right, and the machine does not care whose feelings are involved.",
"synonyms": "scope comparison lens bench",
"needs": "evidence",
"requires_flag": "print_found",
"use_text": "Olson runs your latent against the staff cards. It takes four minutes. Olson: Left stage, staff print. Right stage, your latent off the inside ledge. Same thumb, Frank. Sixteen points of comparison — I stopped counting at sixteen because I got hungry. It's Decker, S. Teller. Eleven years. He adds, without looking up: there's alloy residue in the whorls. Nickel-titanium. You get that off orthodontic wire, if you've been putting your fingers in your mouth. New wire does that. New wire hurts.",
"sets_flag": "print_matched",
"points": 10
},
{
"name": "olson",
"sprite": "olson",
"x": 62,
"y": 96,
"look": "Ted Olson, Police Squad crime lab. He is explaining muzzle velocity to a boy of about nine, using a live weapon and the boy.",
"synonyms": "ted scientist lab technician",
"use_text": "You ask Olson to be careful. He assures you that he is a professional, and hands the flamethrower to a smaller child.",
"dialogue": [
{
"says": "Olson: Frank! Perfect timing — I'm just showing the children what a shotgun does to a ballistics block. Kevin, hold this. No, closer. Closer than that, Kevin.",
"choices": [
{ "text": "I've got a latent for you, Ted.", "goto": 1 },
{ "text": "Should Kevin be holding that?", "goto": 2 },
{ "text": "Whose children are these, Ted?", "goto": 3 }
]
},
{
"says": "Olson: Then bag it on the comparison stage and I'll run it against the staff cards. Everybody who works a counter is printed, Frank. It's the one useful thing about banking.",
"choices": [{ "text": "Right.", "goto": 0 }]
},
{
"says": "Olson: Absolutely not. Kevin is nine. He takes it off Kevin and gives it to a smaller child. Olson: Deborah is eleven.",
"choices": [{ "text": "That's not—", "goto": 0 }]
},
{
"says": "Olson: The public's, Frank. It's a public lab.",
"choices": [{ "text": "Of course it is.", "goto": 0 }]
}
]
}
]
}