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>
262 lines
7.6 KiB
JSON
262 lines
7.6 KiB
JSON
{
|
|
"name": "The Blue Grotto — The Back Room",
|
|
"enter_text": "A card table, six men, and a great deal of somebody's money in a room with one door.",
|
|
"music": 3,
|
|
"strokes": [
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 168,
|
|
"color": 8,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 64,
|
|
"color": 0,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 62,
|
|
"w": 160,
|
|
"h": 3,
|
|
"color": 7,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 65,
|
|
"w": 160,
|
|
"h": 103,
|
|
"color": 8,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 54,
|
|
"y": 4,
|
|
"w": 52,
|
|
"h": 8,
|
|
"color": 7,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 74,
|
|
"y": 12,
|
|
"w": 12,
|
|
"h": 10,
|
|
"color": 15,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 8,
|
|
"y": 20,
|
|
"w": 34,
|
|
"h": 34,
|
|
"color": 7,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 12,
|
|
"y": 24,
|
|
"w": 26,
|
|
"h": 26,
|
|
"color": 0,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 118,
|
|
"y": 20,
|
|
"w": 34,
|
|
"h": 34,
|
|
"color": 7,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 122,
|
|
"y": 24,
|
|
"w": 26,
|
|
"h": 26,
|
|
"color": 0,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Ellipse": {
|
|
"x": 40,
|
|
"y": 104,
|
|
"w": 82,
|
|
"h": 42,
|
|
"color": 7,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Ellipse": {
|
|
"x": 45,
|
|
"y": 109,
|
|
"w": 72,
|
|
"h": 32,
|
|
"color": 0,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 164,
|
|
"w": 160,
|
|
"h": 4,
|
|
"color": 0,
|
|
"meaning": "Wall"
|
|
}
|
|
}
|
|
],
|
|
"spawn": [
|
|
16,
|
|
148
|
|
],
|
|
"exits": [
|
|
null,
|
|
4,
|
|
null,
|
|
2
|
|
],
|
|
"exit_flags": [
|
|
"",
|
|
"knows_supply",
|
|
"",
|
|
""
|
|
],
|
|
"exit_blocked": [
|
|
"",
|
|
"You are in the room. You still do not know what Danny Cavanaugh found in it.",
|
|
"",
|
|
""
|
|
],
|
|
"objects": [
|
|
{
|
|
"name": "sideboard",
|
|
"sprite": "dressingtable",
|
|
"x": 24,
|
|
"y": 124,
|
|
"look": "A sideboard against the wall with a mirror over it, left from when this room was a dressing room. The acts used to change in here. They do not change in here any more.",
|
|
"synonyms": "mirror dresser bulbs",
|
|
"use_text": "You go through the drawers while the table is watching the table. Greasepaint, a comb, and a running order from Tuesday night with one name crossed out and one name written in, in pencil, over the top."
|
|
},
|
|
{
|
|
"name": "trumpet",
|
|
"sprite": "trumpet",
|
|
"x": 138,
|
|
"y": 118,
|
|
"look": "A trumpet on a chair in the corner. The house band gave up an hour ago and left it, because nobody in this room has ever once stolen anything from this room.",
|
|
"synonyms": "horn brass instrument band",
|
|
"use_text": "You pick it up and blow one note, badly, because a man who has just bought into a card game for twenty-five hundred dollars is entitled to be a bit of a fool and it is very good cover."
|
|
},
|
|
{
|
|
"name": "cardtable",
|
|
"sprite": "clubtable",
|
|
"x": 80,
|
|
"y": 130,
|
|
"look": "Six men, a great deal of cash, and a game that has been running since eleven. Nobody has introduced themselves and nobody is going to.",
|
|
"synonyms": "cards game poker table pot money",
|
|
"use_text": "You play four hands badly and one hand extremely well, and you lose eleven hundred dollars of Police Squad's money, which is a figure that will come up at the hearing."
|
|
},
|
|
{
|
|
"name": "book",
|
|
"sprite": "casefile",
|
|
"x": 108,
|
|
"y": 112,
|
|
"look": "The book the barman mentioned. It sits at Grasso's elbow and every man who comes through that door is written in it.",
|
|
"synonyms": "ledger records notebook names",
|
|
"requires_flag": "wallet_wrapped",
|
|
"points": 15,
|
|
"sets_flag": "knows_supply",
|
|
"use_text": "You read it upside down across a card table, which is a thing you can do, and which is the single most useful skill you have. It is not a list of players. The left-hand column is players. The right-hand column is weights — ounces, against surnames, against dates, going back four years. This room is not a card game with a sideline. This room is a distribution point with a card game in front of it, and the card game is what the twenty-five hundred is for: it is not a buy-in, it is a bond. Everybody in this room has posted twenty-five hundred dollars against saying anything about the other column. Danny Cavanaugh had the open spot for two months. Danny Cavanaugh changed in the dressing room until they stopped letting the acts change in the dressing room. Danny Cavanaugh told his ex-wife on Sunday that he had found something that was going to put him back on television."
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"sprite": "owner",
|
|
"x": 62,
|
|
"y": 138,
|
|
"look": "Vincent Grasso. Owns the club, the licence and the building, and has never been arrested for anything at all in fifty-one years, which is not luck.",
|
|
"synonyms": "vincent grasso boss man carnation",
|
|
"dialogue": [
|
|
{
|
|
"says": "Grasso: You're the new spot. Thursday. Grasso: You came in with twenty-five hundred in an envelope and you drink like a man being paid to. I like that. I don't trust it, but I like it.",
|
|
"choices": [
|
|
{
|
|
"text": "I'm here for the cards.",
|
|
"goto": 1
|
|
},
|
|
{
|
|
"text": "Tell me about Danny Cavanaugh.",
|
|
"goto": 2
|
|
},
|
|
{
|
|
"text": "Police Squad. Nobody move.",
|
|
"goto": 4,
|
|
"kills": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Grasso: Everybody's here for the cards. He says it to the room, and the room laughs, and it is the least funny thing anybody has said in this building all week and it gets the biggest laugh.",
|
|
"choices": [
|
|
{
|
|
"text": "Tell me about Danny Cavanaugh.",
|
|
"goto": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Grasso: Danny died on my stage on Tuesday and I have had the police in this club four times since and it is very bad for a room like this. Grasso: Twenty-six years he'd been going. Man that age don't get a heart. Man that age gets tired.",
|
|
"choices": [
|
|
{
|
|
"text": "He had his own glass.",
|
|
"goto": 3
|
|
},
|
|
{
|
|
"text": "Who else was backstage Tuesday?",
|
|
"goto": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "Grasso: Me. And whoever's got the open spot. He looks at you for a while with a great deal of warmth. Grasso: Thursday, that's you.",
|
|
"choices": [
|
|
{
|
|
"text": "Thursday, that's me.",
|
|
"goto": -1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"says": "You identify yourself as Police Squad in a locked room, alone, with six men, no warrant, no backup, and eleven hundred dollars of departmental funds already lost at the table. Officer Nordberg is outside in the car. Officer Nordberg has been outside in the car since nine. Officer Nordberg fell asleep at ten."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |