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>
109 lines
6.1 KiB
JSON
109 lines
6.1 KiB
JSON
{
|
|
"name": "Sixth Street",
|
|
"enter_text": "Sixth Street. The city is going about its business, which today includes a homicide.",
|
|
"music": 1,
|
|
"strokes": [
|
|
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "Floor" } },
|
|
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 34, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 6, "y": 8, "w": 46, "h": 44, "color": 8, "meaning": "None" } },
|
|
{ "Rect": { "x": 12, "y": 14, "w": 10, "h": 8, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 28, "y": 14, "w": 10, "h": 8, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 12, "y": 28, "w": 10, "h": 8, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 28, "y": 28, "w": 10, "h": 8, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 108, "y": 4, "w": 48, "h": 48, "color": 8, "meaning": "None" } },
|
|
{ "Rect": { "x": 114, "y": 12, "w": 12, "h": 9, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 134, "y": 12, "w": 12, "h": 9, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 114, "y": 28, "w": 12, "h": 9, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 134, "y": 28, "w": 12, "h": 9, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 0, "y": 52, "w": 160, "h": 2, "color": 0, "meaning": "None" } },
|
|
{ "Rect": { "x": 0, "y": 128, "w": 160, "h": 2, "color": 0, "meaning": "None" } },
|
|
{ "Rect": { "x": 0, "y": 130, "w": 160, "h": 38, "color": 8, "meaning": "None" } },
|
|
{ "Rect": { "x": 14, "y": 147, "w": 18, "h": 3, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 46, "y": 147, "w": 18, "h": 3, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 78, "y": 147, "w": 18, "h": 3, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 110, "y": 147, "w": 18, "h": 3, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 62, "y": 40, "w": 36, "h": 14, "color": 0, "meaning": "None" } },
|
|
{ "Rect": { "x": 66, "y": 44, "w": 28, "h": 2, "color": 15, "meaning": "None" } },
|
|
{ "Rect": { "x": 66, "y": 48, "w": 20, "h": 2, "color": 15, "meaning": "None" } }
|
|
],
|
|
"spawn": [30, 112],
|
|
"exits": [3, 2, 4, 0],
|
|
"objects": [
|
|
{
|
|
"name": "shoeshine",
|
|
"sprite": "shoeshine",
|
|
"x": 30,
|
|
"y": 100,
|
|
"look": "A shoeshine stand, bolted to the pavement outside the credit union. It has been here longer than the credit union.",
|
|
"synonyms": "stand chair box",
|
|
"use_text": "You put a foot up. Johnny goes to work without being asked. Your shoes have never once been dirty."
|
|
},
|
|
{
|
|
"name": "johnny",
|
|
"sprite": "johnny",
|
|
"x": 50,
|
|
"y": 104,
|
|
"look": "Johnny. He works this corner. He knows things. There is no upper bound on the things Johnny knows.",
|
|
"synonyms": "snitch shoeshine informant boy",
|
|
"points": 5,
|
|
"sets_flag": "asked_johnny",
|
|
"use_text": "You put a dollar in Johnny's hand. It disappears so completely that you briefly doubt you had a dollar.",
|
|
"dialogue": [
|
|
{
|
|
"says": "Johnny: Detective. Sixth Street Credit Union. Manager's dead and you've got the wrong man in a cell.",
|
|
"choices": [
|
|
{ "text": "What do you know about the teller?", "goto": 1 },
|
|
{ "text": "What do you know about the customer?", "goto": 2 },
|
|
{ "text": "What do you know about orthodontics?", "goto": 3 },
|
|
{ "text": "What do you know about the money supply?", "goto": 4 },
|
|
{ "text": "Thanks, Johnny.", "goto": -1 }
|
|
]
|
|
},
|
|
{
|
|
"says": "Johnny: Decker. Sally Decker. Eleven years behind that window. Asked the manager for an advance three weeks ago. Got told no. Been smiling with her mouth closed ever since.",
|
|
"choices": [{ "text": "Closed?", "goto": 5 }]
|
|
},
|
|
{
|
|
"says": "Johnny: Skalany. Sells industrial flooring. Cries at commercials. Couldn't shoot a man if the man asked him to.",
|
|
"choices": [{ "text": "Anything else?", "goto": 0 }]
|
|
},
|
|
{
|
|
"says": "Johnny: Fixed appliances run three to five thousand dollars, Detective, and insurance won't touch an adult. Eighteen to thirty months in the wire. The archwire's what costs — it's a nickel-titanium alloy, memory metal, developed for the space programme. Folks pay for the space programme twice: once in taxes, once in the mouth.",
|
|
"choices": [
|
|
{ "text": "Three to five thousand.", "goto": 6 },
|
|
{ "text": "How do you know that, Johnny?", "goto": 7 }
|
|
]
|
|
},
|
|
{
|
|
"says": "Johnny: M1's been growing five and a quarter percent annualised, which the Board will tell you is disinflationary and which I will tell you is a man with his thumb on a scale describing the scale. Watch the velocity, Detective. Velocity never lies.",
|
|
"choices": [
|
|
{ "text": "Velocity never lies.", "goto": 0 },
|
|
{ "text": "How do you know that, Johnny?", "goto": 7 }
|
|
]
|
|
},
|
|
{
|
|
"says": "Johnny: Closed. Eleven years of open, then three weeks of closed. A woman doesn't change her whole face for nothing.",
|
|
"choices": [{ "text": "No. She doesn't.", "goto": 0 }]
|
|
},
|
|
{
|
|
"says": "Johnny: Three to five. And a fella's got to get it somewhere. He goes back to the shoe. A queue has formed behind you. The man at the front is holding a set of blueprints and looks like he needs them explained.",
|
|
"choices": [{ "text": "Somewhere.", "goto": 0 }]
|
|
},
|
|
{
|
|
"says": "Johnny: I shine shoes, Detective.",
|
|
"choices": [{ "text": "Right.", "goto": 0 }]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "squadcar",
|
|
"sprite": "squadcar",
|
|
"x": 112,
|
|
"y": 158,
|
|
"look": "Your unit. Regulations require a walk-around inspection before operating a department vehicle. You walk around it. It is still there.",
|
|
"synonyms": "car unit cruiser vehicle patrol",
|
|
"use_text": "The doors are locked. The keys are locked inside, on the seat, in plain view, behind your own reflection. Regulations require that you secure the vehicle. The vehicle is extremely secure."
|
|
}
|
|
]
|
|
}
|