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>
73 lines
4.2 KiB
JSON
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 }]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|