| Chapter 12: Advanced Actions |

| 12.16. Changing reachability

The question of what the player can, and cannot, reach to touch is important in interactive fiction. It contains some of the subtlest ideas in the model world, though they often go unnoticed. For instance, if a key is on a shelf which is part of a closed box, can we reach for the key? This comes down to whether the shelf, described only as "part of" the box, is on the inside or the outside: and in fact, because it cannot know which is the case, Inform allows either. So in general it is best to regard "parts" as being exterior parts, but to avoid having parts on containers that might in the course of play be closed up with the player inside.

We can, if we wish, change the principles of what can be touched by writing new reaching inside or reaching outside rules. Returning to the example of the conical flask:

> A rule for reaching inside the flask: say "Your hand passes through the glass as if it were not there, chilling you to the bone."; allow access.

(Or this could equally be called "a reaching inside rule for the flask".) More generally, we could give the usual flexible description of what the rule applies to:

> A rule for reaching inside open containers: say "Your hands seem enigmatically too large for [the container in question]."; deny access.

The "container in question" is the one to which the rule is being applied. Note that a reaching inside rule can "deny access" (stopping with fail), or "allow access" (stopping with success), or neither, in which case the decision is left up to any subsequent rules in the rulebook to make. If none of them decide, access is allowed.

If it seems possible that these rules will be employed by people other than the player, then we need to write them a little more carefully, and in particular we need to ensure that they print nothing for other people. In the first case below, anybody can reach through the glass; in the second case, only the player cannot reach into open containers.

> A rule for reaching inside the flask:
> if the person reaching is the player, say "Your hand passes through the glass as if it were not there, chilling you to the bone.";
> allow access.

> A rule for reaching inside open containers:
> if the person reaching is the player begin;
> say "Your hands seem enigmatically too large for [the container in question].";
> deny access.
> end if.

The "person reaching" is, as its name suggests, the person trying to reach through the barrier in question.

176
| Example Magneto's Revenge Kitty Pryde of the X-Men is able to reach through solid objects, so we might implement her with special powers that the player does not have...

"Magneto's Revenge" The School for Gifted Youngsters is a room. Kitty Pryde is a woman in the School for Gifted Youngsters. "Kitty Pryde waits for you to say why you summoned her out of class." The description is "You see nothing special about Kitty Pryde. But that is only because she has learned to conceal her mutant powers: in fact she has the alternative name Shadowcat, and the ability to phase through solid objects." The glass box is a container in the School for Gifted Youngsters. It is closed, openable, and transparent. In the box is a quantity of poisonous gas. In the box is a message from Magneto. Instead of examining the message when the player is not carrying the message: say "You'd need to be holding it before you could read it." Instead of opening the glass box: say "You're deterred by the swirling bottle-green mist within." Check someone trying taking the gas (this is the gaseous object rule): rule fails. Unsuccessful attempt by someone trying taking the gas: say "The gas isn't something one can pick up in one's bare hands." Every turn: if the player can touch the gas begin; say "The gas has reached your lungs!"; end the game in death; end if. A rule for reaching inside something: if the person reaching is Kitty, allow access. Persuasion rule for asking someone to try doing something: persuasion succeeds. Test me with "get message / kitty, get message / open box / kitty, open box". Now the player can get Kitty to take the message without releasing the poisonous gas: Kitty Pride waits for you to tell her why you summoned her out of class. You can also see a glass box (closed) (in which are some poisonous gas and a message from Magneto) here. >kitty, get message Kitty Pryde picks up a message from Magneto.

177
| Example Dinner is Served A window between two locations. When the window is open, the player can reach through into the other location; when it isn't, access is barred.

Previous | Contents | Next