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>
285 lines
8.0 KiB
JSON
285 lines
8.0 KiB
JSON
{
|
|
"name": "Police Squad HQ — Squad Room",
|
|
"enter_text": "There is a chicken on Captain Hocken's desk. Nobody is discussing the chicken.",
|
|
"music": 3,
|
|
"strokes": [
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 168,
|
|
"color": 7,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 58,
|
|
"color": 8,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 58,
|
|
"w": 160,
|
|
"h": 110,
|
|
"color": 7,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 55,
|
|
"w": 160,
|
|
"h": 3,
|
|
"color": 0,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 100,
|
|
"y": 12,
|
|
"w": 46,
|
|
"h": 32,
|
|
"color": 15,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 122,
|
|
"y": 12,
|
|
"w": 2,
|
|
"h": 32,
|
|
"color": 0,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 100,
|
|
"y": 26,
|
|
"w": 46,
|
|
"h": 2,
|
|
"color": 0,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 14,
|
|
"y": 14,
|
|
"w": 42,
|
|
"h": 30,
|
|
"color": 15,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 18,
|
|
"y": 18,
|
|
"w": 16,
|
|
"h": 3,
|
|
"color": 8,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 18,
|
|
"y": 24,
|
|
"w": 24,
|
|
"h": 3,
|
|
"color": 8,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 18,
|
|
"y": 30,
|
|
"w": 30,
|
|
"h": 3,
|
|
"color": 0,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 18,
|
|
"y": 36,
|
|
"w": 20,
|
|
"h": 3,
|
|
"color": 8,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 5,
|
|
"h": 168,
|
|
"color": 0,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 163,
|
|
"w": 160,
|
|
"h": 5,
|
|
"color": 0,
|
|
"meaning": "Wall"
|
|
}
|
|
}
|
|
],
|
|
"spawn": [
|
|
86,
|
|
148
|
|
],
|
|
"exits": [
|
|
null,
|
|
1,
|
|
null,
|
|
null
|
|
],
|
|
"exit_flags": [
|
|
"",
|
|
"briefed",
|
|
"",
|
|
""
|
|
],
|
|
"exit_blocked": [
|
|
"",
|
|
"You have not been briefed, and you have not signed for an operational float, and one of those two things is going to matter enormously later.",
|
|
"",
|
|
""
|
|
],
|
|
"objects": [
|
|
{
|
|
"name": "chicken",
|
|
"sprite": "chicken",
|
|
"x": 96,
|
|
"y": 108,
|
|
"look": "A live hen, on Captain Hocken's desk, standing on a stack of arrest reports that have been soaked in mace. This is the fourth one this month. There is no investigation. Nobody has opened a file. The Captain moves it onto the floor each morning and works around it, and in eleven years nobody in this building has said the word 'chicken' out loud.",
|
|
"synonyms": "hen bird gremlin fowl prank",
|
|
"points": 5,
|
|
"use_text": "You lift the hen off the reports and put it on the floor, which is what the Captain does, which is what everybody does. The reports are unreadable. Somebody will retype them and nobody will ask. Under the reports, in grease pencil, in a hand nobody recognises, somebody has written: THE GREMLIN. You put the reports back."
|
|
},
|
|
{
|
|
"name": "float",
|
|
"sprite": "float",
|
|
"x": 46,
|
|
"y": 130,
|
|
"look": "The operational float for an undercover assignment: forty dollars in a brown envelope, signed for in triplicate, to be accounted for to the cent on return. Clipped to it is a note from Accounts: ALL FIELD EXPENDITURE IS TRACKED ON THE DEPARTMENT LEDGER SYSTEM. DO NOT EXCEED YOUR FLOAT.",
|
|
"synonyms": "envelope money cash expenses forty dollars",
|
|
"takeable": false,
|
|
"points": 5,
|
|
"sets_flag": "has_float",
|
|
"use_text": "You sign for the float in triplicate: forty dollars, to be accounted for to the cent on return. The clerk stamps all three copies and files two of them, and hands you the envelope and the note from Accounts, which you read twice, because you read everything twice."
|
|
},
|
|
{
|
|
"name": "desk",
|
|
"sprite": "desk",
|
|
"x": 62,
|
|
"y": 142,
|
|
"look": "Your desk. The drawer sticks. On top of it, somebody has left a joke book from the public library, three weeks overdue, with a note from Captain Hocken reading: LEARN SIX.",
|
|
"synonyms": "table jokebook book",
|
|
"use_text": "You read the joke book for an hour. You memorise six jokes. You do not understand any of them, but you have them exactly, word for word, which in your experience is the same thing."
|
|
},
|
|
{
|
|
"name": "al",
|
|
"sprite": "al",
|
|
"x": 80,
|
|
"y": 66,
|
|
"look": "Officer Al. From down here you can see his shoes and the bottom nine inches of him. There is a second chicken on his shoulder. You are taking this on trust.",
|
|
"synonyms": "tall officer legs",
|
|
"use_text": "You shake his hand. You have to jump. Something above you makes a noise like a chicken."
|
|
},
|
|
{
|
|
"name": "guest",
|
|
"sprite": "guest",
|
|
"x": 118,
|
|
"y": 150,
|
|
"look": "This week's television actor, in a dinner jacket, mid-wave, smiling, dead since the opening titles. Nobody has moved him. There is a chicken on him.",
|
|
"synonyms": "star actor man body",
|
|
"use_text": "You check him for a pulse, as procedure requires. There isn't one. You note the time. The chicken does not move."
|
|
},
|
|
{
|
|
"name": "hocken",
|
|
"sprite": "hocken",
|
|
"x": 106,
|
|
"y": 126,
|
|
"look": "Captain Ed Hocken, working around a chicken.",
|
|
"synonyms": "captain ed boss",
|
|
"dialogue": [
|
|
{
|
|
"says": "Hocken: Danny Cavanaugh. Comic. Twenty-six years on the circuit. Died on stage at the Blue Grotto on Tuesday, mid-act, in front of ninety people. Hocken: Coroner says his heart. Frank, the man was forty-one and he swam every morning.",
|
|
"choices": [
|
|
{
|
|
"text": "What was he doing at the Grotto?",
|
|
"goto": 1
|
|
},
|
|
{
|
|
"text": "Who runs the Blue Grotto?",
|
|
"goto": 2
|
|
},
|
|
{
|
|
"text": "Captain, there is a chicken on your desk.",
|
|
"goto": 3
|
|
},
|
|
{
|
|
"text": "I'm signed out and ready, Captain.",
|
|
"goto": 4,
|
|
"requires_flag": "has_float",
|
|
"sets_flag": "briefed",
|
|
"points": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Hocken: Six nights a week for two months, which for a man of twenty-six years' standing is a step down and a half. Hocken: He told his ex-wife on Sunday he'd found something at that club that was going to put him back on television.",
|
|
"choices": [
|
|
{
|
|
"text": "And on Tuesday he died on stage.",
|
|
"goto": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Hocken: A man named Vincent Grasso. Owns the club, owns the liquor licence, owns the building, and has never been arrested for anything at all, ever, which at his age is a statistical impossibility.",
|
|
"choices": [
|
|
{
|
|
"text": "Nobody's that clean.",
|
|
"goto": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Hocken: Yes. He continues the briefing.",
|
|
"choices": [
|
|
{
|
|
"text": "Right.",
|
|
"goto": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Hocken: Good. They've got an open spot Thursday and you're it. Hocken: Frank — you go up there and you die on that stage and you are not getting a second night. That room has one door for the acts and it is the same door as the back room, and a comic nobody laughs at does not get invited through it. Hocken: Learn six jokes. Tell them in order. Do not improvise.",
|
|
"choices": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |