Chapter 4: Kinds
4.5. Assemblies and body parts

In the previous chapter, we saw that it was possible to make sub-parts of things. For instance,

The white door is in the Drawing Room. The handle is part of the white door.

creates a door with an attached handle. But what if we want to say that not just this door, but every door, should have a handle? To do this we first need to create a kind called "handle", since there will clearly need to be many handles. The solution is:

A handle is a kind of thing. A handle is part of every door.

"Every" is a loaded word and best used sparingly. A sentence like "A handle is part of every handle" would, if taken literally, mean that a handle takes forever to make and is never finished. Inform will reject this, but the moral is clear: we should think about what we are doing with "every". Another restriction is it is not safe to meddle with the three fundamental kinds "room", "container" or "supporter" by making them into assemblies, but in fact this one can be got around quite easily, like so -

A silver coin is a kind of thing. A banking room is a kind of room. Five silver coins are in every banking room.

The effect of sentences like these is to make what we might call "assemblies" instead of single things. When a banking room is created, so are five more silver coins; when a door is created, so is another handle. Such sentences act not only on items created later on in the source text, but also on all those created so far.

This is especially useful for body parts. If we would like to explore Voltaire's suggestion that history would have been very different if only Cleopatra's nose had been shorter, we will need noses:

A nose is a kind of thing. A nose is part of every person.

Something to bear in mind, though, is that in play the following may well happen:

>examine nose
Which do you mean, your nose, Antony's nose or Cleopatra's nose?

...because the player, being also a "person", is as susceptible to the invention of noses as anyone else.

Note that Inform names the otherwise nameless noses after their owners. It will always do this unless there are multiple indistinguishable things being created, as in the "five silver coins are in every banking room" example: those will all just be called "silver coin".

Something to watch out for is that if we write:

A nose is a kind of thing. A nose is part of every person. Antony and Cleopatra are people.

then we can begin talking about "Antony's nose" and "Cleopatra's nose": but it is not safe to discuss these before the sentence "A nose is part of every person" which creates them. Another pitfall is that if we then write:

Marcus Tullius Cicero is a person.

then although "Marcus Tullius Cicero's nose" and "Cicero's nose" are both valid names for the consular nose, "Marcus's nose" is not.


46
* Example  Being Prepared
A kind for jackets, which always includes a container called a pocket.

RB

"Being Prepared"

A jacket is a kind of thing. A jacket is always wearable.

A pocket is a kind of container. A pocket is part of every jacket. The carrying capacity of a pocket is always 2.

After examining a jacket:
    let target be a random pocket which is part of the noun;
    say "[The target] contains [a list of things in the target]."

Now we've created the rules that will govern any specific jackets we might happen to put in our game: each one will always have one pocket, which will be able to contain no more than two things. The description of "a list of things" is text with a list, which we will learn about further in a few sections.

Next we might want to create the environment and an actual example of the jacket kind:

Tent is a room. "A dome made of two flexible rods and a lot of bright green ripstop nylon. It bills itself as a one-man tent, but you'd call it a two-dwarf tent: there is no way to arrange yourself on its square floor so that you can stretch out completely."

The windbreaker is a jacket. "Your windbreaker is balled up in the corner." The description of the windbreaker is "Both elbows are stained from yesterday's entrenching project."

The windbreaker's pocket contains a Swiss army knife and a folded map. The windbreaker is in the Tent.

Notice that, since Inform has created a pocket for the windbreaker, we can now refer to it by name in our source, giving it any additional properties we need to define. Here we simply put a few items into it.

The player wears a whistle. The description of the whistle is "To frighten bears."

Test me with "x windbreaker / get windbreaker / get knife / get map / i / put windbreaker in pocket / put whistle in pocket / put map in pocket / put knife in pocket / i".

Notice that Inform automatically refuses to put the windbreaker into its own pocket: as a default, a container cannot contain something of which it is itself a part.

47
** Example  Model Shop
An "on/off button" which controls whatever device it is part of.

RB
48
*** Example  The Night Before
Instructing Inform to prefer different interpretations of EXAMINE NOSE, depending on whether the player is alone, in company, or with Rudolph the Red-nosed Reindeer.

RB
49
*** Example  U-Stor-It
A "chest" kind which consists of a container which has a lid as a supporter.

RB


PreviousContentsNext