the-infocom-files / witness

The Witness
3 stars 4 forks source link

Silly response to unlocking non-doors/containers in some cases #20

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>LOOK
(front porch)
The front porch is in an alcove, sheltered from the weather by the walls and
overhanging roof. A yellowish electric light hangs near the open front door to
the east, giving you a dim view of the driveway to the south and the front yard
behind a gate to the north.
The gate is closed. A door bell glows at you, almost daring you to ring it.

>UNLOCK ME
You don't have the right key.

>EAST
(entry)
Here in the entry is a small Shinto shrine, with a hanging scroll and an
arrangement of flowers, as well as a coat closet and a platform for storing
shoes. You can see a hallway to the east. The front door, on the west wall, is
open.

>UNLOCK ME
You'd have to be more clever to do that to the detective.

You can also get:

>UNLOCK ME
Linder says, "Don't leave yet. We're just getting started."

The "You'd have to be more clever ..." response is the default (see V-UNLOCK) when trying to unlock something that isn't a container or a door. But when you're outside, or when Mr. Linder is follow you, PRE-UNLOCK handles every attempt at unlocking anything:

<ROUTINE PRE-UNLOCK ()
 <COND (<DOBJ? CLOCK>
    <COND (<IN? ,CLOCK-KEY ,WINNER> <RFALSE>)
          (T <TELL "You don't have the right key." CR>)>)
       (,LINDER-FOLLOWS-YOU
    <TELL
"Linder says, \"Don't leave yet. We're just getting started.\"" CR>)
       (<OUTSIDE? ,HERE>
    <COND (<IN? ,PHONG-KEYS ,WINNER> <RFALSE>)
          (T <TELL "You don't have the right key." CR>)>)>>

I think it would be sensible to check for CONTBIT and DOORBIT in PRE-UNLOCK as well.