policesquadquest/cases/case-02-ring-of-fear/rooms/room0.json
type-two e429351ab3 Case Two: Ring of Fear — the paperwork is what keeps you alive
Act I, monochrome. Five rooms, 100 points, verified end-to-end at 100/100 on
the first pass, plus three verified Sierra deaths.

Frank goes under as fight manager "Frank Deacon" to break a fight-fixing racket.
The procedure gag from the bible finally has teeth: Form 22-B, the four-page
application for an authorised cover identity, is filed in Act 1 by a clerk in
Sacramento who never learns anything about it — and that form is the only thing
standing between Frank and a very short career. At the promoter's licence check
the "I'm licensed" reply is gated on having filed it; skip the form and the
single visible option is the fatal one. Bureaucracy as the thing that saves you
is the exact inversion the campaign is built on.

Act I cases now share a sprite set: 18 PNGs copied from case-01, 14 new ones
generated. tools/sprites.py skips keys beginning with "_" so sprites.json can
carry a note about which sprites are shared.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 22:47:23 +10:00

136 lines
7.4 KiB
JSON

{
"name": "Police Squad HQ — Squad Room",
"enter_text": "The squad room. Somebody has put a boxing poster on the notice board and somebody else has written on it.",
"music": 3,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 58, "color": 8, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 58, "w": 160, "h": 110, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 55, "w": 160, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 100, "y": 12, "w": 46, "h": 32, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 122, "y": 12, "w": 2, "h": 32, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 100, "y": 26, "w": 46, "h": 2, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 14, "w": 42, "h": 30, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 18, "y": 18, "w": 16, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 18, "y": 24, "w": 24, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 18, "y": 30, "w": 20, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 18, "y": 36, "w": 28, "h": 3, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 0, "w": 5, "h": 168, "color": 0, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 163, "w": 160, "h": 5, "color": 0, "meaning": "Wall" } }
],
"spawn": [86, 148],
"exits": [null, 1, null, null],
"exit_flags": ["", "briefed", "", ""],
"exit_blocked": ["", "You are not undercover yet. You are a police detective standing in a police station, which is the opposite of undercover.", "", ""],
"objects": [
{
"name": "desk",
"sprite": "desk",
"x": 50,
"y": 142,
"look": "Your desk. The drawer still sticks. It has stuck for eleven years and it will outlive everyone in this room.",
"synonyms": "table",
"use_text": "You clear the desk, because a man going under does not leave anything on a desk. It takes four seconds. There was nothing on it."
},
{
"name": "form",
"sprite": "casefile",
"x": 62,
"y": 130,
"look": "FORM 22-B: APPLICATION FOR AUTHORISED COVER IDENTITY AND ASSOCIATED OVERTIME. Four pages. Section 3 requires you to state, in advance, the number of hours you expect to spend not being yourself.",
"synonyms": "paperwork 22b overtime application file papers",
"points": 10,
"sets_flag": "paperwork_filed",
"use_text": "You fill in Form 22-B correctly and in full, including Section 3, in which you estimate that you will spend fourteen days not being yourself. Police Squad files it with the State Athletic Commission the same afternoon, because that is what the form is for and because nobody in this department has ever once failed to file a form. Somewhere in a filing cabinet in Sacramento, a fight manager named Frank Deacon comes into existence, licensed, bonded, and current on his dues."
},
{
"name": "phone",
"sprite": "phone",
"x": 30,
"y": 138,
"look": "The phone. Still ringing. Nobody has ever mentioned it and you have stopped hearing it, which is worse.",
"synonyms": "telephone",
"use_text": "You answer it. The same man asks whether you are satisfied with your current carpeting. You tell him you are going undercover for fourteen days. He asks whether that affects the carpeting."
},
{
"name": "al",
"sprite": "al",
"x": 80,
"y": 66,
"look": "Officer Al. From here you can see his shoes and about nine inches of trouser. He is holding something up for everyone to look at. Everyone is looking at it.",
"synonyms": "tall officer legs",
"use_text": "You shake his hand. You have to jump."
},
{
"name": "guest",
"sprite": "guest",
"x": 118,
"y": 150,
"look": "A television actor in a dinner jacket, one arm raised mid-wave, smiling. He has been dead since the opening titles. This week's is a different one from last week's. Nobody has commented on the pattern.",
"synonyms": "star actor man body",
"use_text": "You check him for a pulse, as procedure requires. There isn't one, as the opening titles established. You note the time and step over him."
},
{
"name": "nordberg",
"sprite": "nordberg",
"x": 138,
"y": 152,
"look": "Officer Nordberg, in a wheelchair now, both legs out in front of him in casts. He is your backup on this assignment.",
"synonyms": "norberg partner officer backup",
"use_text": "You confirm the signal with Nordberg. If you are in trouble, you take off your hat. If you are in serious trouble, you take off your hat twice.",
"dialogue": [
{
"says": "Nordberg: I'll be right outside the whole time, Frank. Whole time. Right outside.",
"choices": [
{ "text": "Outside where, Nordberg?", "goto": 1 },
{ "text": "You can't drive, Nordberg.", "goto": 2 }
]
},
{
"says": "Nordberg: Outside. You know. Around. He gestures at the window with a plaster cast, and hits the window.",
"choices": [{ "text": "Just stay by the radio.", "goto": -1 }]
},
{
"says": "Nordberg: I can drive, Frank. I got the hand controls. He does not have the hands.",
"choices": [{ "text": "Stay by the radio, Nordberg.", "goto": -1 }]
}
]
},
{
"name": "hocken",
"sprite": "hocken",
"x": 106,
"y": 126,
"look": "Captain Ed Hocken, holding a fight programme he has folded down to one name.",
"synonyms": "captain ed boss",
"dialogue": [
{
"says": "Hocken: Three men in eleven months, Frank. All of them ready to talk about the Olympic, none of them talked. Somebody up there is buying fights and burying anybody who says so.",
"choices": [
{ "text": "Who's fighting Friday?", "goto": 1 },
{ "text": "Who's buying?", "goto": 2 },
{ "text": "I'll go in as a police officer.", "goto": 5, "kills": true },
{ "text": "I'm licensed and ready, Captain.", "goto": 3, "requires_flag": "paperwork_filed", "sets_flag": "briefed", "points": 10 }
]
},
{
"says": "Hocken: Kid named Buddy Kessler. Twenty-two and two. He's never gone down in his life and the money says he goes down in the fourth.",
"choices": [{ "text": "The money is usually right.", "goto": 0 }]
},
{
"says": "Hocken: A promoter named Sid Tannenbaum. Owns the gym, owns the room, owns the referee. We've had him three times and we've never had him once.",
"choices": [{ "text": "Then we do it from inside.", "goto": 0 }]
},
{
"says": "Hocken: Good. You're Frank Deacon. Frank Deacon has a licence, a bond, and eleven years of dues paid quarterly, because we filed the form. Hocken: Frank — Tannenbaum will check. He checks everybody. That form is the only thing standing between you and a very short career as a fight manager.",
"choices": []
},
{ "says": "", "choices": [] },
{
"says": "Hocken: As a what? You explain that you intend to enter a criminal organisation openly identified as a member of Police Squad, on the grounds that honesty has served you well. Hocken: Frank. Frank. Sit down. It is eleven days before they find the car."
}
]
}
]
}