Act Zero: 1958 — Frank Drebin Sr, and the score is the confession
John corrected the family tree and the correction is better than what I had. Leslie Nielsen's character is plain Frank Drebin; the 2025 film makes Neeson "Jr", which retroactively makes Nielsen the father without ever calling him Sr. So Frank Drebin Sr is now a THIRD Drebin one generation further back — 1958, entirely ours, no canon to violate. Terminology corrected across all three docs. The twist, per John's "maybe he is really a criminal": he is the most prolific criminal in the city's history, he is also a decorated homicide detective, and he has never once lied about any of it. Not corruption — corruption requires noticing. He is a Drebin: totally literal, totally sincere. He robs the payroll, then investigates it diligently and files an immaculate report stating what he did, because the form asks what happened and he answers the form. Nobody has ever caught him because nobody reads the reports. Best clearance rate in the division. The mechanic: the score is the cover-up. Played completely straight, no jokes in the system text — every scoring action is correct procedure that destroys the evidence against him. Lifting a latent removes it from the metal. Section 9 requires the spoiled card be incinerated, witnessed. The typed report supersedes the rookie's notes and the Captain signs it unread. You reach 100/100 in room three; the final room is worth nothing, because you have already been paid in full for the cover-up. He is also the Gremlin — the chickens on the Captain's desk come from the coop he built in 1951, and in seven years nobody has said the word out loud, so it has never occurred to him that anybody wondered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
127
DESIGN.md
@ -50,29 +50,80 @@ because Nordberg filed it.
|
||||
|
||||
---
|
||||
|
||||
## 2. The two Drebins, and the three eras
|
||||
## 2. The three Drebins, and the four eras
|
||||
|
||||
John's instinct that Frank Drebin Sr should be "a 1950s style cop" is exactly
|
||||
right, and it's supported by the source: *Police Squad!* was a straight parody of
|
||||
***M Squad*** (1957–60) and *Felony Squad*. The 2025 film then makes Neeson's
|
||||
Frank Drebin **Jr.** canon — and gives Sr. a supernatural cameo as an owl. A
|
||||
two-Drebin game is the franchise's own structure, not a liberty.
|
||||
### Who's who (this is confusing on purpose)
|
||||
|
||||
| Act | Who | Look | Palette |
|
||||
|-----|-----|------|---------|
|
||||
| **I** | Frank Drebin **Sr** — the TV series | 1950s hardboiled cop show, shot on videotape | EGA **0 / 7 / 8 / 15** + brown ego. Monochrome. |
|
||||
| **II** | Frank Drebin **Sr** — the films | 1988–94 blockbuster | Full 16-colour EGA |
|
||||
| **III** | Frank Drebin **Jr** (Neeson) — 2025 | modern LA, tech-money | Full EGA, cold blues/cyans |
|
||||
Canon gives us two: Leslie Nielsen's character is plain **Frank Drebin**, and
|
||||
the 2025 film introduces **Frank Drebin Jr.** (Liam Neeson) as his son — which
|
||||
retroactively makes Nielsen the father without ever calling him "Sr."
|
||||
|
||||
**The palette restriction is free and does all the work.** MRPGI is EGA anyway;
|
||||
Act I simply doesn't use the other twelve colours, so the era switch is visible
|
||||
the instant a case loads. Act III's owl is the transition device: Sr. shows up
|
||||
to help Jr., which is canon and also lets both Drebins share a screen.
|
||||
We add a third, one generation further back: **Frank Drebin Sr.**, Nielsen's
|
||||
father, a homicide detective in 1958. He is ours — no canon to violate — and he
|
||||
is where the whole thing turns over.
|
||||
|
||||
**Drebin Jr's homage** (John's specific ask): Neeson's register is *sincerity*
|
||||
where Nielsen's was obliviousness. Jr. isn't stupid — he's earnest, gravel-voiced,
|
||||
and completely committed to a plan that makes no sense. Write Jr's `look` text as
|
||||
genuinely moving. Then have it be about a vending machine.
|
||||
| | Who | When | Register | Palette |
|
||||
|---|---|---|---|---|
|
||||
| **Act 0** | **Frank Drebin Sr.** *(ours)* | 1958 | Played entirely straight. No jokes. *M Squad*. | Hard noir mono: **0 / 8 / 15**, minimal grey |
|
||||
| **Act I** | Frank Drebin (Nielsen) | 1982 TV | Oblivious | Soft mono: **0 / 7 / 8 / 15** |
|
||||
| **Act II** | Frank Drebin (Nielsen) | 1988–94 films | Oblivious, blockbuster scale | Full 16-colour EGA |
|
||||
| **Act III** | Frank Drebin **Jr.** (Neeson) | 2025 | Sincere | Full EGA, cold blues/cyans |
|
||||
|
||||
Three men called Frank Drebin, inconsistent suffixes, and if Sr. is the
|
||||
grandfather then the middle one has no suffix at all, which makes no sense.
|
||||
Nobody in the family has ever addressed this. It is never explained.
|
||||
|
||||
**The palette does the era switch for free.** MRPGI is EGA anyway; each act
|
||||
simply declines to use colours the next one gets.
|
||||
|
||||
### Frank Drebin Sr. — the twist
|
||||
|
||||
> **He is the most prolific criminal in the city's history. He is also a
|
||||
> decorated police detective. He has never once lied about any of it.**
|
||||
|
||||
He is not a hypocrite and he is not corrupt in the ordinary way — corruption
|
||||
requires you to notice. He is a **Drebin**: totally literal, totally sincere,
|
||||
and entirely without a theory of mind. He robs the payroll. He then investigates
|
||||
the robbery, diligently, by the book, and files an immaculate report which
|
||||
states what he did, because the form asks what happened and he answers the form.
|
||||
|
||||
Nobody has ever caught him because **nobody reads the reports.** His clearance
|
||||
rate is the best in the department.
|
||||
|
||||
He is the origin of everything downstream:
|
||||
|
||||
- **The Gremlin** (from *Police Quest 1*, already running through Case Six) is
|
||||
him. The chickens on the Captain's desk come from his back yard. Forty years
|
||||
of low-grade pranks in a police station, never identified, no file ever
|
||||
opened — the only crime of his that anyone ever noticed, and the one thing he
|
||||
genuinely did not do on purpose.
|
||||
- **The paperwork** — Case Two's Form 22-B, the thing that saves his grandson's
|
||||
life — is a family trait that started as a cover.
|
||||
- **Nielsen's Drebin never found out.** That's the tragedy under the joke: the
|
||||
honest one in the middle.
|
||||
- **Jr. finds out.** That's where Act III eventually goes, and why the owl at
|
||||
the end of Case Ten is Nielsen and not Sr.
|
||||
|
||||
### The mechanic: the score is the cover-up
|
||||
|
||||
Act 0 is played completely straight — real hardboiled prose, no gags in the
|
||||
system text at all. You investigate a payroll robbery and a killing.
|
||||
|
||||
Every correct-procedure action quietly destroys the evidence against you, and
|
||||
**the game awards you points for each one**, because each one is genuinely
|
||||
correct procedure. Log the prints and the log replaces the prints. Incinerate
|
||||
the contaminated samples per regulation. Type the report that supersedes the
|
||||
first responder's notes.
|
||||
|
||||
You finish **100/100 for flawless police work.** The score is the confession.
|
||||
Police Quest's own scoring system, turned over.
|
||||
|
||||
### Drebin Jr's homage (John's original ask)
|
||||
|
||||
Neeson's register is *sincerity* where Nielsen's was obliviousness. Jr. isn't
|
||||
stupid — he's earnest, gravel-voiced, and completely committed to a plan that
|
||||
makes no sense. Write Jr's `look` text as genuinely moving. Then have it be
|
||||
about a vending machine. (Built: §8.)
|
||||
|
||||
---
|
||||
|
||||
@ -133,7 +184,7 @@ whitelist is generated from the same table so they can't drift:
|
||||
|
||||
## 5. The campaign
|
||||
|
||||
### Act I — Frank Drebin Sr, *Police Squad!* (monochrome)
|
||||
### Act I — Frank Drebin (Nielsen), *Police Squad!* (monochrome)
|
||||
|
||||
Six cases, one per episode. **Act I cases share a sprite set** — copy the common
|
||||
PNGs (ego, hocken, nordberg, al, johnny, olson, badge, revolver, casefile, desk,
|
||||
@ -151,7 +202,7 @@ in the title card** — a real object in the room whose only purpose is to die.
|
||||
| 05 | **The Butler Did It** | Ep 5 | Kidnapping at a rich man's birthday party | Chain of custody on a birthday cake |
|
||||
| 06 | **Testimony of Evil** | Ep 6 | **BUILT.** Danny Cavanaugh dies mid-act at the Blue Grotto; poison on the rim of his own glass | **The PQ1 whiskey exploit is the intended solution** (see below). Then undercover as a stand-up: six memorised jokes, in order, and improvising is fatal. |
|
||||
|
||||
### Act II — Frank Drebin Sr, the films (full colour)
|
||||
### Act II — Frank Drebin (Nielsen), the films (full colour)
|
||||
|
||||
| # | Case | From | Hook |
|
||||
|---|------|------|------|
|
||||
@ -163,16 +214,36 @@ 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) | **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**. |
|
||||
| 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 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"
|
||||
### Act 0 — 1958 (**BUILT**)
|
||||
|
||||
A short unlockable Act 0: **Drebin Sr as a rookie**, played completely straight
|
||||
as *M Squad*. Same monochrome palette, no jokes in the system text at all — until
|
||||
the last screen. It's the origin of the owl.
|
||||
**`cases/case-00-1958/`** — five rooms, 100 points, hard noir mono.
|
||||
|
||||
Written completely straight: real hardboiled prose, no gags in the system text
|
||||
at all. A payroll robbery, a dead night watchman, a widow on a bench.
|
||||
|
||||
**The score is the confession.** Every scoring action is correct procedure that
|
||||
happens to destroy the evidence against you:
|
||||
|
||||
| Action | Points | What it actually does |
|
||||
|---|---|---|
|
||||
| Dust and lift the latent off the strongbox | +20 | Lifting *removes* the print from the metal. What survives is a card and a log entry, both in your handwriting. |
|
||||
| Run it against the elimination set | +10 | No match — sworn officers weren't printed until 1961. You write down *why* there's no match, in full. |
|
||||
| Incinerate the spoiled samples under section 9 | +20 | Witnessed by the rookie, who thanks you for showing him how it's done properly. |
|
||||
| Type the report | +15 | Four pages, every sentence true, superseding the rookie's handwritten notes. The Captain signs it unread, as he has for eleven years. |
|
||||
| Arrest the man with the key | +20 | He says he lent it out fifty times. You write that down too. |
|
||||
|
||||
**You hit 100/100 in room three.** The final room — the house, the boy, the
|
||||
chickens, the tin box under the third floorboard — is worth nothing, because
|
||||
you have already been paid in full for the cover-up.
|
||||
|
||||
The boy asks whose print it was. You tell him. He says "Oh," and goes back to
|
||||
his spellings, because his father has never once lied to him and so there is
|
||||
nothing here that needs looking at twice.
|
||||
|
||||
---
|
||||
|
||||
@ -264,7 +335,7 @@ hour before it is needed.
|
||||
|
||||
Bank → Police Squad → the morgue → Mulholland → Cane's club → the arena.
|
||||
|
||||
**The Neeson homage is a register, not a costume.** Nielsen played Drebin Sr
|
||||
**The Neeson homage is a register, not a costume.** Nielsen played Drebin
|
||||
*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
|
||||
@ -282,7 +353,7 @@ comedy is the collision with what it's about:
|
||||
|
||||
**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 —
|
||||
Drebin 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.
|
||||
|
||||
|
||||
11
README.md
@ -32,12 +32,13 @@ 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-06-testimony-of-evil/` | **Case Six — playable, 100 points.** Drebin Sr, 1982, monochrome. Five rooms, the whiskey exploit, four deaths. |
|
||||
| `cases/case-07-from-the-files/` | **Case Seven — playable, 100 points.** Drebin Sr, 1988, full colour. Six rooms, the Anaheim Stadium finale. |
|
||||
| `cases/case-02-ring-of-fear/` | **Case Two — playable, 100 points.** Drebin Sr, 1982, monochrome. Five rooms, undercover, three deaths. |
|
||||
| `cases/case-00-1958/` | **Act Zero — playable, 100 points.** Frank Drebin **Sr**, 1958, hard noir mono. Five rooms. Played completely straight; the score is the cover-up. |
|
||||
| `cases/case-01-substantial-gift/` | **Case One — playable, 100 points.** Drebin (Nielsen), 1982, monochrome. Five rooms. |
|
||||
| `cases/case-06-testimony-of-evil/` | **Case Six — playable, 100 points.** Drebin (Nielsen), 1982, monochrome. Five rooms, the whiskey exploit, four deaths. |
|
||||
| `cases/case-07-from-the-files/` | **Case Seven — playable, 100 points.** Drebin (Nielsen), 1988, full colour. Six rooms, the Anaheim Stadium finale. |
|
||||
| `cases/case-02-ring-of-fear/` | **Case Two — playable, 100 points.** Drebin (Nielsen), 1982, monochrome. Five rooms, undercover, three deaths. |
|
||||
| `cases/case-10-plot-device/` | **Case Ten — playable, 100 points.** Drebin Jr (Neeson), 2025, cold palette. Six rooms, the arena finale and the owl. |
|
||||
| `cases/case-08-smell-of-fear/` | **Case Eight — playable, 100 points.** Drebin Sr, 1991, full colour. Five rooms, the memory test. |
|
||||
| `cases/case-08-smell-of-fear/` | **Case Eight — playable, 100 points.** Drebin (Nielsen), 1991, full colour. Five rooms, the memory test. |
|
||||
| `tools/sprites.py` | Generates every sprite on the MODELBEAST farm (free, local). |
|
||||
| `tools/lint.py` | Checks every case for the authoring traps that have bitten us. Run it before playtesting. |
|
||||
| `RESEARCH.md` / `DESIGN.md` | Source research and the campaign bible. |
|
||||
|
||||
20
cases/case-00-1958/game.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "Police Squad Quest — Act Zero: 1958",
|
||||
"start_room": 0,
|
||||
"max_score": 100,
|
||||
"intro_text": "Tuesday. Rain since Sunday. Forty-one thousand dollars went out of the Ardmore Street payroll office on Friday night and a night watchman named Cassidy went out with it, and he is in the county morgue and the money is not anywhere. My name is Drebin. Detective Sergeant Frank Drebin, Homicide. I have worked this city for nineteen years. Type 'help'.",
|
||||
"death_text": "† OFFICER DOWN. The file stays open. The day restarts. †",
|
||||
"verbs": [
|
||||
{ "name": "use", "words": ["dust", "log", "book", "file", "type", "burn", "incinerate", "process", "seal", "cuff", "arrest", "search", "check", "radio"] },
|
||||
{ "name": "look", "words": ["investigate", "observe", "examine", "read"] },
|
||||
{ "name": "talk", "words": ["interrogate", "question", "brief"] }
|
||||
],
|
||||
"flags": {
|
||||
"briefed": false,
|
||||
"scene_worked": false,
|
||||
"prints_logged": false,
|
||||
"samples_processed": false,
|
||||
"report_typed": false,
|
||||
"arrest_made": false
|
||||
}
|
||||
}
|
||||
132
cases/case-00-1958/rooms/room0.json
Normal file
@ -0,0 +1,132 @@
|
||||
{
|
||||
"name": "Central Division — Detective Bureau",
|
||||
"enter_text": "Rain on the window. Nineteen years of this room.",
|
||||
"music": 2,
|
||||
"strokes": [
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 8, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 58, "color": 0, "meaning": "Wall" } },
|
||||
{ "Rect": { "x": 0, "y": 58, "w": 160, "h": 110, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 0, "y": 56, "w": 160, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 96, "y": 10, "w": 50, "h": 36, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 100, "y": 14, "w": 42, "h": 28, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 120, "y": 14, "w": 2, "h": 28, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 100, "y": 27, "w": 42, "h": 2, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 12, "y": 12, "w": 40, "h": 32, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 16, "y": 16, "w": 32, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 16, "y": 23, "w": 22, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 16, "y": 30, "w": 28, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 16, "y": 37, "w": 18, "h": 3, "color": 15, "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": [30, 146],
|
||||
"exits": [null, 1, null, null],
|
||||
"exit_flags": ["", "briefed", "", ""],
|
||||
"exit_blocked": ["", "The Captain is talking. You do not walk out on the Captain.", "", ""],
|
||||
"objects": [
|
||||
{
|
||||
"name": "desk",
|
||||
"sprite": "desk",
|
||||
"x": 52,
|
||||
"y": 140,
|
||||
"look": "Your desk. Nineteen years at this desk. The drawer sticks.",
|
||||
"synonyms": "table drawer",
|
||||
"use_text": "You square the blotter and set the lamp straight. Everything on this desk has a place and everything on this desk is in it, which is a thing three separate commanding officers have written down about you."
|
||||
},
|
||||
{
|
||||
"name": "casefile",
|
||||
"sprite": "casefile",
|
||||
"x": 66,
|
||||
"y": 130,
|
||||
"look": "ARDMORE ST. PAYROLL — ROBBERY / HOMICIDE. Forty-one thousand dollars taken from the Friday payroll between 11:40 PM and midnight. Night watchman Daniel Cassidy, fifty-eight, struck once from behind with a blunt instrument and died where he fell. The first responder's notes are attached. They are three pages, handwritten, in a young officer's hand, and they are very thorough.",
|
||||
"synonyms": "file folder case papers report notes",
|
||||
"takeable": true,
|
||||
"points": 5
|
||||
},
|
||||
{
|
||||
"name": "phone",
|
||||
"sprite": "phone",
|
||||
"x": 34,
|
||||
"y": 132,
|
||||
"look": "The bureau telephone. It rings for everybody and it is answered by whoever is nearest, which for nineteen years has been you, because you are always here first.",
|
||||
"synonyms": "telephone",
|
||||
"use_text": "You answer it and take a message for a detective who is not in yet, in block capitals, with the time, and you leave it where he will see it. You do this eleven or twelve times a day and you have never once mentioned doing it."
|
||||
},
|
||||
{
|
||||
"name": "partner",
|
||||
"sprite": "partner",
|
||||
"x": 40,
|
||||
"y": 118,
|
||||
"look": "Officer Kowalczyk. Twenty-four. First responder on Ardmore Street. He has been a police officer for nine months and he wrote three pages of notes at a murder scene at two in the morning in the rain, and they are good notes.",
|
||||
"synonyms": "kowalczyk officer kid rookie young",
|
||||
"use_text": "You tell him the notes were good. He goes red to the ears. Nobody has told him anything he did was good since he came out of the academy.",
|
||||
"dialogue": [
|
||||
{
|
||||
"says": "Kowalczyk: Sergeant Drebin. Sir. I was first on scene Friday — I wrote it all up, everything I could see, I didn't want to miss anything.",
|
||||
"choices": [
|
||||
{ "text": "You didn't. They're good notes.", "goto": 1 },
|
||||
{ "text": "Tell me what you saw.", "goto": 2 },
|
||||
{ "text": "What time did you get there?", "goto": 3 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"says": "Kowalczyk: ...Thank you, sir. He will remember this conversation for the rest of his career.",
|
||||
"choices": [{ "text": "Tell me what you saw.", "goto": 2 }]
|
||||
},
|
||||
{
|
||||
"says": "Kowalczyk: Strongbox forced, not blown. Whoever did it knew the box. Cassidy face down between the crates, one blow, no defensive marks. Kowalczyk: And sir — there were prints on the inside lip of the box. Clean ones. I didn't touch anything, I just wrote down where they were.",
|
||||
"choices": [
|
||||
{ "text": "That's exactly right, son.", "goto": 4 },
|
||||
{ "text": "No defensive marks.", "goto": 5 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"says": "Kowalczyk: Call came in 12:04, I was there 12:09. Sergeant — there was a car pulling out of the lot as I came in. Dark sedan. I didn't get the plate. I've been sick about it since Friday.",
|
||||
"choices": [{ "text": "You couldn't have got the plate.", "goto": 6 }]
|
||||
},
|
||||
{
|
||||
"says": "Kowalczyk: Sir. He straightens up about an inch.",
|
||||
"choices": [{ "text": "Get me the scene.", "goto": -1 }]
|
||||
},
|
||||
{
|
||||
"says": "Kowalczyk: No, sir. Cassidy never turned round. Whoever it was, he let them walk right up behind him. Kowalczyk: Sergeant — Cassidy worked that lot eleven years. He knew everybody who had any business being there.",
|
||||
"choices": [{ "text": "He knew everybody.", "goto": -1 }]
|
||||
},
|
||||
{
|
||||
"says": "Kowalczyk: No, sir? You explain that at that distance, in that rain, at that hour, nobody gets the plate, and that a man who invents one to look useful is worth less than a man who says he didn't get it. He writes that down. He writes down everything you say.",
|
||||
"choices": [{ "text": "Get me the scene.", "goto": -1 }]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "captain",
|
||||
"sprite": "captain",
|
||||
"x": 108,
|
||||
"y": 128,
|
||||
"look": "Captain Sturges. He has run this bureau for eleven years and he has one detective he never has to think about.",
|
||||
"synonyms": "sturges boss skipper",
|
||||
"dialogue": [
|
||||
{
|
||||
"says": "Sturges: Frank. Ardmore Street. Payroll office, forty-one thousand, and a watchman in the morgue. Sturges: It's yours. It was always going to be yours.",
|
||||
"choices": [
|
||||
{ "text": "Why me, Captain?", "goto": 1 },
|
||||
{ "text": "What do we have?", "goto": 2 },
|
||||
{ "text": "I'll take it, Captain.", "goto": 3, "sets_flag": "briefed", "points": 10 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"says": "Sturges: Nineteen years and I have never once had to check your work. Not once, Frank. You know what that's worth to a man in my chair? Sturges: Every file you've closed has closed clean. Every report you've filed, I've signed without reading, because in eleven years there has never been a reason to read one.",
|
||||
"choices": [{ "text": "That's the job, Captain.", "goto": 2 }]
|
||||
},
|
||||
{
|
||||
"says": "Sturges: Forced strongbox, one dead watchman, no witnesses, and a set of prints the rookie says are on the inside lip of the box. Sturges: Prints, Frank. On the inside. Whoever went in that box went in it with his hands.",
|
||||
"choices": [{ "text": "I'll take it, Captain.", "goto": 3, "sets_flag": "briefed", "points": 10 }]
|
||||
},
|
||||
{
|
||||
"says": "Sturges: I know you will. Sturges: Frank — the man had a wife. Thirty-one years. She's coming in this afternoon and she is going to ask me who did it and I would like very much to be able to tell her. You tell him you will work it the way you work everything. You will.",
|
||||
"choices": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
64
cases/case-00-1958/rooms/room1.json
Normal file
@ -0,0 +1,64 @@
|
||||
{
|
||||
"name": "Ardmore Street — Payroll Office, Loading Bay",
|
||||
"enter_text": "Four days of rain through a broken skylight. They have kept the scene for you, which is more than most bureaus would have done.",
|
||||
"music": 2,
|
||||
"strokes": [
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 66, "color": 0, "meaning": "Wall" } },
|
||||
{ "Rect": { "x": 54, "y": 4, "w": 44, "h": 22, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 60, "y": 8, "w": 32, "h": 14, "color": 8, "meaning": "None" } },
|
||||
{ "Rect": { "x": 74, "y": 4, "w": 3, "h": 22, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 64, "w": 160, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 67, "w": 160, "h": 101, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 8, "y": 22, "w": 30, "h": 42, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 122, "y": 22, "w": 30, "h": 42, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 62, "y": 26, "w": 30, "h": 40, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 66, "y": 30, "w": 22, "h": 32, "color": 8, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 104, "w": 160, "h": 1, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
|
||||
],
|
||||
"spawn": [18, 146],
|
||||
"exits": [null, 2, null, 0],
|
||||
"exit_flags": ["", "prints_logged", "", ""],
|
||||
"exit_blocked": ["", "There is a latent on the inside lip of that box and it has been sitting in the rain for four days. You do not leave a scene with a latent on it.", "", ""],
|
||||
"objects": [
|
||||
{
|
||||
"name": "crates",
|
||||
"sprite": "crates",
|
||||
"x": 42,
|
||||
"y": 122,
|
||||
"look": "Packing crates, stacked to head height, forming a corridor between the loading door and the payroll cage. A man walking that corridor cannot see behind him and cannot be seen from the street.",
|
||||
"synonyms": "boxes stack packing timber",
|
||||
"use_text": "You walk the corridor at Cassidy's pace, twice, and time it. Eleven seconds from the door to the cage. Eleven seconds in which a man is blind on both sides and audible from neither."
|
||||
},
|
||||
{
|
||||
"name": "outline",
|
||||
"sprite": "body",
|
||||
"x": 96,
|
||||
"y": 148,
|
||||
"look": "The outline where Daniel Cassidy went down, face first, between the crates. Fifty-eight years old, eleven years on this lot, thirty-one years married. One blow from behind. No defensive marks. He never turned round.",
|
||||
"synonyms": "cassidy chalk watchman victim mark",
|
||||
"use_text": "You crouch by the outline for a while. He did not turn round. In eleven years on this lot, walking that corridor in the dark, Daniel Cassidy turned round for every sound there was, and on Friday night he heard something behind him and he did not turn round. You put that in the report. It is the single most important sentence in the file and it will be read by nobody."
|
||||
},
|
||||
{
|
||||
"name": "strongbox",
|
||||
"sprite": "strongbox",
|
||||
"x": 74,
|
||||
"y": 116,
|
||||
"look": "The payroll box, on its side, lid forced. Not blown, not drilled — levered, at the hinge, by somebody who knew that this model gives at the hinge. On the inside lip, where a hand would go to steady the lid, there is a latent. The rookie found it in the rain at two in the morning and did not touch it and wrote down exactly where it was.",
|
||||
"synonyms": "box payroll safe lid hinge latent print prints",
|
||||
"points": 20,
|
||||
"sets_flag": "prints_logged",
|
||||
"use_text": "You dust the inside lip and raise a clean single, better than you had any right to expect after four days. You lift it onto card. The lift takes the latent off the metal — that is what lifting is, that is what it has always been, and there is nothing on that box now and nothing that could be on it. You label the card in your own hand: ARDMORE ST — STRONGBOX, INTERIOR LIP — LIFTED F. DREBIN 14/10/58. You enter it in the property log, in your own hand, with the time. You initial it. The evidence in this case is now a card and a log entry, and both of them are yours, and every step of that was correct. (+20)"
|
||||
},
|
||||
{
|
||||
"name": "skylight",
|
||||
"sprite": "streetlamp",
|
||||
"x": 132,
|
||||
"y": 110,
|
||||
"look": "The lamp on the corner throws a hard bar of light through the broken skylight and across the loading bay floor. Anybody standing in that bar at midnight is lit like a stage. Cassidy walked around it. Eleven years, he walked around it.",
|
||||
"synonyms": "lamp light post corner",
|
||||
"use_text": "You stand where the light falls and look back at the corridor between the crates. From here you can see the whole loading bay. From the corridor, you cannot see here at all."
|
||||
}
|
||||
]
|
||||
}
|
||||
77
cases/case-00-1958/rooms/room2.json
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
"name": "Central Division — Identification Bureau & Basement",
|
||||
"enter_text": "The comparison room, and below it the furnace. Everything that comes off a scene ends in one of these two places.",
|
||||
"music": 2,
|
||||
"strokes": [
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 62, "color": 0, "meaning": "Wall" } },
|
||||
{ "Rect": { "x": 0, "y": 60, "w": 160, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 63, "w": 160, "h": 105, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 6, "y": 8, "w": 26, "h": 48, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 36, "y": 8, "w": 26, "h": 48, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 66, "y": 8, "w": 26, "h": 48, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 6, "y": 8, "w": 86, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 32, "y": 8, "w": 4, "h": 48, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 62, "y": 8, "w": 4, "h": 48, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 14, "y": 28, "w": 8, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 44, "y": 28, "w": 8, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 74, "y": 28, "w": 8, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 106, "y": 12, "w": 46, "h": 40, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 110, "y": 16, "w": 38, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 110, "y": 24, "w": 26, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 110, "y": 32, "w": 32, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 110, "y": 40, "w": 20, "h": 3, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
|
||||
],
|
||||
"spawn": [18, 146],
|
||||
"exits": [null, 3, null, 1],
|
||||
"exit_flags": ["", "report_typed", "", ""],
|
||||
"exit_blocked": ["", "You do not go and put hands on a man before the paperwork is straight. That is how cases fall over.", "", ""],
|
||||
"objects": [
|
||||
{
|
||||
"name": "microscope",
|
||||
"sprite": "microscope",
|
||||
"x": 46,
|
||||
"y": 96,
|
||||
"look": "The comparison scope. On the left stage, the elimination set. On the right, your lift card from the inside lip of the strongbox.",
|
||||
"synonyms": "scope comparison lens stage lift card",
|
||||
"requires_flag": "prints_logged",
|
||||
"points": 10,
|
||||
"sets_flag": "samples_processed",
|
||||
"use_text": "You run the lift against the elimination set: payroll clerks, the two drivers, the foreman, the watchman himself, and every man on the department's file. No match. Not one point of comparison anywhere in the set. You note the reason in the margin, because the margin is where a man notes a reason: sworn officers of this department are not printed. There is no elimination set for us. The Chief has been asked for one four times since 1954 and the answer has been that it would suggest to the public that it was necessary. You write that in the file. You write it in full, in your own hand, and you initial it. (+10)"
|
||||
},
|
||||
{
|
||||
"name": "incinerator",
|
||||
"sprite": "incinerator",
|
||||
"x": 116,
|
||||
"y": 132,
|
||||
"look": "The basement furnace. Property regulations, section 9: biological material and any card stock contaminated by it are destroyed within seventy-two hours of examination, by the officer of record, witnessed.",
|
||||
"synonyms": "furnace fire basement stove burner",
|
||||
"requires_flag": "samples_processed",
|
||||
"points": 20,
|
||||
"sets_flag": "samples_burned",
|
||||
"use_text": "Four days of rain came through that skylight and everything off that floor came up wet. The swabs are spoiled. The lift card has taken up moisture from the property envelope and the ridge detail is going, and a card that is going is worth less than nothing in front of a jury, because a defence man will hold it up. Section 9 is not ambiguous and you have never in nineteen years been ambiguous about section 9. You destroy the swabs and the card in the furnace, at 4:15 PM, witnessed by Officer Kowalczyk, who signs the property log beneath your signature and thanks you for letting him see how it is done properly. What survives of the latent from the inside lip of the Ardmore Street strongbox is the log entry. The log entry is in your handwriting. (+20)"
|
||||
},
|
||||
{
|
||||
"name": "typewriter",
|
||||
"sprite": "typewriter",
|
||||
"x": 76,
|
||||
"y": 128,
|
||||
"look": "The bureau typewriter. Every report out of this division for eleven years has gone through it, and Captain Sturges signs them without reading them.",
|
||||
"synonyms": "machine report paper keys",
|
||||
"requires_flag": "samples_burned",
|
||||
"points": 15,
|
||||
"sets_flag": "report_typed",
|
||||
"use_text": "You type the report. You type all of it. The corridor between the crates and the eleven seconds. The bar of light Cassidy walked around for eleven years. The man who came up behind him that he did not turn round for. The latent on the inside lip, the lift, the log, the no-match, the reason for the no-match, and the destruction at 4:15 with the witness's name. Four pages, single spaced, and every sentence in it is true. It supersedes Officer Kowalczyk's handwritten notes, which are attached behind it, as regulations require, at the back. Captain Sturges signs it on Thursday without reading it. In eleven years there has never been a reason to read one. (+15)"
|
||||
},
|
||||
{
|
||||
"name": "widow",
|
||||
"sprite": "widow",
|
||||
"x": 138,
|
||||
"y": 108,
|
||||
"look": "Mrs. Cassidy has been sitting on the bench outside the bureau since two o'clock. Thirty-one years. She has brought a photograph in case anybody needs one.",
|
||||
"synonyms": "mrs cassidy woman wife bench",
|
||||
"use_text": "You sit down next to her and you tell her what you know, which is a great deal, and you tell it plainly, and you do not tell her it will be all right. She says: you'll find him. You say: I will. You are not lying to her. You have never once lied to anybody. That is not the shape of this."
|
||||
}
|
||||
]
|
||||
}
|
||||
78
cases/case-00-1958/rooms/room3.json
Normal file
@ -0,0 +1,78 @@
|
||||
{
|
||||
"name": "Interview Room 2",
|
||||
"enter_text": "A table, two chairs, and a man who has been here since four.",
|
||||
"music": 2,
|
||||
"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": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 65, "w": 160, "h": 103, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 58, "y": 10, "w": 44, "h": 30, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 62, "y": 14, "w": 36, "h": 22, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 100, "w": 160, "h": 1, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
|
||||
],
|
||||
"spawn": [20, 146],
|
||||
"exits": [null, 4, null, 2],
|
||||
"exit_flags": ["", "arrest_made", "", ""],
|
||||
"exit_blocked": ["", "There is a man in this room and a widow on a bench outside it. You finish this.", "", ""],
|
||||
"objects": [
|
||||
{
|
||||
"name": "ledger1958",
|
||||
"sprite": "ledger1958",
|
||||
"x": 116,
|
||||
"y": 116,
|
||||
"look": "The Ardmore Street key register. Nine keys to the loading bay. Eight of them are accounted for on Friday night by two or more people. The ninth was signed out to the yard foreman, Walter Prosky, at six o'clock on Friday evening and was not signed back in until Monday morning.",
|
||||
"synonyms": "register keys book record log",
|
||||
"use_text": "You go through it line by line, twice, and it says what it said the first time. Cassidy did not turn round because whoever came up behind him had business being there, and on Friday night the register says one man had business being there and cannot say where he was."
|
||||
},
|
||||
{
|
||||
"name": "suspect",
|
||||
"sprite": "suspect",
|
||||
"x": 84,
|
||||
"y": 130,
|
||||
"look": "Walter Prosky. Forty-six, yard foreman eleven years, two previous for receiving in 1949 and 1951 and nothing since. He had the ninth key from Friday evening to Monday morning and he cannot account for Friday night, and he has been sitting in this room since four o'clock saying so.",
|
||||
"synonyms": "walter prosky foreman man",
|
||||
"points": 20,
|
||||
"sets_flag": "arrest_made",
|
||||
"use_text": "You arrest Walter Prosky for the murder of Daniel Cassidy and the theft of forty-one thousand dollars from the Ardmore Street payroll office. You advise him of his rights, in the correct order, in full, and you get his acknowledgement, and you write down the time. He goes quietly. He says one thing on the way out and you write that down too, because a man's words are a man's words and they go in the file whether they help or not: 'I lent the key out, Sergeant. I've lent that key out fifty times in eleven years. Ask anybody on that lot who's had it off me.' It goes in the file, in full, in your own hand. Nobody reads it. He gets nine to fifteen and serves eleven, and Mrs. Cassidy is told who did it, and the Ardmore Street file is closed clean, like every file you have ever closed. (+20)",
|
||||
"dialogue": [
|
||||
{
|
||||
"says": "Prosky: I've told them four times. I was at my sister's till nine and then I was home. I got no way of proving home. Nobody's got a way of proving home.",
|
||||
"choices": [
|
||||
{ "text": "You had the ninth key, Walter.", "goto": 1 },
|
||||
{ "text": "Tell me about Friday.", "goto": 2 },
|
||||
{ "text": "Who else uses that key?", "goto": 3 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"says": "Prosky: I had it Friday to Monday, same as I have it most weeks. I'm the foreman. That's what a foreman is.",
|
||||
"choices": [{ "text": "Who else uses that key?", "goto": 3 }]
|
||||
},
|
||||
{
|
||||
"says": "Prosky: I finished at six. I signed the key out at six because I always sign the key out at six. Then I went to my sister's on Alameda and I ate a dinner and I came home. Prosky: Sergeant, I've got two priors from before the war for buying stuff I should've asked about. I never hit anybody in my life. I never hit anybody.",
|
||||
"choices": [{ "text": "Who else uses that key?", "goto": 3 }]
|
||||
},
|
||||
{
|
||||
"says": "Prosky: Anybody who asks. Drivers, the clerks, the men from the department when they come round about the pilfering — anybody who asks. Prosky: I've lent that key out fifty times in eleven years and I've never once written it down, because it never once mattered.",
|
||||
"choices": [
|
||||
{ "text": "Did you lend it out on Friday, Walter?", "goto": 4 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"says": "Prosky: ...I don't remember Friday. Prosky: God help me, Sergeant, I don't remember Friday. It was a Friday. They're all Fridays. He puts his hands flat on the table and looks at them. You write down everything he has said, in full, in your own hand.",
|
||||
"choices": [{ "text": "All right, Walter.", "goto": -1 }]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "partner",
|
||||
"sprite": "partner",
|
||||
"x": 34,
|
||||
"y": 122,
|
||||
"look": "Kowalczyk, standing at the wall with his hat in his hands, watching how it is done properly.",
|
||||
"synonyms": "kowalczyk officer kid rookie young",
|
||||
"use_text": "He asks whether it is always this straightforward. You tell him it is when the work is done right, and that most of the work is done before anybody is ever in this room. He writes that down."
|
||||
}
|
||||
]
|
||||
}
|
||||
91
cases/case-00-1958/rooms/room4.json
Normal file
@ -0,0 +1,91 @@
|
||||
{
|
||||
"name": "1114 Delaware Avenue",
|
||||
"enter_text": "Home. The rain has stopped. Nineteen years on the job and the porch light is always on, because you always leave it on.",
|
||||
"music": 1,
|
||||
"strokes": [
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 60, "color": 0, "meaning": "Wall" } },
|
||||
{ "Rect": { "x": 0, "y": 58, "w": 160, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 61, "w": 160, "h": 107, "color": 8, "meaning": "Floor" } },
|
||||
{ "Rect": { "x": 12, "y": 10, "w": 34, "h": 26, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 16, "y": 14, "w": 26, "h": 18, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 104, "y": 8, "w": 44, "h": 34, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 108, "y": 12, "w": 36, "h": 26, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 124, "y": 12, "w": 3, "h": 26, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 108, "y": 23, "w": 36, "h": 3, "color": 15, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 96, "w": 160, "h": 1, "color": 0, "meaning": "None" } },
|
||||
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
|
||||
],
|
||||
"spawn": [22, 148],
|
||||
"exits": [null, null, null, 3],
|
||||
"objects": [
|
||||
{
|
||||
"name": "armchair",
|
||||
"sprite": "armchair",
|
||||
"x": 46,
|
||||
"y": 126,
|
||||
"look": "Your chair, and the lamp, and the evening paper folded to the page about Ardmore Street. ARREST IN PAYROLL KILLING. Four column inches. Your name is not in it, because you asked them to leave it out, because a man does not put his name in the paper for doing his job.",
|
||||
"synonyms": "chair lamp paper newspaper seat",
|
||||
"use_text": "You sit down. It has been a long week and it has been closed clean, the way they all close."
|
||||
},
|
||||
{
|
||||
"name": "coop",
|
||||
"sprite": "coop",
|
||||
"x": 128,
|
||||
"y": 128,
|
||||
"look": "The coop you built in the yard in 1951. Six hens. You take one in to the bureau every few weeks. You put it on the Captain's desk, on the arrest reports, and you soak the reports first because a hen on dry paper will not stay put. Nobody has ever asked you about it. In seven years nobody in that building has said the word out loud, and so you have never had occasion to mention it, and it has never once occurred to you that anybody wondered.",
|
||||
"synonyms": "chickens hens coop yard birds",
|
||||
"use_text": "You feed them. Tomorrow you will take one in to the bureau, because it is a Wednesday, and Wednesdays are when you do it, and there has never been a reason given for that either."
|
||||
},
|
||||
{
|
||||
"name": "son",
|
||||
"sprite": "son",
|
||||
"x": 78,
|
||||
"y": 132,
|
||||
"look": "Your boy, eight years old, at the kitchen table with his exercise book, working through his spellings with an expression of total and unblinking seriousness. He wants to be a police officer. He has wanted it since he was five. He asks you every night what you did and you tell him, all of it, plainly, because you have never in your life told anybody anything else. He has never once understood what he was being told. That runs in the family.",
|
||||
"synonyms": "boy child kid frank junior",
|
||||
"use_text": "He asks what you did today. You tell him: you closed a case. You tell him how — the corridor, the eleven seconds, the man who was not turned round for, the print on the inside lip, the lift, the log, the furnace at four fifteen, the register, and the ninth key. He listens to all of it with his chin on his hands. Then he says: 'Dad. Whose print was it?' You say: 'Mine.' He says: 'Oh.' And he goes back to his spellings, because his father has never once lied to him, and so there is nothing here that needs looking at twice.",
|
||||
"dialogue": [
|
||||
{
|
||||
"says": "Frank: Dad? What's the most important thing about being a police officer?",
|
||||
"choices": [
|
||||
{ "text": "Doing it properly.", "goto": 1 },
|
||||
{ "text": "Telling the truth.", "goto": 2 },
|
||||
{ "text": "The paperwork, son.", "goto": 3 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"says": "You tell him: doing it properly. Every time, all the way through, whether anybody is looking or not. He writes it in the back of his exercise book. He will still be doing it properly in 1988, in front of the Queen of England, and it will go extremely badly.",
|
||||
"choices": [{ "text": "Finish your spellings.", "goto": -1 }]
|
||||
},
|
||||
{
|
||||
"says": "You tell him: telling the truth. Always. To everybody. About everything. You mean it. You have never done anything else. He writes it down.",
|
||||
"choices": [{ "text": "Finish your spellings.", "goto": -1 }]
|
||||
},
|
||||
{
|
||||
"says": "You tell him: the paperwork. Everything goes in the file, exactly as it happened, in your own hand, and you sign it. Frank: What if it's bad? You tell him: especially then. He writes that down too. Fifty years later his own son will fill in a four-page form correctly and it will be the only reason he lives through a Tuesday.",
|
||||
"choices": [{ "text": "Finish your spellings.", "goto": -1 }]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "lockbox",
|
||||
"sprite": "lockbox",
|
||||
"x": 100,
|
||||
"y": 148,
|
||||
"look": "Under the third floorboard from the wall, where it has been since Saturday morning, is a tin box with forty-one thousand dollars in it. You have not spent any of it. You have never spent any of it. There is nineteen years of it under this house and the boxes go back to 1939, and you could not tell anybody what it is for, because it is not for anything.",
|
||||
"synonyms": "box tin money cash floorboard board",
|
||||
"use_text": "You lift the board and put the week's in and put the board back. You could not say why you do it. Nobody has ever asked, so you have never had to find out."
|
||||
},
|
||||
{
|
||||
"name": "mirror",
|
||||
"sprite": "mirror",
|
||||
"x": 30,
|
||||
"y": 108,
|
||||
"look": "The hall mirror. Detective Sergeant Frank Drebin. Nineteen years. Best clearance rate in the division. Never once had a file come back. Never once been checked. Never once lied to a living soul.",
|
||||
"synonyms": "glass hall reflection",
|
||||
"wins": true,
|
||||
"use_text": "You look at yourself in the hall mirror for a while, the way a man does at the end of a long week, and there is nothing in your face at all, because there is nothing in your face to find. You did every part of this correctly. You dusted the box and you lifted the latent, and lifting destroys it, which is what lifting is. You logged it in your own hand because you were the officer of record. You ran it against the elimination set and there was no match, and you wrote down why there was no match. You destroyed the spoiled card under section 9, at 4:15, witnessed, and the witness thanked you for showing him how it is done. You typed four pages in which every single sentence is true, and it superseded the rookie's notes, and it went to a Captain who has not read one of your reports in eleven years because there has never been a reason. You arrested a man who had the key, and you wrote down that he lent it out fifty times, and you gave a widow an answer. A hundred points out of a hundred. Flawless police work. Nobody in this department has ever done it better and that is the entire problem, and it will stay the entire problem for another twenty-two years. Upstairs, your boy is asleep with his exercise book open at the back page, where he has written down three things his father told him. He is going to be the most honest police officer this city ever has. He is never going to find out. His son will."
|
||||
}
|
||||
]
|
||||
}
|
||||
67
cases/case-00-1958/sprites.json
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
"_comment": "1958. Harder, higher-contrast noir than the 1982 cases — deep blacks, blown highlights, long shadows. Shared small props copied from case-01/06.",
|
||||
"ego": {
|
||||
"h": 27,
|
||||
"prompt": "A tall lean 1950s police detective standing facing the viewer, dark heavy overcoat and snap-brim fedora pulled low, narrow tie, hard unsmiling face half in shadow, arms at his sides, high contrast film noir lighting, black and white monochrome grayscale only"
|
||||
},
|
||||
"captain": {
|
||||
"h": 26,
|
||||
"prompt": "A heavyset 1950s police captain facing the viewer, shirtsleeves and braces, loosened tie, cigar, weary lined face, high contrast film noir lighting, black and white monochrome grayscale only"
|
||||
},
|
||||
"partner": {
|
||||
"h": 25,
|
||||
"prompt": "A young eager 1950s plainclothes police detective facing the viewer, cheap suit, hat in hands, open honest face, high contrast film noir lighting, black and white monochrome grayscale only"
|
||||
},
|
||||
"suspect": {
|
||||
"h": 25,
|
||||
"prompt": "A thin nervous 1950s working man facing the viewer, worn work jacket and flat cap, stubble, hands hanging, frightened expression, high contrast film noir lighting, black and white monochrome grayscale only"
|
||||
},
|
||||
"widow": {
|
||||
"h": 24,
|
||||
"prompt": "A composed 1950s widow in black facing the viewer, veiled hat, gloved hands folded, dignified grief, high contrast film noir lighting, black and white monochrome grayscale only"
|
||||
},
|
||||
"crates": {
|
||||
"h": 20,
|
||||
"prompt": "A stack of wooden shipping crates in a dark warehouse, one lid prised off, seen at a slight angle, hard shadows, black and white monochrome grayscale only"
|
||||
},
|
||||
"strongbox": {
|
||||
"h": 15,
|
||||
"prompt": "A heavy steel payroll strongbox lying on its side with the lid forced open and empty, seen from the front, black and white monochrome grayscale only"
|
||||
},
|
||||
"incinerator": {
|
||||
"h": 26,
|
||||
"prompt": "A cast iron basement furnace incinerator with a heavy hinged door standing open and fire visible inside, seen from the front, black and white monochrome grayscale only"
|
||||
},
|
||||
"typewriter": {
|
||||
"h": 13,
|
||||
"prompt": "A 1950s manual typewriter on a desk with a sheet of paper rolled in, seen from the front, black and white monochrome grayscale only"
|
||||
},
|
||||
"son": {
|
||||
"h": 17,
|
||||
"prompt": "A serious eight year old boy in 1950s clothes standing facing the viewer, short neat hair, shirt and shorts, completely deadpan expression, holding a school exercise book, black and white monochrome grayscale only"
|
||||
},
|
||||
"armchair": {
|
||||
"h": 20,
|
||||
"prompt": "A worn 1950s wing armchair with a standard lamp beside it, seen from the side, black and white monochrome grayscale only"
|
||||
},
|
||||
"mirror": {
|
||||
"h": 22,
|
||||
"prompt": "An oval hall mirror in a dark wooden frame hanging on a wall, seen straight on, black and white monochrome grayscale only"
|
||||
},
|
||||
"coop": {
|
||||
"h": 22,
|
||||
"prompt": "A homemade wooden backyard chicken coop with wire mesh and a small ramp, two hens beside it, seen from the side, black and white monochrome grayscale only"
|
||||
},
|
||||
"ledger1958": {
|
||||
"h": 12,
|
||||
"prompt": "A thick hardbound ledger book lying closed on a table with a fountain pen resting on top, single object, black and white monochrome grayscale only"
|
||||
},
|
||||
"lockbox": {
|
||||
"h": 14,
|
||||
"prompt": "A small tin cash box open and stacked full of banknotes, seen from the front, black and white monochrome grayscale only"
|
||||
},
|
||||
"streetlamp": {
|
||||
"h": 30,
|
||||
"prompt": "A 1950s cast iron street lamp post lit at night casting a hard pool of light, seen from the side, black and white monochrome grayscale only"
|
||||
}
|
||||
}
|
||||
BIN
cases/case-00-1958/sprites/armchair.png
Normal file
|
After Width: | Height: | Size: 923 B |
BIN
cases/case-00-1958/sprites/badge.png
Normal file
|
After Width: | Height: | Size: 245 B |
BIN
cases/case-00-1958/sprites/body.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
cases/case-00-1958/sprites/captain.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
cases/case-00-1958/sprites/casefile.png
Normal file
|
After Width: | Height: | Size: 310 B |
BIN
cases/case-00-1958/sprites/chicken.png
Normal file
|
After Width: | Height: | Size: 275 B |
BIN
cases/case-00-1958/sprites/coffeepot.png
Normal file
|
After Width: | Height: | Size: 500 B |
BIN
cases/case-00-1958/sprites/coop.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
cases/case-00-1958/sprites/crates.png
Normal file
|
After Width: | Height: | Size: 932 B |
BIN
cases/case-00-1958/sprites/desk.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
cases/case-00-1958/sprites/ego.png
Normal file
|
After Width: | Height: | Size: 653 B |
BIN
cases/case-00-1958/sprites/evidence.png
Normal file
|
After Width: | Height: | Size: 270 B |
BIN
cases/case-00-1958/sprites/filecabinet.png
Normal file
|
After Width: | Height: | Size: 581 B |
BIN
cases/case-00-1958/sprites/incinerator.png
Normal file
|
After Width: | Height: | Size: 991 B |
BIN
cases/case-00-1958/sprites/ledger1958.png
Normal file
|
After Width: | Height: | Size: 328 B |
BIN
cases/case-00-1958/sprites/lockbox.png
Normal file
|
After Width: | Height: | Size: 374 B |
BIN
cases/case-00-1958/sprites/microscope.png
Normal file
|
After Width: | Height: | Size: 523 B |
BIN
cases/case-00-1958/sprites/mirror.png
Normal file
|
After Width: | Height: | Size: 645 B |
BIN
cases/case-00-1958/sprites/partner.png
Normal file
|
After Width: | Height: | Size: 651 B |
BIN
cases/case-00-1958/sprites/phone.png
Normal file
|
After Width: | Height: | Size: 332 B |
BIN
cases/case-00-1958/sprites/revolver.png
Normal file
|
After Width: | Height: | Size: 281 B |
BIN
cases/case-00-1958/sprites/son.png
Normal file
|
After Width: | Height: | Size: 389 B |
BIN
cases/case-00-1958/sprites/squadcar.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
cases/case-00-1958/sprites/streetlamp.png
Normal file
|
After Width: | Height: | Size: 356 B |
BIN
cases/case-00-1958/sprites/strongbox.png
Normal file
|
After Width: | Height: | Size: 700 B |
BIN
cases/case-00-1958/sprites/suspect.png
Normal file
|
After Width: | Height: | Size: 835 B |
BIN
cases/case-00-1958/sprites/typewriter.png
Normal file
|
After Width: | Height: | Size: 483 B |
BIN
cases/case-00-1958/sprites/widow.png
Normal file
|
After Width: | Height: | Size: 381 B |