policesquadquest/cases/case-08-smell-of-fear/game.json
type-two 3b20f7accc Case Eight, a case picker, and a linter for the authoring traps
Case Eight — The Smell of Fear (1991). Act II, full colour. Five rooms, 100
points, verified at 100/100 with two verified deaths.

The puzzle is identification: Meinheimer has an eidetic memory, so the double
cannot be caught out on a fact — he can be caught out on a manner. Ask him two
questions and he answers "about four hundred", "roughly", "give or take", and a
man who remembers everything never says roughly. The catch is gated on having
heard the approximations, so the player has to earn it. Accusing him without
that is a death. Also in: the Blue Note, the SWAT tank through the wall into the
zoo (which arms the lion that kills Hapsburg two rooms later), the mariachi
infiltration, and a nuclear device disarmed by tripping over its power cable.

tools/lint.py: three of the four bugs that cost real time here were the same
class, and I walked into sets_flag-on-a-takeable twice — once in Case Ten, then
again in Case Eight after documenting it. So the rules are a linter now, not a
paragraph. It caught two live instances of that trap (case-08 blueprint,
case-10 wig) and a scoring mismatch on the first run. All five cases lint clean
and all five still win.

play.sh is now a case picker: bare invocation lists the cases and asks, or pass
a number.

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

23 lines
1.1 KiB
JSON

{
"name": "Police Squad Quest — Case Eight: The Smell of Fear",
"start_room": 0,
"max_score": 100,
"intro_text": "It was the kind of night that makes a man wonder where it all went wrong. Somebody blew up a research institute this morning, and on Thursday Dr. Albert Meinheimer tells the President where the country gets its power for the next fifty years. My name is Drebin. Detective Lieutenant Frank Drebin, Police Squad. Type 'help'.",
"death_text": "† OFFICER DOWN. The recommendation goes ahead without you. The day restarts. †",
"verbs": [
{ "name": "use", "words": ["frisk", "search", "inspect", "cuff", "arrest", "wear", "radio", "halt", "unplug", "disarm", "drive", "free", "play"] },
{ "name": "look", "words": ["investigate", "observe", "detect"] },
{ "name": "talk", "words": ["interrogate", "question", "brief", "test"] }
],
"flags": {
"jane_warned": false,
"has_blueprint": false,
"heard_approx": false,
"knows_fake": false,
"lion_loose": false,
"meinheimer_free": false,
"disguised": false,
"confessed": false
}
}