policesquadquest/cases/case-04-revenge-remorse/rooms/room2.json
type-two 9bfd6ddb44 Cases Three, Four, Five and Nine — the campaign is complete
Thirteen cases, all playable, all lint clean, all verified end-to-end at
100/100 (Case One is 95 + 5 optional by design).

Case Three — Rendezvous at Big Gulch. The racket only shakes down businesses
that are doing well, so to get extorted you must run a genuinely excellent
locksmith shop. Frank reads MODERN LOCKSMITHING cover to cover and retains all
of it while understanding none of it, which for locksmithing is the correct
ratio. The street won't talk because paper doesn't stand in your doorway on a
Friday; Halloran opens up only after you offer to fix his door, and his
extortion ledger has been lying open on a public counter for two and a half
years because nobody ever asked to see his book.

Case Four — Revenge and Remorse. Section 14 paragraph 9 was written in 1949 for
a 1949 timer, and this bomber files his timing stub twice because he cannot
leave a thing not-quite-square, which shortens the contact throw and energises
the trigger first. Follow the manual and it completes. So Frank disarms it
backwards — the one time in nineteen years he departs from a written
instruction, because he can prove the instruction is wrong in four sentences.
Carries PQ1's Captain loop and an explicit refusal of PQ3's centre-pixel bug.

Case Five — The Butler Did It. Chain of custody on a birthday cake: photograph,
weigh with a witness, seal all forty forks. Eleven pounds light in the tier
nobody cuts, because she was inside it for four minutes while forty people
looked at it. And Frank will not suspect the butler because the literature says
it is always the butler, so suspecting him would be quoting rather than
investigating. It is the butler.

Case Nine — The Final Insult. The marriage is a gate, not a subplot: the finale
is locked behind actually answering the counsellor's question, and Jane's terms
are "before you go, not after". He doesn't disarm the envelope, he swaps it and
writes in a winner by hand. He picks the one he liked.

Two point budgets came in over (110, 115) and are trimmed to exactly 100.
Sprite generation needed a kill-and-restart: two overlapping runs were competing
for the farm and producing "Resource temporarily unavailable" — one clean pass
at pool 2 completed all four sets with zero failures.

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

38 lines
3.5 KiB
JSON

{
"name": "Police Squad HQ — The Map Room",
"enter_text": "Eleven years of unsolved devices on one board, and a piece of string.",
"music": 4,
"strokes": [
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 168, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 0, "y": 0, "w": 160, "h": 64, "color": 8, "meaning": "Wall" } },
{ "Rect": { "x": 0, "y": 62, "w": 160, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 65, "w": 160, "h": 103, "color": 7, "meaning": "Floor" } },
{ "Rect": { "x": 10, "y": 8, "w": 62, "h": 50, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 14, "y": 12, "w": 54, "h": 42, "color": 8, "meaning": "None" } },
{ "Rect": { "x": 104, "y": 10, "w": 48, "h": 46, "color": 15, "meaning": "None" } },
{ "Rect": { "x": 108, "y": 14, "w": 40, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 108, "y": 22, "w": 30, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 108, "y": 30, "w": 36, "h": 3, "color": 0, "meaning": "None" } },
{ "Rect": { "x": 0, "y": 164, "w": 160, "h": 4, "color": 0, "meaning": "Wall" } }
],
"spawn": [20, 146],
"exits": [null, 3, null, 1],
"exit_flags": ["", "pattern_found", "", ""],
"exit_blocked": ["", "Four devices in eleven years and you have not yet worked out where the fifth one is.", "", ""],
"objects": [
{ "name": "citymap", "sprite": "citymap", "x": 40, "y": 108,
"look": "The city, pinned. Four devices in eleven years, all unsolved, all filed separately, because they were eleven years apart and nobody has ever put them on the same board. You have put them on the same board.",
"synonyms": "map board pins string city plot",
"points": 25, "sets_flag": "pattern_found",
"use_text": "You plot them by address and string them together. A bonded warehouse in 1947. A magistrates' annexe in 1951. A records store at the harbour board in 1955. The courthouse west wing on Tuesday. Every one of them held paper. Every one of them held paper about the same year — 1946 — and every one of them had a filed timing stub, filed twice, at slightly different angles, because the first pass was not square. There is a fifth building in this city that still holds 1946 paper, and it is on Alameda, and it opens at nine tomorrow. (There is no trick to this. The addresses are the addresses. You do not have to click the exact centre of the road.) (+25)" },
{ "name": "olson", "sprite": "olson", "x": 116, "y": 122,
"look": "Ted Olson, who has brought the four filed stubs from four separate property stores in four separate envelopes and laid them out in a row.",
"synonyms": "ted scientist lab technician",
"use_text": "Olson puts all four under the comparison scope at once, which requires him to build a rig out of two lab stands and a child. Olson: Same file. Same hand. Same second pass at four degrees off, every single time, for eleven years. Olson: Frank, whoever this is, he cannot leave a thing not-quite-right. That's not a habit. That's the whole man." },
{ "name": "cell", "sprite": "cell", "x": 138, "y": 138,
"look": "Down the corridor, Eddie Casales is still in a cell, because clearing a man takes longer than arresting him and always has.",
"synonyms": "cells bars door jail",
"use_text": "You go down and tell him what you have, which is not yet enough, and that it will be tomorrow. He says nobody has told him anything since Tuesday. You tell him that was wrong and that you are telling him now." }
]
}