Case Ten: The P.L.O.T. Device (2025) — Drebin Jr, and the owl

Act III, cold-palette EGA. Six rooms, 100 points, verified end-to-end
headlessly at 100/100 with the win firing.

The homage John asked for is a register, not a costume. Nielsen played Drebin Sr
oblivious — the joke was he never noticed. Neeson plays Jr sincere: he notices
everything and means all of it, so his text is written straight and often
genuinely moving, and the comedy is what it turns out to be about. He gives a
Taken speech about his particular set of skills, chief among them paperwork. He
takes four armed robbers in eleven seconds dressed as a schoolgirl with his back
to the actual crime. Cane gets the same sincerity back at him from the wrong
face.

The three-era payoff pays off: the owl sprite is generated monochrome and placed
in a full-colour room, so Frank Drebin Sr is visibly lit by a different decade
than everything around him. The palette rule from DESIGN §2 doing the emotional
work at the climax.

Planned cases 10 and 11 merged into one folder — same film, same cast, no
duplicated sprite set, and the owl payoff lands in the same case as its setup.

Third authoring trap documented: sets_flag fires on use, never on take (points
does both). A takeable item silently failed to set its flag and the gate it fed
never opened; gate on `needs`, which checks inventory, instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
type-two 2026-07-25 22:39:00 +10:00
parent 34c1f18335
commit e95360a1b2
34 changed files with 881 additions and 4 deletions

View File

@ -159,8 +159,10 @@ in the title card** — a real object in the room whose only purpose is to die.
| # | Case | From | Hook |
|---|------|------|------|
| 10 | **The P.L.O.T. Device** | *Naked Gun* (2025) | Open in the schoolgirl disguise during the bank robbery — you're the distraction and don't know it. Investigate Simon Davenport's "suicide" with Beth. Richard Cane's bunker plan. Police Squad is decommissioned mid-game and your badge stops opening doors. |
| 11 | **Ponzi-scheme.com Arena** | *Naked Gun* (2025) finale | New Year's ball drop. You lose your trousers retrieving the device — and the game keeps scoring you on uniform regulations. **Frank Drebin Sr arrives as an owl**: Act I's monochrome palette flies into Act III's colour one. |
| 10 | **The P.L.O.T. Device** | *Naked Gun* (2025) | **BUILT — see §8.** The whole film in one case: the bank cold open, Simon Davenport's "suicide", Richard Cane, and the New Year's ball drop where **Frank Drebin Sr arrives as an owl**. |
*(Originally planned as two cases; merged into one folder — same film, same cast,
no duplicated sprite set, and the owl payoff lands in the same case as its setup.)*
### The prologue — "1958"
@ -252,7 +254,47 @@ hour before it is needed.
---
## 8. The glitches are canon
## 8. Case Ten — Drebin Jr, and the owl
**`cases/case-10-plot-device/`** — Act III, cold-palette EGA. Six rooms, 100 points.
Bank → Police Squad → the morgue → Mulholland → Cane's club → the arena.
**The Neeson homage is a register, not a costume.** Nielsen played Drebin Sr
*oblivious* — the joke was that he never noticed. Neeson plays Drebin Jr
**sincere** — he notices everything and means all of it, completely, at all
times. So Jr's text is written straight and often genuinely moving, and the
comedy is the collision with what it's about:
- He gives a *Taken* speech about his particular set of skills. Chief among
them is paperwork.
- He takes four armed robbers in eleven seconds without drawing his weapon,
which is the finest work of his career, and he does it dressed as a
schoolgirl, with his back to the actual crime.
- He tells Beth he's sorry for her loss and **means it**, and that turns out to
be the only useful thing in the room.
- The villain gets the same sincerity back at him from the wrong face:
*"I'm not going to hurt anybody. I'm going to make it quiet."*
**The three-era payoff.** Act I is monochrome, Act III is cold blue. The owl
sprite is generated **monochrome** and placed in a full-colour room, so Frank
Drebin Sr is visibly lit by a different decade than everything around him —
the palette rule from §2 doing the emotional work at the climax. `look owl`
before the finale is the quietest text in the game. `use owl` is two words.
**Also in:** the hot dog cart that has always been in the bank and which he has
never once asked about; the animated paperclip assistant; the trousers, which
he retrieves with enormous dignity because standards are not a thing you keep
only when they are being counted.
**Third authoring trap (add to the §7 list):** `sets_flag` fires on **use**,
never on **take**`points` does both. A takeable item that was supposed to
set a flag silently didn't, and the gate it fed never opened. Gate on `needs`
(which checks inventory) instead of inventing a flag for "is carrying it".
---
## 9. The glitches are canon
*Police Quest II* shipped with bugs that are, without alteration, Naked Gun
jokes. A player who has never heard of Sierra reads them as Drebin being Drebin;
@ -277,7 +319,7 @@ the game is behaving exactly as documented.
---
## 9. Art pipeline
## 10. Art pipeline
`tools/sprites.py <case>` reads that case's `sprites.json` and generates every
missing sprite on the **MODELBEAST** farm (free, local, m3ultra):

View File

