Chapter 8: Change
8.11. Now...

"Now" has already appeared several times in this chapter, being used like a Swiss army knife to change values of all kinds:

now the score is 100;

In fact, "now" is by far the most flexible phrase known to Inform.

now (a condition)

This phrase makes the condition become true. Examples:

now the score is 100;
now the player is Kevin;
now the front door is open;
now Mr Darcy is wearing the top hat;
now all the doors are open;
now all of the things in the sack are in the box;

Inform issues a problem message if the condition asks to do the impossible ("now 3 is an even number") or is vague ("now the duck is not in the Lily Pond") or not in the present tense ("now the front door had been open").

We've now seen all three things which can be done with a condition S which describes the world:

S. - The relation holds at the start of play.
if S, ...; - Does the relation hold right now?
now S; - Make the relation hold from now on.

For instance,

The apple is in the basket.
if the apple is in the basket, ...;
now the apple is in the basket;


125
* Example  Bee Chambers
A maze with directions between rooms randomized at the start of play.

RB
126
** Example  Hatless
It's tempting to use "now..." to distribute items randomly at the start of play, but we need to be a little cautious about how we do that.

RB
127
*** Example  Technological Terror
A ray gun which destroys objects, leaving their component parts behind.

RB

"Technological Terror"

The Decomposition Ray Gun is a thing carried by the player.

First we need to define our shooting action:

Shooting it with is an action applying to two things.

Check shooting something with something:
    if the player is not carrying the Ray Gun, say "You are pathetically unarmed!" instead;
    if the second noun is not the Ray Gun, say "[The second noun] does not fire." instead;
    if the noun is the Ray Gun, say "Nice trick if you can do it!" instead;
    if the noun is the player, say "That would be disastrous!" instead.

Next, some grammar to allow the player to use this action:

Understand "shoot [gun] at [something ungunlike]" as shooting it with (with nouns reversed).

Definition: a thing is ungunlike if it is not the gun.

Understand "shoot [something ungunlike] with [gun]" as shooting it with. Understand "shoot [something] with [something]" as shooting it with.

Understand "shoot [something] at [something]" as shooting it with (with nouns reversed). Understand "fire [gun] at [something ungunlike]" as shooting it with (with nouns reversed). Understand "fire at [something ungunlike] with [gun]" as shooting it with. Understand "fire at [something] with [something]" as shooting it with.

Strictly speaking, we only need these last grammar lines (with "understand shoot something...") in order to define an action that the player can take. Adding more grammar lines means that Inform will try to match the most specific ones first, which is useful when the player types something ambiguous and there is one choice that obviously fits this action better than the others. See the chapter on Understanding for a further discussion.

Here we get to use "now..." to give it its destructive effect:

Carry out shooting something with something:
    say "ZAP! [The noun] twinkles out of existence! [if something is part of the noun][The list of things which are part of the noun] clatter to the ground! [end if][paragraph break]";
    now every thing which is part of the noun is in the location;
    remove the noun from play.

The Deathbot Assembly Line is a room. "Here is the heart of the whole operation, where your opponents are assembled fresh from scrap metal and bits of old car." The dangerous robot is a thing in the Assembly Line. "One dangerous robot looks ready to take you on!" A robotic head, a drill arm, a needle arm, a crushing leg and a kicking leg are parts of the dangerous robot.

Instead of examining something when something is part of the noun:
    say "[The noun] consists of [a list of things which are part of the noun]."

Test me with "x robot / shoot robot / fire at kicking leg / shoot gun at drill arm / look".


PreviousContentsNext