Act I, monochrome. Five rooms, 100 points, verified at 100/100 with four verified deaths. Built out of John's Police Quest material. PQ1's famous 8-bit integer underflow is not an easter egg here, it is the central puzzle: Frank signs for a $40 operational float clipped to a note reading DO NOT EXCEED YOUR FLOAT, the back room costs $2,500, and exceeding the float by one dollar wraps the department ledger's eight-bit field to 255 — the terminal appends the cents column and authorises $2,550.00. He keeps drinking to 132 because it will not do to stop suddenly. Accounts raise it in March; it goes to a hearing. PQ1's Gremlin runs through the whole case and is never resolved: chickens on the Captain's desk, on Al's shoulder, on the murdered guest star, and one in the winning freeze-frame. Nobody has said the word "chicken" out loud in eleven years. No file was ever opened. Then the stage: six memorised jokes, in order, and every "improvise" option is fatal — plus a full glass on a stool three feet from the microphone, which is how Danny Cavanaugh died and which you must not touch. Linter gained the rule that actually caused this session's bug: MRPGI's obj_matches is a BIDIRECTIONAL substring test over name AND synonyms, and match_obj takes the first hit in array order, so an earlier object can make a later one unreachable by its own name. `talk barman` was addressing `clubbar`. It found two more: `sideboard` swallowing `cardtable`, and `bouncer` swallowing `bunkerdoor` — the last of which shipped broken in Case Ten. All six cases lint clean and all six still win. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
80 lines
4.9 KiB
JSON
80 lines
4.9 KiB
JSON
{
|
|
"name": "Police Squad Crime Lab",
|
|
"enter_text": "Ted Olson is demonstrating something to a group of schoolchildren. The something is a corpse.",
|
|
"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": 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": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
|
|
],
|
|
"spawn": [22, 148],
|
|
"exits": [null, 2, null, 0],
|
|
"exit_flags": ["", "knows_poison", "", ""],
|
|
"exit_blocked": ["", "You do not yet know what killed him, and a man who walks into that club not knowing is a man asking the wrong questions.", "", ""],
|
|
"objects": [
|
|
{
|
|
"name": "body",
|
|
"sprite": "body",
|
|
"x": 92,
|
|
"y": 148,
|
|
"look": "Danny Cavanaugh, forty-one, twenty-six years on the circuit. He swam every morning. He went down in the middle of a joke he had been telling for nineteen years.",
|
|
"synonyms": "danny cavanaugh comedian corpse deceased sheet",
|
|
"use_text": "You examine him. No wounds, no marks, no needle sites, nothing in the mouth or throat. Nothing at all, which for a man of forty-one who swam every morning is itself the finding."
|
|
},
|
|
{
|
|
"name": "microscope",
|
|
"sprite": "microscope",
|
|
"x": 116,
|
|
"y": 84,
|
|
"look": "The comparison scope, and beside it a rack of tubes labelled in Olson's handwriting: STOMACH, BLOOD, LIVER, GLASS.",
|
|
"synonyms": "scope lens bench tubes samples",
|
|
"points": 15,
|
|
"sets_flag": "knows_poison",
|
|
"use_text": "Olson runs the tubes. Olson: Stomach's clean. Blood's clean. Liver's clean. Olson: The glass isn't. He turns the scope toward you. On the rim of a shot glass carried in from the Blue Grotto in an evidence bag is a residue that is not whiskey and is not lipstick. Olson: Cardiac glycoside. Plant extract. Enough to stop a horse and no taste at all in eighty proof. Olson: Frank, whoever did this put it on the glass, not in the drink. You'd have to know exactly which glass a specific man was going to pick up. A comedian has one glass. It stands on a stool by the microphone and it is put there before he goes on and nobody touches it, ever, because it is his."
|
|
},
|
|
{
|
|
"name": "olson",
|
|
"sprite": "olson",
|
|
"x": 58,
|
|
"y": 100,
|
|
"look": "Ted Olson, Police Squad crime lab, explaining lividity to a school party from Our Lady of Perpetual Sorrow. He is using a real one.",
|
|
"synonyms": "ted scientist lab technician",
|
|
"use_text": "You suggest the children might wait outside. Olson explains that they are learning, and hands the smallest one a liver.",
|
|
"dialogue": [
|
|
{
|
|
"says": "Olson: Frank! You're just in time — I'm showing the children what happens to a man's blood when he stops using it. Deborah, hold the tray level.",
|
|
"choices": [
|
|
{ "text": "What killed him, Ted?", "goto": 1 },
|
|
{ "text": "Should Deborah be holding that?", "goto": 2 },
|
|
{ "text": "Was there a glass with him?", "goto": 3 }
|
|
]
|
|
},
|
|
{
|
|
"says": "Olson: Not his heart, I'll tell you that for nothing. Run the tubes on the scope and I'll show you.",
|
|
"choices": [{ "text": "Run them.", "goto": 0 }]
|
|
},
|
|
{
|
|
"says": "Olson: Deborah is eleven, Frank. She's the eldest. He takes it off Deborah and gives it to a smaller child.",
|
|
"choices": [{ "text": "That isn't—", "goto": 0 }]
|
|
},
|
|
{
|
|
"says": "Olson: One glass, on a stool, three feet from where he went down. The club had already washed the bar glasses by the time the uniforms arrived. They hadn't washed his, because his wasn't a bar glass. Olson: Somebody in that building knew that.",
|
|
"choices": [{ "text": "Somebody in that building knew that.", "goto": 0 }]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|