@ -32,6 +32,7 @@ cargo run -p mrpgi --manifest-path ~/Documents/MRPGI/Cargo.toml -- --game cases/
|---|---|
| `cases/case-01-substantial-gift/` | **Case One — playable, 100 points.** Drebin Sr, 1982, monochrome. Five rooms. |
| `cases/case-07-from-the-files/` | **Case Seven — playable, 100 points.** Drebin Sr, 1988, full colour. Six rooms, the Anaheim Stadium finale. |
| `cases/case-10-plot-device/` | **Case Ten — playable, 100 points.** Drebin Jr (Neeson), 2025, cold palette. Six rooms, the arena finale and the owl. |
| `tools/sprites.py` | Generates every sprite on the MODELBEAST farm (free, local). |
| `RESEARCH.md` / `DESIGN.md` | Source research and the campaign bible. |
@ -58,6 +59,17 @@ plate, inspect the mitt, check the bat for pine tar — until you reach Number 4
Announce yourself as police instead and sixty thousand people come over the
railings.
## Case Ten — The P.L.O.T. Device
*The Naked Gun* (2025). Liam Neeson's Frank Drebin Jr. — played **sincere** where
his father was oblivious. He means everything he says, all the time, and that is
both the joke and, eventually, the thing that saves the city.
Bank cold open (you are the distraction and don't know it) → a suicide that
isn't → Richard Cane → a New Year's ball drop, a pair of lost trousers, and a
barn owl in a 1950s hat who is lit by a different decade than everything around
him.
## Regenerating art
Sprites are generated locally on MODELBEAST (`flux_local` → `bg_remove_local`

View File

@ -0,0 +1,24 @@
{
"name": "Police Squad Quest — Case Ten: The P.L.O.T. Device",
"start_room": 0,
"max_score": 100,
"intro_text": "My father was a police officer. His father was a police officer. I have a very particular set of skills — skills I have acquired over a very long career, skills that make me a nightmare for people like you. Chief among them is paperwork. My name is Frank Drebin Jr., Police Squad, and today I am dressed as a schoolgirl for reasons that will become clear to absolutely no one. Type 'help'.",
"death_text": "† OFFICER DOWN. Somewhere, an owl is disappointed. The day restarts. †",
"verbs": [
{ "name": "use", "words": ["frisk", "search", "inspect", "cuff", "arrest", "wear", "radio", "halt", "hack", "scan", "deploy", "punch"] },
{ "name": "look", "words": ["investigate", "observe", "detect"] },
{ "name": "talk", "words": ["interrogate", "question", "brief"] }
],
"flags": {
"disguised": false,
"knows_theft": false,
"assigned": false,
"knows_murder": false,
"beth_helping": false,
"has_matchbook": false,
"knows_logo": false,
"decommissioned": false,
"knows_plan": false,
"shielded": false
}
}

View File

@ -0,0 +1,73 @@
{
"name": "First Federal Savings — Banking Hall",
"enter_text": "Four armed men. Thirty hostages. One detective in a pinafore.",
"music": 3,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 8, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 60, "color": 1, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 58, "w": 160, "h": 3, "color": 11, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 61, "w": 160, "h": 107, "color": 8, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 96, "w": 160, "h": 1, "color": 7, "meaning": "None" } },
{ "Rect": { "x": 96, "y": 8, "w": 56, "h": 44, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 100, "y": 12, "w": 48, "h": 3, "color": 11, "meaning": "None" } },
{ "Rect": { "x": 100, "y": 20, "w": 32, "h": 3, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 100, "y": 28, "w": 40, "h": 3, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 100, "y": 36, "w": 24, "h": 3, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 10, "y": 10, "w": 46, "h": 34, "color": 9, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 14, "w": 38, "h": 26, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 20, "y": 20, "w": 26, "h": 6, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 20, "y": 30, "w": 18, "h": 4, "color": 11, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 0, "w": 4, "h": 168, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [24, 140],
"exits": [null, 1, null, null],
"exit_flags": ["", "knows_theft", "", ""],
"exit_blocked": ["", "Something happened in this bank that was not the robbery. Find out what.", "", ""],
"objects": [
{
"name": "wig",
"sprite": "wig",
"x": 34,
"y": 122,
"look": "A blonde wig with two pigtails and red ribbons. Requisition 4471-B: ONE (1) SCHOOLGIRL, COMPLETE. The requisition was approved. Somebody in this department approved this.",
"synonyms": "disguise pigtails hair costume",
"takeable": true,
"points": 5,
"sets_flag": "disguised",
"use_text": "You put on the wig."
},
{
"name": "robbers",
"sprite": "gustafson",
"x": 118,
"y": 124,
"look": "Four men in ski masks, none of whom have looked at the fifty-eight-year-old schoolgirl standing by the paying-in desks, because nobody looks directly at anything they cannot explain.",
"synonyms": "men robbers masks gunmen crew",
"requires_flag": "disguised",
"sets_flag": "robbers_down",
"use_text": "You take all four of them in eleven seconds without drawing your weapon, which is the finest work of your career, and which not one person in this bank will ever describe accurately. There is applause. Somebody is crying. You are still wearing the pigtails, and you will be wearing them for the rest of the afternoon, because taking them off now would be an admission."
},
{
"name": "depositbox",
"sprite": "depositbox",
"x": 112,
"y": 96,
"look": "A wall of safe deposit boxes. One of them — 1147 — is hanging open, and it is empty, and it has been open the entire time you were doing the finest work of your career forty feet away with your back to it.",
"synonyms": "boxes vault deposit safe 1147 wall",
"requires_flag": "robbers_down",
"points": 10,
"sets_flag": "knows_theft",
"use_text": "Box 1147. Leased to a research firm. The lock was not forced — it was opened, correctly, with a key, at 11:04, which is the exact minute four men in ski masks walked into this bank shouting. Nobody robs a bank at eleven in the morning. Eleven in the morning is when the bank is fullest, the alarms are hottest, and the police response is nine minutes. You do not rob a bank at eleven in the morning. You rob a bank at eleven in the morning when you need everybody in the building, including the police, looking hard at something else."
},
{
"name": "hotdogcart",
"sprite": "hotdogcart",
"x": 62,
"y": 148,
"look": "A hot dog cart. Inside a bank. You have been coming to this branch for nine years and it has always been here and you have never once asked, because some things you leave alone.",
"synonyms": "cart food stand vendor",
"use_text": "You buy a hot dog. It is, and you say this as a man who has eaten in forty countries, the finest hot dog you have ever had in your life. You will think about it on your deathbed. The vendor will never know."
}
]
}

View File

@ -0,0 +1,101 @@
{
"name": "Police Squad — Downtown Division",
"enter_text": "Open plan. Standing desks. A wellness poster. Your father would have set fire to this room.",
"music": 1,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 58, "color": 9, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 56, "w": 160, "h": 3, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 59, "w": 160, "h": 109, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 8, "y": 8, "w": 42, "h": 40, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 12, "y": 12, "w": 34, "h": 4, "color": 4, "meaning": "None" } },
{ "Rect": { "x": 12, "y": 20, "w": 26, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 12, "y": 27, "w": 30, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 12, "y": 34, "w": 22, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 62, "y": 12, "w": 36, "h": 26, "color": 11, "meaning": "None" } },
{ "Rect": { "x": 68, "y": 20, "w": 24, "h": 10, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 110, "y": 8, "w": 42, "h": 42, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 114, "y": 12, "w": 34, "h": 34, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 120, "y": 20, "w": 22, "h": 4, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 120, "y": 30, "w": 16, "h": 4, "color": 11, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [20, 140],
"exits": [null, 2, null, 0],
"exit_flags": ["", "assigned", "", ""],
"exit_blocked": ["", "You have not been assigned anything. You have, in fact, been un-assigned, and the Chief is not finished.", "", ""],
"objects": [
{
"name": "davis",
"sprite": "davis",
"x": 104,
"y": 120,
"look": "Chief Davis. She has read every incident report you have ever filed, which is a burden no one should carry.",
"synonyms": "chief boss commander woman",
"dialogue": [
{
"says": "Davis: Drebin. Thirty hostages, four suspects, zero shots fired. The Mayor called to congratulate me. She does not look congratulated.",
"choices": [
{ "text": "Just doing the job, Chief.", "goto": 1 },
{ "text": "Something else happened in that bank.", "goto": 2 },
{ "text": "Permission to keep the wig, Chief.", "goto": 3 }
]
},
{
"says": "Davis: The job. Drebin, this department is carrying eleven million dollars of civil liability with your name on it. Do you know what a schoolgirl costume does to a deposition?",
"choices": [{ "text": "Establishes rapport?", "goto": 2 }]
},
{
"says": "Davis: Box 1147. I saw the report. She slides a folder across. Davis: Simon Davenport. Software engineer, thirty-four, drove off Mulholland at two in the morning. Coroner says suicide. It is a suicide, Drebin. I am giving you a suicide because a suicide has no suspects, no press, and nothing you can set on fire.",
"choices": [
{ "text": "Understood, Chief.", "goto": 4, "sets_flag": "assigned", "points": 10 },
{ "text": "And if it isn't a suicide?", "goto": 5 }
]
},
{
"says": "Davis: No.",
"choices": [{ "text": "Understood.", "goto": 0 }]
},
{
"says": "Davis: Take Hocken. And Drebin — a suicide. Say it back to me. You say it back to her. You say it with total sincerity, because you mean it, because you always mean everything, and that is precisely the problem.",
"choices": []
},
{
"says": "Davis: Then it will be a suicide with a great deal more paperwork, and I will still be the one signing it.",
"choices": [{ "text": "Understood, Chief.", "goto": 4, "sets_flag": "assigned", "points": 10 }]
}
]
},
{
"name": "hockenjr",
"sprite": "hockenjr",
"x": 46,
"y": 132,
"look": "Captain Ed Hocken Jr. His father rode with your father for twenty-two years. He is the single kindest man in this building and he has a photograph of you on his desk that you have never asked about.",
"synonyms": "hocken ed captain partner",
"use_text": "You put a hand on his shoulder. He beams. You do not say anything, because there is nothing to say, and because Hocken Jr. has never in his life required anyone to say anything.",
"dialogue": [
{
"says": "Hocken Jr.: Frank! Great collar. Really great. My dad used to say your dad could take a room in eleven seconds and you did it in eleven seconds and I timed it, Frank, I actually timed it.",
"choices": [
{ "text": "Your father was a good police officer, Ed.", "goto": 1 },
{ "text": "What do we know about Davenport?", "goto": 2 },
{ "text": "Did anyone look at box 1147?", "goto": 3 }
]
},
{
"says": "Hocken Jr.: He was. He really was. There is a silence. Neither of you fills it. It is the best conversation either of you will have this week.",
"choices": [{ "text": "Yeah.", "goto": 0 }]
},
{
"says": "Hocken Jr.: Thirty-four, no history, no note. Car went through the barrier at Mulholland doing about sixty. Coroner ruled it in four hours, Frank. Four hours. My uncle's cat took nine.",
"choices": [{ "text": "Four hours is fast.", "goto": 0 }]
},
{
"says": "Hocken Jr.: Nobody's looked at anything, Frank. It's a suicide. There's a form. He shows you the form. There is a box on the form marked OTHER and it has never been ticked by anybody, ever, in the history of the form.",
"choices": [{ "text": "Somebody should tick it.", "goto": 0 }]
}
]
}
]
}

View File

@ -0,0 +1,97 @@
{
"name": "County Medical Examiner — Bay 3",
"enter_text": "Cold room. Strip light. The quietest place in the city and the only one that has never once lied to you.",
"music": 2,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 62, "color": 11, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 60, "w": 160, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 63, "w": 160, "h": 105, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 10, "y": 8, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 44, "y": 8, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 78, "y": 8, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 10, "y": 32, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 44, "y": 32, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 78, "y": 32, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 22, "y": 16, "w": 6, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 56, "y": 16, "w": 6, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 90, "y": 16, "w": 6, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 22, "y": 40, "w": 6, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 56, "y": 40, "w": 6, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 90, "y": 40, "w": 6, "h": 4, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 120, "y": 10, "w": 30, "h": 42, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 124, "y": 14, "w": 22, "h": 3, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 124, "y": 22, "w": 16, "h": 3, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [18, 140],
"exits": [null, 3, null, 1],
"exit_flags": ["", "beth_helping", "", ""],
"exit_blocked": ["", "His sister is standing right there and she has not stopped looking at you since you walked in.", "", ""],
"objects": [
{
"name": "morguetable",
"sprite": "morguetable",
"x": 74,
"y": 132,
"look": "Simon Davenport, thirty-four. Software engineer. He had a sister, a lease, and a gym membership he used twice.",
"synonyms": "body simon davenport table corpse sheet",
"points": 10,
"sets_flag": "knows_murder",
"use_text": "You examine him, because somebody should, and because four hours is not long enough to know a thing about a man. The steering column injuries are wrong. A man who drives off Mulholland at sixty grips the wheel — it is the last thing he does, it is involuntary, every one of them does it. Simon Davenport's hands are unmarked. His hands were not on the wheel. Somebody else's weren't either."
},
{
"name": "beth",
"sprite": "beth",
"x": 34,
"y": 128,
"look": "Beth Davenport. She writes crime novels — eleven of them, and you have read all eleven, and you are not going to mention that.",
"synonyms": "davenport sister woman writer author",
"use_text": "You offer her your handkerchief. It is a real handkerchief, cotton, ironed, because your father carried one and so do you. She looks at it for a long moment as though she has not seen one in twenty years, which she has not.",
"dialogue": [
{
"says": "Beth: You're the detective. They said a detective was coming four hours ago and then they said the case was closed.",
"choices": [
{ "text": "I'm sorry for your loss, Miss Davenport.", "goto": 1 },
{ "text": "Did your brother own a safe deposit box?", "goto": 2 },
{ "text": "I've read all eleven of your novels.", "goto": 3 }
]
},
{
"says": "Beth: Everyone has said that today. You're the first one who meant it. She is right. You did mean it. You mean everything, all the time, and it has cost you three marriages and it is about to be the only useful thing in this room.",
"choices": [{ "text": "Tell me about your brother.", "goto": 2 }]
},
{
"says": "Beth: Box 1147, First Federal. He put something in it in March and he stopped sleeping in April. He called me at one in the morning nine days ago and said — and I wrote it down, Detective, because I write everything down — he said 'if they finish it, nobody will be able to tell anybody anything ever again.'",
"choices": [
{ "text": "That box was emptied yesterday at eleven o'clock.", "goto": 4 },
{ "text": "Who is 'they'?", "goto": 5 }
]
},
{
"says": "Beth: ...All eleven.",
"choices": [{ "text": "The fourth one is the best one.", "goto": 6 }]
},
{
"says": "Beth: While you were in the building.",
"choices": [{ "text": "While I was in the building.", "goto": 5 }]
},
{
"says": "Beth: He wouldn't say. He said the safest thing I could do was not know. Which is exactly what a man says to his sister nine days before he drives off Mulholland with his hands in his lap. She picks up her bag. Beth: I'm coming with you.",
"choices": [
{ "text": "That would be against regulations, Miss Davenport.", "goto": 7 },
{ "text": "Yes. You are.", "goto": 7, "sets_flag": "beth_helping", "points": 10 }
]
},
{
"says": "Beth: It is the best one. Nobody says that. Everybody says the seventh. Something in the room changes temperature by about one degree.",
"choices": [{ "text": "The seventh is fine.", "goto": 0 }]
},
{
"says": "Beth: I'm coming with you. She is already at the door. In fairness, so is the entire rest of this case.",
"choices": [{ "text": "Then let's go.", "goto": -1, "sets_flag": "beth_helping", "points": 10 }]
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"name": "Mulholland Drive — Barrier at Mile 4",
"enter_text": "Night. Two hundred feet of nothing on the left. Somebody came off here doing sixty and the tyre marks are wrong.",
"music": 2,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 8, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 46, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 6, "y": 10, "w": 2, "h": 2, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 30, "y": 6, "w": 2, "h": 2, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 54, "y": 14, "w": 2, "h": 2, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 88, "y": 8, "w": 2, "h": 2, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 118, "y": 16, "w": 2, "h": 2, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 142, "y": 6, "w": 2, "h": 2, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 30, "w": 160, "h": 16, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 8, "y": 34, "w": 4, "h": 4, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 24, "y": 36, "w": 4, "h": 4, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 48, "y": 33, "w": 4, "h": 4, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 96, "y": 37, "w": 4, "h": 4, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 130, "y": 34, "w": 4, "h": 4, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 46, "w": 160, "h": 4, "color": 7, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 50, "w": 160, "h": 118, "color": 8, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 104, "w": 160, "h": 3, "color": 14, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 62, "w": 160, "h": 3, "color": 7, "meaning": "None" } },
{ "Rect": { "x": 40, "y": 62, "w": 26, "h": 3, "color": 4, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [18, 140],
"exits": [null, 4, null, 2],
"exit_flags": ["", "knows_logo", "", ""],
"exit_blocked": ["", "You have a matchbook and no idea where it came from. Find out where it came from.", "", ""],
"objects": [
{
"name": "crashcar",
"sprite": "crashcar",
"x": 54,
"y": 92,
"look": "Simon Davenport's car, still where it stopped. Silver, electric, four years old, immaculate service history. A careful man's car.",
"synonyms": "car wreck vehicle saloon barrier",
"use_text": "You go over it properly, which nobody has, because it took the coroner four hours to decide there was nothing to go over. The driver's seat is set for a man about six feet two. Simon Davenport was five feet eight. Somebody drove this car who was not Simon Davenport, and then somebody put Simon Davenport in it.",
"sets_flag": "seat_wrong"
},
{
"name": "matchbook",
"sprite": "matchbook",
"x": 88,
"y": 122,
"look": "A black matchbook, thrown clear, lying twenty feet from the barrier in wet grass. No name on it. Just a logo: a cyan circle, broken at the top.",
"synonyms": "matches book logo cover",
"takeable": true,
"points": 5
},
{
"name": "laptop",
"sprite": "laptop",
"x": 122,
"y": 130,
"look": "Simon's laptop, in the footwell, screen cracked, still running on battery nine days later because a careful man buys the model with the good battery.",
"synonyms": "computer machine notebook screen",
"needs": "matchbook",
"points": 10,
"sets_flag": "knows_logo",
"use_text": "Beth reads over your shoulder. The last thing Simon Davenport did was draft an email he never sent, to a journalist, and the last thing in the draft is a single line: 'It isn't a weapon. It's the opposite of a weapon. It takes away the part of us that argues.' Attached is a photograph of a launch party. On the back wall of the photograph, forty feet high, is a cyan circle, broken at the top. Beth: I know that logo. Everyone knows that logo. That's Cane."
}
]
}

View File

@ -0,0 +1,113 @@
{
"name": "THE BROKEN CIRCLE — Members Only",
"enter_text": "Cyan light, no windows, and eleven people who have each been individually more expensive than this building.",
"music": 5,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 0, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 64, "color": 0, "meaning": "Wall" } },
{ "Ellipse": { "x": 56, "y": 6, "w": 48, "h": 44, "color": 11, "meaning": "None" } },
{ "Ellipse": { "x": 62, "y": 12, "w": 36, "h": 32, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 68, "y": 4, "w": 24, "h": 10, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 62, "w": 160, "h": 3, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 65, "w": 160, "h": 103, "color": 0, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 96, "w": 160, "h": 1, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 130, "w": 160, "h": 1, "color": 1, "meaning": "None" } },
{ "Rect": { "x": 8, "y": 14, "w": 6, "h": 40, "color": 13, "meaning": "None" } },
{ "Rect": { "x": 22, "y": 22, "w": 6, "h": 32, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 132, "y": 14, "w": 6, "h": 40, "color": 13, "meaning": "None" } },
{ "Rect": { "x": 146, "y": 22, "w": 6, "h": 32, "color": 3, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [16, 148],
"exits": [null, 5, null, 3],
"exit_flags": ["", "knows_plan", "", ""],
"exit_blocked": ["", "You know who. You do not know when or where, and there are nine hours left of this year.", "", ""],
"objects": [
{
"name": "bouncer",
"sprite": "bouncer",
"x": 34,
"y": 116,
"look": "The door. Two hundred and forty pounds of it, with an earpiece and a list, and your name has never been on any list.",
"synonyms": "door doorman security guard",
"needs": "matchbook",
"use_text": "You show him the matchbook. He looks at it, then at you, then at Beth, and decides — as men on doors have decided about you your entire life — that whatever this is, it is above his pay grade and below his interest. He unhooks the rope."
},
{
"name": "clubbar",
"sprite": "clubbar",
"x": 76,
"y": 112,
"look": "The bar. No prices anywhere. In your experience, a room with no prices is a room where you are the product.",
"synonyms": "bar counter drinks",
"use_text": "You order a glass of milk. The bartender does not blink, does not comment, and produces a glass of milk, because at this establishment the entire business model is not blinking."
},
{
"name": "bunkerdoor",
"sprite": "bunkerdoor",
"x": 128,
"y": 100,
"look": "At the back of the club, behind a rope nobody crosses, is a circular steel blast door in a concrete wall. It is nine feet across. It is not a wine cellar. Nobody puts a keypad on a wine cellar.",
"synonyms": "door blast steel vault bunker keypad",
"use_text": "Sealed. Through the glass port you can see a corridor, and stores, and racking, and enough tinned food for eleven people to sit out something for a very long time. Eleven people. You counted eleven people in this club."
},
{
"name": "gustafson",
"sprite": "gustafson",
"x": 108,
"y": 138,
"look": "The big Norwegian who has been standing at Cane's shoulder all evening, and who is roughly six feet two, and who therefore fits Simon Davenport's driver's seat exactly.",
"synonyms": "sig norwegian henchman big man blond",
"requires_flag": "decommissioned",
"points": 10,
"sets_flag": "knows_plan",
"use_text": "You take him in the car park in nine seconds, which is two seconds off your father's record and which you will be quietly pleased about for a week. He talks immediately, and he talks a great deal, because enormous men who have never once been beaten have no idea how to be beaten. Gustafson: Midnight. The arena. He has bought the ball — the New Year's ball, the one on the wire, the one four hundred million people watch drop. The device goes inside it. When it opens, it opens over everybody at once."
},
{
"name": "cane",
"sprite": "cane",
"x": 76,
"y": 142,
"look": "Richard Cane. Forty-one billion dollars, a gilet, and the specific calm of a man who has never once been told no by anybody whose opinion he could not buy.",
"synonyms": "richard billionaire tech ceo man",
"points": 10,
"sets_flag": "decommissioned",
"use_text": "You ask Richard Cane about a safe deposit box. He answers you politely and at length, and while he is answering, he takes out his phone and does not hide that he is taking out his phone, and makes one call, and does not hide that either. By the time you reach the car park your badge has been suspended, Police Squad has been dissolved by a budget amendment that was tabled eleven days ago, and Chief Davis is calling you for the last time as a person who can call you. You are a private citizen with a matchbook and a novelist.",
"dialogue": [
{
"says": "Cane: Detective! The bank man. Thirty hostages, no shots. That's beautiful work. Genuinely. I mean that. He does mean it. That is somehow the worst part.",
"choices": [
{ "text": "Simon Davenport worked for you.", "goto": 1 },
{ "text": "What's behind the steel door, Mr. Cane?", "goto": 2 },
{ "text": "You have a very firm handshake.", "goto": 3 }
]
},
{
"says": "Cane: Simon was the best I ever hired. What happened to him is a tragedy and I've said so publicly. He has. Eleven times. In writing. Which is eleven more times than anybody asked.",
"choices": [{ "text": "His hands weren't on the wheel.", "goto": 4 }]
},
{
"says": "Cane: Storage. Beth, beside you, says nothing at all, and writes something down, and he watches her write it, and smiles at her while she does.",
"choices": [{ "text": "That's a lot of tinned storage.", "goto": 4 }]
},
{
"says": "Cane: Thank you! I work on it. He does. There is a man. It is a real job.",
"choices": [{ "text": "It shows.", "goto": 0 }]
},
{
"says": "Cane: Detective. Do you know what the problem is? Everybody talks. Everybody has a position. Everybody argues, all day, about everything, and nothing has been built in this country in forty years. He looks at you with total, transparent sincerity — the exact expression you have been giving people your entire life, coming back at you from the wrong face. Cane: I'm not going to hurt anybody. I'm going to make it quiet.",
"choices": [{ "text": "Quiet isn't peace, Mr. Cane.", "goto": -1 }]
}
]
},
{
"name": "paperclip",
"sprite": "paperclip",
"x": 20,
"y": 92,
"look": "On a wall-mounted display beside the coat check, an animated paperclip with two enormous eyes has been trying to help somebody with something since roughly 1998.",
"synonyms": "clip assistant screen display helper",
"use_text": "It looks like you're trying to expose a billionaire's plan to sedate the human species. Would you like help with that? You say yes. You say it out loud, in a nightclub, to a screen. It helps. It helps enormously. You will never be able to explain this part to anybody and you will stop trying."
}
]
}

View File

@ -0,0 +1,252 @@
{
"name": "Ponzi-scheme.com Arena — 11:47 PM",
"enter_text": "Sixty thousand people, four hundred million watching, thirteen minutes on the clock, and a ball on a wire.",
"music": 5,
"strokes": [
{
"Rect": {
"x": 0,
"y": 0,
"w": 160,
"h": 168,
"color": 8,
"meaning": "Floor"
}
},
{
"Rect": {
"x": 0,
"y": 0,
"w": 160,
"h": 52,
"color": 0,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 20,
"w": 160,
"h": 32,
"color": 1,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 24,
"w": 160,
"h": 2,
"color": 3,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 32,
"w": 160,
"h": 2,
"color": 3,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 40,
"w": 160,
"h": 2,
"color": 3,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 48,
"w": 160,
"h": 2,
"color": 3,
"meaning": "None"
}
},
{
"Rect": {
"x": 78,
"y": 0,
"w": 2,
"h": 22,
"color": 7,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 52,
"w": 160,
"h": 4,
"color": 11,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 56,
"w": 160,
"h": 112,
"color": 8,
"meaning": "Floor"
}
},
{
"Ellipse": {
"x": 20,
"y": 96,
"w": 120,
"h": 68,
"color": 7,
"meaning": "Floor"
}
},
{
"Ellipse": {
"x": 26,
"y": 100,
"w": 108,
"h": 60,
"color": 0,
"meaning": "Floor"
}
},
{
"Rect": {
"x": 8,
"y": 60,
"w": 30,
"h": 16,
"color": 0,
"meaning": "None"
}
},
{
"Rect": {
"x": 12,
"y": 64,
"w": 22,
"h": 4,
"color": 12,
"meaning": "None"
}
},
{
"Rect": {
"x": 122,
"y": 60,
"w": 30,
"h": 16,
"color": 0,
"meaning": "None"
}
},
{
"Rect": {
"x": 126,
"y": 64,
"w": 22,
"h": 4,
"color": 12,
"meaning": "None"
}
},
{
"Rect": {
"x": 0,
"y": 164,
"w": 160,
"h": 4,
"color": 0,
"meaning": "Wall"
}
}
],
"spawn": [
22,
150
],
"exits": [
null,
null,
null,
4
],
"objects": [
{
"name": "octagon",
"sprite": "cage",
"x": 80,
"y": 108,
"look": "A hexagonal cage in the middle of the floor, two men inside it, sixty thousand people watching them and nobody at all watching the ball.",
"synonyms": "cage fight ring fence mma octagon",
"use_text": "You consider entering the cage to make an announcement. You have thirteen minutes, no badge, no jurisdiction, and no trousers coming. You decide against it, and it is the single best decision you make all year."
},
{
"name": "earpiece",
"sprite": "earpiece",
"x": 40,
"y": 130,
"look": "The earpiece Simon Davenport built and never got to use. Beth has been carrying it in her handbag since the morgue and has not mentioned it once, because she is a crime novelist and she knows exactly when to hand a man a thing.",
"synonyms": "shield bud device ear plug",
"takeable": true,
"points": 5
},
{
"name": "ballglobe",
"sprite": "ballglobe",
"x": 80,
"y": 78,
"look": "The ball. Twelve feet across, six tonnes, on a single wire, and somewhere inside it is a thing that will make four hundred million people agree with each other forever.",
"synonyms": "ball globe sphere wire drop",
"needs": "earpiece",
"points": 5,
"sets_flag": "device_out",
"use_text": "You climb the gantry, put in the earpiece, and go into the ball head first. Your trousers do not come with you. The specific mechanism is a bolt, and a belt loop, and six tonnes of rotating mirror ball, and the physics of it are not in dispute. You come out holding the device, on the world's largest screen, from the waist up in a suit and from the waist down in the year you were born. Four hundred million people see it. The evacuation order you have been shouting for nine minutes is, from this moment, not the thing anybody is looking at. Cane triggers it early."
},
{
"name": "trousers",
"sprite": "trousers",
"x": 118,
"y": 140,
"look": "Your trousers, sixty feet away, on the floor of an arena, being photographed by a great many people. Regulation 4.1.1 requires an officer to maintain uniform standards at all times while on duty. You are not on duty. You have not been on duty since Tuesday. You retrieve them anyway, because your father would have, and because standards are not a thing you keep only when they are being counted.",
"synonyms": "pants slacks uniform",
"visible_flag": "device_out",
"use_text": "You put your trousers back on with enormous dignity, in front of sixty thousand people, and nobody laughs, because of the way you do it."
},
{
"name": "owl",
"sprite": "owl",
"x": 52,
"y": 96,
"look": "There is a barn owl on the rail beside you. It is wearing a hat. It is a small hat, and it is a 1950s hat, and it is grey — not grey the way things in this arena are grey, but grey the way a photograph is grey, as though this one bird is being lit by a different decade. It looks at you the way he used to look at you: without approval, without disappointment, and without ever once looking away.",
"synonyms": "bird barn hat father dad",
"visible_flag": "device_out",
"use_text": "You say: Hello, Dad. The owl does not answer, because it is an owl."
},
{
"name": "cane",
"sprite": "cane",
"x": 104,
"y": 132,
"look": "Richard Cane, on the gantry, with a transmitter and forty-one billion dollars and the total sincerity of a man who has decided that the argument is the problem.",
"synonyms": "richard billionaire man tech",
"requires_flag": "device_out",
"wins": true,
"points": 10,
"use_text": "Cane triggers the device and the arena goes quiet — sixty thousand people at once, and then the concourse, and then the street, everybody agreeing with everybody, all of it going out live. Your earpiece holds. You are the only arguing man left in the county. You cannot reach the gantry. It is nine feet of open air and you are seventy-one years old. The owl leaves the rail. It takes you by the collar — a barn owl, which weighs eleven ounces, lifting a grown man in a suit, and every part of that is impossible and none of it is negotiable — and it carries you the nine feet, and on the way past it blinds Richard Cane with an accuracy that can only be described as procedural. You hit him once. You only need once. You have only ever needed once. Beth reaches the gantry with Cane's own weapon and a very clear view, and you put your hand over it, and you say: no. Not like that. Not us. You turn the device on the crowd and turn it down, all the way down, until sixty thousand people simply stop shouting — which is not the same as agreeing, and which is the whole point, and which nobody watching will understand until Beth's twelfth novel comes out. The owl is gone. There is a hat on the rail. There is not a hat on the rail. You do not look twice. Internal Affairs will want to see you about the trousers. Internal Affairs, it will turn out, is a resort in Belize."
}
]
}

View File

@ -0,0 +1,98 @@
{
"ego": {
"h": 27,
"prompt": "A tall lean weathered greying man in his seventies standing facing the viewer, dark navy suit and loosened tie, long serious craggy face, heavy brow, utterly sincere expression, arms at his sides, cold blue teal lighting"
},
"hockenjr": {
"h": 25,
"prompt": "A heavyset cheerful young police captain facing the viewer, short blond hair, navy uniform shirt straining slightly, badge on belt, earnest open expression, cold blue lighting"
},
"davis": {
"h": 26,
"prompt": "A commanding older woman police chief facing the viewer, short grey hair, dark tailored uniform with brass, arms folded, unimpressed expression, cold blue lighting"
},
"beth": {
"h": 25,
"prompt": "A glamorous blonde woman in her fifties facing the viewer, long wavy hair, elegant dark red coat, holding a hardback book, sharp knowing expression, cold blue lighting"
},
"cane": {
"h": 26,
"prompt": "A smug wealthy tech billionaire in his fifties facing the viewer, black quarter-zip and grey gilet vest, expensive trainers, hands in pockets, thin smile, cold blue lighting"
},
"gustafson": {
"h": 27,
"prompt": "An enormous blond henchman facing the viewer, black tactical jacket, thick neck, blank menacing expression, arms hanging, cold blue lighting"
},
"owl": {
"h": 18,
"prompt": "A barn owl perched facing the viewer wearing a tiny 1950s detective fedora hat, wings folded, deadpan stare, black and white monochrome grayscale only"
},
"plotdevice": {
"h": 16,
"prompt": "A glowing cyan crystalline orb suspended inside an open black armoured case, sci-fi, cold blue light, single object"
},
"wig": {
"h": 12,
"prompt": "A cheap blonde schoolgirl wig with two pigtails and red ribbons, sitting on a table, single object"
},
"depositbox": {
"h": 26,
"prompt": "A bank wall of small brass safe deposit boxes with numbered doors, one hanging open and empty, seen from the front, cold blue lighting"
},
"crashcar": {
"h": 22,
"prompt": "A wrecked crumpled silver electric saloon car seen from the side, bonnet buckled, one door hanging open, cold blue night lighting"
},
"matchbook": {
"h": 8,
"prompt": "A small black matchbook with a glowing cyan logo printed on the cover, lying flat, single object"
},
"laptop": {
"h": 12,
"prompt": "An open silver laptop with a glowing cyan screen, seen from the side at a slight angle, single object"
},
"morguetable": {
"h": 15,
"prompt": "A stainless steel morgue table with a body under a white sheet on it, seen from the side, cold blue clinical lighting"
},
"clubbar": {
"h": 22,
"prompt": "A sleek modern nightclub bar counter with glowing cyan underlighting and bottles behind it, seen from the front"
},
"bouncer": {
"h": 26,
"prompt": "A large nightclub bouncer in a black suit facing the viewer, shaved head, earpiece, arms folded, cold blue neon lighting"
},
"paperclip": {
"h": 14,
"prompt": "A cartoon anthropomorphic bent metal paperclip character with two large googly cartoon eyes and expressive eyebrows, smiling helpfully, single object"
},
"evcar": {
"h": 20,
"prompt": "A sleek white self-driving electric car with no steering wheel seen from the side, glowing cyan headlight strip"
},
"ballglobe": {
"h": 22,
"prompt": "A huge glittering New Year's Eve mirror ball covered in glowing panels, hanging from a steel cable, seen from the front"
},
"cage": {
"h": 28,
"prompt": "A hexagonal mixed martial arts fighting cage with chain link fencing and padded posts, seen from the front, empty, cold blue arena lighting"
},
"trousers": {
"h": 10,
"prompt": "A pair of dark navy suit trousers lying crumpled in a heap on the floor, single object"
},
"earpiece": {
"h": 7,
"prompt": "A small black wireless earpiece with a tiny cyan indicator light, lying flat, single object"
},
"bunkerdoor": {
"h": 28,
"prompt": "A massive circular steel blast door set into a concrete wall, sealed, with a glowing cyan keypad beside it, seen from the front"
},
"hotdogcart": {
"h": 18,
"prompt": "A street hot dog cart with a striped umbrella and a steam tray, seen from the side, cold blue night lighting"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B