policesquadquest/cases/case-06-testimony-of-evil/rooms/room1.json
type-two 72815f8c55 Case Six: Testimony of Evil — the whiskey exploit is the puzzle
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>
2026-07-25 23:11:22 +10:00

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 }]
}
]
}
]
}