Commit Graph

3 Commits

Author SHA1 Message Date
type-two
72815f8c55 Case Six: Testimony of Evil — the whiskey exploit is the puzzle
Act I, monochrome. Five rooms, 100 points, verified at 100/100 with four
verified deaths.

Built out of John's Police Quest material. PQ1's famous 8-bit integer underflow
is not an easter egg here, it is the central puzzle: Frank signs for a $40
operational float clipped to a note reading DO NOT EXCEED YOUR FLOAT, the back
room costs $2,500, and exceeding the float by one dollar wraps the department
ledger's eight-bit field to 255 — the terminal appends the cents column and
authorises $2,550.00. He keeps drinking to 132 because it will not do to stop
suddenly. Accounts raise it in March; it goes to a hearing.

PQ1's Gremlin runs through the whole case and is never resolved: chickens on the
Captain's desk, on Al's shoulder, on the murdered guest star, and one in the
winning freeze-frame. Nobody has said the word "chicken" out loud in eleven
years. No file was ever opened.

Then the stage: six memorised jokes, in order, and every "improvise" option is
fatal — plus a full glass on a stool three feet from the microphone, which is
how Danny Cavanaugh died and which you must not touch.

Linter gained the rule that actually caused this session's bug: MRPGI's
obj_matches is a BIDIRECTIONAL substring test over name AND synonyms, and
match_obj takes the first hit in array order, so an earlier object can make a
later one unreachable by its own name. `talk barman` was addressing `clubbar`.
It found two more: `sideboard` swallowing `cardtable`, and `bouncer` swallowing
`bunkerdoor` — the last of which shipped broken in Case Ten. All six cases lint
clean and all six still win.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:11:22 +10:00
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
type-two
e95360a1b2 Case Ten: The P.L.O.T. Device (2025) — Drebin Jr, and the owl
Act III, cold-palette EGA. Six rooms, 100 points, verified end-to-end
headlessly at 100/100 with the win firing.

The homage John asked for is a register, not a costume. Nielsen played Drebin Sr
oblivious — the joke was he never noticed. Neeson plays Jr sincere: he notices
everything and means all of it, so his text is written straight and often
genuinely moving, and the comedy is what it turns out to be about. He gives a
Taken speech about his particular set of skills, chief among them paperwork. He
takes four armed robbers in eleven seconds dressed as a schoolgirl with his back
to the actual crime. Cane gets the same sincerity back at him from the wrong
face.

The three-era payoff pays off: 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. The palette rule from DESIGN §2 doing the emotional
work at the climax.

Planned cases 10 and 11 merged into one folder — same film, same cast, no
duplicated sprite set, and the owl payoff lands in the same case as its setup.

Third authoring trap documented: sets_flag fires on use, never on take (points
does both). A takeable item silently failed to set its flag and the gate it fed
never opened; gate on `needs`, which checks inventory, instead.

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