I’m modifying some examples from the Inform 7 recipe book. I have the following:
The Lab is a room.
Kitty Pryde is a woman in the Lab.
The Undertomb is a room.
It is down from the Lab.
A thing can be secret or obvious.
A thing is usually obvious.
Cain Marko is a man in the Lab.
Cain Marko carries a quantity of plastic explosive.
The quantity of plastic explosive is secret.
Kitty Pryde carries a laptop bag and a microfilm.
The microfilm is secret.
Rule for deciding the concealed possessions of something:
if the particular possession is secret, yes;
otherwise no.
Instead of examining someone:
say "[The noun] is openly carrying [a list of unconcealed things carried by the noun]."
The player carries the vision glasses.
The vision glasses are wearable.
Instead of wearing the vision glasses:
now the player wears the vision glasses;
say "Nothing seems to happen."
Instead of wearing the vision glasses when the player can see anyone who is concealing something:
now the player wears the vision glasses;
say "The glasses feel warm. Immediately you can see [a list of things which are concealed by people who can be seen by the player]."
After printing the name of a thing (called the item) which is carried by someone while wearing the vision glasses:
say " (carried by [the holder of the item])"
Test secrets with "examine Kitty Pryde / examine Cain Marko / wear glasses / take off glasses / down / wear glasses".
This is a slightly modified version of the example “Interrogation”.
The idea here is that I would expect the last command in my test script (“wear glasses”) to provide a different response (“Nothing seems to happen”) than it does, given that the player has moved to another room where Kitty Pryde and Cain Marko are not. But instead here is the transcript:
Notice at [6] the same response occurs as at [3]. But the rule that is being followed there is “Instead of wearing the vision glasses when the player can see anyone who is concealing something:”. Yet at that point the player has moved down [5] and Kitty Pryde and Cain Marko cannot be seen.
This happens even if I change the rule to:
Instead of wearing the vision glasses in the presence of someone who is concealing something:
It seems that my understanding of and/or implementation of scope is a bit off, but I’m not seeing what I’m doing wrong here.
That said, the same problem seems to occur in “Interrogation” example from the manual as well. Specifically, if you add a new room to that example, go to it, and then “wave the wand”, you get the same effect that I’m seeing.