policesquadquest/cases/case-02-ring-of-fear/rooms/room3.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

107 lines
7.2 KiB
JSON

{
"name": "Sullivan's Gym — Tannenbaum's Office",
"enter_text": "Wood panelling, a floor safe, and a man who has been waiting to meet you since the trainer walked in here eleven minutes ago.",
"music": 3,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 62, "color": 8, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 28, "w": 160, "h": 2, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 60, "w": 160, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 63, "w": 160, "h": 105, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 10, "y": 6, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 46, "y": 6, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 82, "y": 6, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 118, "y": 6, "w": 30, "h": 20, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 16, "y": 12, "w": 18, "h": 8, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 52, "y": 12, "w": 18, "h": 8, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 88, "y": 12, "w": 18, "h": 8, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 124, "y": 12, "w": 18, "h": 8, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 106, "y": 34, "w": 44, "h": 22, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 110, "y": 38, "w": 36, "h": 14, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [16, 140],
"exits": [null, 4, null, 2],
"exit_flags": ["", "has_ledger", "", ""],
"exit_blocked": ["", "You have a story and no paper. A story is what the other three men had.", "", ""],
"objects": [
{
"name": "heavy",
"sprite": "heavy",
"x": 38,
"y": 122,
"look": "A man in an overcoat standing against the wall by the door, who has not taken his hands out of his pockets since you came in, and who is standing exactly where you would stand if your job were to make sure nobody left.",
"synonyms": "muscle enforcer man overcoat goon",
"use_text": "You do not touch him. There is a time to take a man like this and it is not in his own office with the door shut behind you, and Frank Deacon — who manages fighters, and who has been doing this for eleven years — would know that."
},
{
"name": "safe",
"sprite": "safe",
"x": 128,
"y": 116,
"look": "A floor safe behind the desk. Not a good one. A man who owns the police does not buy a good safe.",
"synonyms": "strongbox box dial floor",
"requires_flag": "cover_checked",
"points": 15,
"sets_flag": "has_ledger",
"use_text": "He opens it himself, in front of you, because you are a licensed fight manager and he is about to make you an offer, and men like Sid Tannenbaum do not make offers they intend to write down anywhere else. Inside is a ledger. Not a code, not a cipher — a ledger, in columns, in his own hand: eleven fights, four years, every one of them bought, with the fighter's name, the round, and the price. Kessler, B. — 4th — $8,000. Ellie's name is not in it. Ellie is not a line item. Ellie is what the eight thousand is for."
},
{
"name": "ledger",
"sprite": "ledger",
"x": 100,
"y": 128,
"look": "The ledger, open on the desk between you. Eleven fights in four years in a man's own handwriting. Three men died for a thing that has been sitting in a bad safe forty feet from a public gymnasium the entire time.",
"synonyms": "book accounts records columns",
"visible_flag": "has_ledger",
"use_text": "You do not take it. You read it, twice, and you put it back exactly where it was, and you close the safe, because the ledger is worth nothing at all if Sid Tannenbaum knows you have seen it before Friday."
},
{
"name": "promoter",
"sprite": "promoter",
"x": 74,
"y": 132,
"look": "Sid Tannenbaum. Owns the gym, owns the room, owns the referee, and is presently deciding whether he owns you.",
"synonyms": "sid tannenbaum boss man cigar",
"dialogue": [
{
"says": "Tannenbaum: So you're the fella been walking round my gym asking about my fighter. Tannenbaum: Deacon, is it. Frank Deacon. He is already reaching for the telephone.",
"choices": [
{ "text": "That's right.", "goto": 1 },
{ "text": "I manage fighters. Kessler's got nobody.", "goto": 1 },
{ "text": "Police Squad. You're under arrest, Tannenbaum.", "goto": 5, "kills": true }
]
},
{
"says": "Tannenbaum: Uh huh. He calls the State Athletic Commission, from his own desk, in front of you, and he reads out your name and he waits. He waits for eleven seconds. It is the longest eleven seconds of your career and there is nothing whatsoever you can do about it, because the answer was decided on Monday morning by a clerk in Sacramento with a four-page form.",
"choices": [
{ "text": "Take your time, Mr. Tannenbaum.", "goto": 2, "requires_flag": "paperwork_filed", "sets_flag": "cover_checked", "points": 10 },
{ "text": "There's been a mix-up with my licence.", "goto": 6, "kills": true }
]
},
{
"says": "Tannenbaum: Licensed eleven years, bonded, dues paid quarterly. He hangs up. He is delighted. He has been looking for a licensed manager with no fighters and no scruples for about two years, and Sacramento has just told him one walked in the door. Tannenbaum: Deacon, I like you. Sit down. Let me show you how this works.",
"choices": [
{ "text": "Show me how it works.", "goto": 3 },
{ "text": "What's in it for Kessler?", "goto": 4 }
]
},
{
"says": "Tannenbaum: Eight fights a year, ten per cent, and you never have to watch one. He goes to the floor safe, and he crouches down, and he starts turning the dial in front of you, because you are licensed, and because a licensed man is a man with something to lose.",
"choices": [{ "text": "Ten per cent is ten per cent.", "goto": -1 }]
},
{
"says": "Tannenbaum: Kessler gets his girl back Saturday and a long career going down in the fourth. Tannenbaum: You think that's cruel. It ain't cruel, Deacon. Cruel is twenty-two and two and no money and everybody in this city knowing your name for nine more months.",
"choices": [{ "text": "Show me how it works.", "goto": 3 }]
},
{
"says": "Tannenbaum: ...Police. He does not move. He does not even put the cigar down. The man in the overcoat by the door takes his hands out of his pockets, which is the first thing he has done since you came in, and it is the last thing you see him do."
},
{
"says": "Tannenbaum: A mix-up. He hangs up the telephone very gently, which is worse than slamming it. Tannenbaum: There's no Frank Deacon, is there. Eleven years I been asking Sacramento about people and there has never once been a mix-up. The man in the overcoat takes his hands out of his pockets."
}
]
}
]
}