We now have a situation where the parser is more than happy to construct impossible actions for remote NPCs, i.e. actions that they should not be able to perform due to a lack of visibility or touchability.
There is an existing system for preventing impossible actions for the PC; recall that this is the source of the “riddle” response when trying an answering it that
action with a remote NPC as the noun
. It should be possible to extend that to cover all actors. We’ll start with visibility.
The Standard Rules declare a rulebook for governing visibility, as discussed in WWI 12.19 Changing visibility:
The rule itself is written in I6. It more or less says: If the current action requires light, and the actor is the player, then follow the visibility rules. If that rulebook produces there is insufficient light
, then carry out the printing a refusal to act in the dark
activity.
We could tinker with the I6 rule, but I see an opportunity to leverage the I7 layer better. First, we’ll add some more outcomes to allow more generic language for success and failure.
Second, we’ll allow more information to flow outward about the exact cause of a failure of visibility.
Third, we’ll cut out the I6 rule and install new rules to replace what the original did, broadening them to include all actors.
And, having prepared for the possibility of something in-scope but not visible, we can add:
Test Transcript
>[1] z
Time passes.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A*.
In scope for Robot B: metal door, Robot B and chest.
>[2] wave light
You wave the flashlight.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A: Robot A, gold nugget and fissure.
In scope for Robot B: metal door, Robot B and chest.
>[3] g
You wave the flashlight.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A*.
In scope for Robot B: metal door, Robot B and chest.
>[4] get box
Taken.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A*.
In scope for Robot B: metal door, Robot B and chest.
>[5] d
Pit
High above, a slash of brightness marks the fissure through which you first entered the caves.
You can also see Robot A and a gold nugget here.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, fissure and Robot B*.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget and fissure.
In scope for Robot B: metal door, Robot B and chest.
>[6] robot, take nugget
Robot A picks up the gold nugget.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, fissure and Robot B*.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget and fissure.
In scope for Robot B: metal door, Robot B and chest.
>[7] e
Alcove
You can see a metal door here.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, metal door and Robot B*.
In scope for Robot A*: Robot A* and gold nugget*.
In scope for Robot B: metal door, Robot B and chest.
>[8] w
Pit
High above, a slash of brightness marks the fissure through which you first entered the caves.
You can also see Robot A here.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, fissure and Robot B*.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget and fissure.
In scope for Robot B: metal door, Robot B and chest.
>[9] robot, go east
Robot A goes east.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A* and gold nugget*.
In scope for Robot B: metal door, Robot B and chest.
>[10] wave
You wave.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A: Robot A, gold nugget and metal door.
In scope for Robot B: metal door, Robot B and chest.
>[11] g
You wave.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A* and gold nugget*.
In scope for Robot B: metal door, Robot B and chest.
>[12] jump
You jump on the spot.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A* and gold nugget*.
In scope for Robot B: metal door, Robot B, chest and brass key.
>[13] g
You jump on the spot.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, fissure and Robot B*.
In scope for Robot A*: Robot A* and gold nugget*.
In scope for Robot B: metal door, Robot B and chest.
>[14] e
Alcove
You can see Robot A and a metal door here.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door and Robot B*.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget and metal door.
In scope for Robot B: metal door, Robot B and chest.
>[15] robot, go east
Robot A goes east.
In scope for yourself: yourself, flashlight, cardboard box, Robot A*, metal door and Robot B*.
In scope for Robot A: Robot A, gold nugget, metal door, Robot B and chest.
In scope for Robot B: Robot A, gold nugget, metal door, Robot B and chest.
>[16] e
Mysterious Cell
You can see a metal door, Robot A, Robot B and a chest (closed) here.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B and chest.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B and chest.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B and chest.
>[17] open chest
You open the chest, revealing a brass key.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[18] drop box
Dropped.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[19] robot b, enter box
Robot B gets into the cardboard box.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[20] close box
You close the cardboard box.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B*, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, chest and brass key.
In scope for Robot B*: cardboard box* and Robot B*.
>[21] open box
You open the cardboard box, revealing Robot B.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[22] put chest in box
(first taking the chest)
You put the chest into the cardboard box.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[23] put light in box
You put the flashlight into the cardboard box.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[24] close box
You close the cardboard box.
In scope for yourself: yourself, cardboard box, Robot A, gold nugget, metal door and Robot B*.
In scope for Robot A: yourself, cardboard box, Robot A, gold nugget and metal door.
In scope for Robot B: flashlight, cardboard box, Robot B, chest and brass key.
>[25] jump
You jump on the spot.
In scope for yourself: yourself, cardboard box, Robot A, gold nugget, metal door and Robot B*.
In scope for Robot A: yourself, cardboard box, Robot A, gold nugget and metal door.
In scope for Robot B: flashlight, cardboard box, Robot B and chest.
>[26] open box
You open the cardboard box, revealing a flashlight, a chest and Robot B.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B and chest.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B and chest.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B and chest.
>[27] open chest
You open the chest, revealing a brass key.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[28] put light in chest
(first taking the flashlight)
You put the flashlight into the chest.
In scope for yourself: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot A: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
In scope for Robot B: yourself, flashlight, cardboard box, Robot A, gold nugget, metal door, Robot B, chest and brass key.
>[29] close box
You close the cardboard box.
In scope for yourself: yourself, cardboard box, Robot A, gold nugget, metal door and Robot B*.
In scope for Robot A: yourself, cardboard box, Robot A, gold nugget and metal door.
In scope for Robot B: flashlight, cardboard box, Robot B, chest and brass key.
>[30] jump
You jump on the spot.
In scope for yourself: yourself, cardboard box, Robot A, gold nugget, metal door and Robot B*.
In scope for Robot A: yourself, cardboard box, Robot A, gold nugget and metal door.
In scope for Robot B*: cardboard box* and Robot B*.