mirror of
https://github.com/ganelson/inform.git
synced 2024-07-08 01:54:21 +03:00
29 lines
1.8 KiB
Plaintext
29 lines
1.8 KiB
Plaintext
* Printing room description details of something
|
|
(Magnet which picks up nearby metal objects; Rules of Attraction)
|
|
A magnet which picks up nearby metal objects, and describes itself appropriately in room descriptions and inventory listings, but otherwise goes by its ordinary name.
|
|
|
|
Often we have some salient features of an object that we want to make sure the player notices whenever looking at the item in a room or in inventory. At other times, we may prefer to allow the name of the item to be printed bare. So for instance:
|
|
|
|
{*}"Rules of Attraction"
|
|
|
|
A metal form is a kind of thing. A magnet is a kind of metal form.
|
|
|
|
Every turn:
|
|
repeat with item running through nonmagnetic metal forms which are not part of something:
|
|
if item is in a container which contains a magnet (called attractor):
|
|
say "[The item] sticks to [the attractor].";
|
|
now the item is part of the attractor.
|
|
|
|
The horseshoe magnet is a magnet carried by the player. The nail is a metal form carried by the player. The Barn is a room. In the Barn is a bucket. In the bucket is a metal form called the iron hook.
|
|
|
|
Definition: a thing is nonmagnetic if it is not a magnet.
|
|
|
|
Rule for printing room description details of a magnet (called attractor): if something is part of the attractor, say " (stuck to which [is-are the list of things which are part of the attractor])".
|
|
|
|
After printing the name of a magnet (called attractor) while taking inventory:
|
|
if something is part of the attractor, say " (stuck to which [is-are the list of things which are part of the attractor])".
|
|
|
|
Before taking a touchable thing which is part of a magnet (called attractor):
|
|
move the noun to the holder of the attractor.
|
|
|
|
Test me with "i / put horseshoe in bucket / look / get horseshoe / i / drop horseshoe / i / look / get all / put all in bucket / i / x magnet / get nail / i". |