programming language into a text adventure development system. Here are
the library constants, variables and routines, the standard object
properties and attributes, the verb grammars and actions.
programming language into a text adventure development system. Here are
the library constants, variables and routines, the standard object
properties and attributes, the verb grammars and actions.
- | `Object LibraryMessages`
- | `with before [;`
- | `{action}: "{string}";`
- | `{action}: "{string}";`
- | `{action}: switch (lm_n) {`
- | `{value}: "{string}";`
- | `{value}: "{string}",`
- | `(a) lm_o,".";`
- | `...`
- | `}`
- | `...`
- | `];`
+ | `Object LibraryMessages`
+ | `with before [;`
+ | `{action}: "{string}";`
+ | `{action}: "{string}";`
+ | `{action}: switch (lm_n) {`
+ | `{value}: "{string}";`
+ | `{value}: "{string}",`
+ | `(a) lm_o,".";`
+ | `...`
+ | `}`
+ | `...`
+ | `];`
Returns `true` if the `{obj_id}` has light.
`IndirectlyContains({parnt_obj_id,obj_id})`
Returns `true` if `{obj_id}` is currently a child or grand-child or
great-grand-child... of the `{parent_object}`.
Returns `true` if the `{obj_id}` has light.
`IndirectlyContains({parnt_obj_id,obj_id})`
Returns `true` if `{obj_id}` is currently a child or grand-child or
great-grand-child... of the `{parent_object}`.
Returns `true` if light can pass through the `{obj_id}`.
`Locale({obj_id,"string1","string2"})`
Returns `true` if light can pass through the `{obj_id}`.
`Locale({obj_id,"string1","string2"})`
Returns the type of its `{arg}` : 3 for a string address, 2 for a routine
address, 1 for an object number, or 0 otherwise.
Returns the type of its `{arg}` : 3 for a string address, 2 for a routine
address, 1 for an object number, or 0 otherwise.
`Object` of that class both define the same property, the value specified
for the `Object` normally overrides the value inherited from the `Class`.
However, if the property is additive then both values apply, with the
`Object` of that class both define the same property, the value specified
for the `Object` normally overrides the value inherited from the `Class`.
However, if the property is additive then both values apply, with the
The `{value}` can be a space-separated list of `{obj_ids}`, or a routine
which invokes `PlaceInScope()` or `ScopeWithin()` to specify objects.
The `{value}` can be a space-separated list of `{obj_ids}`, or a routine
which invokes `PlaceInScope()` or `ScopeWithin()` to specify objects.
For an object: receives every `{action}` and `{fake_action}` for which
this is the `{noun}`. For a room: receives every `{action}` which occurs
here.
For an object: receives every `{action}` and `{fake_action}` for which
this is the `{noun}`. For a room: receives every `{action}` which occurs
here.
For a non-English object: its definite and indefinite articles. The
`{value}` is an array of strings.
For a non-English object: its definite and indefinite articles. The
`{value}` is an array of strings.
For an object: receives every `{action}` and `{fake_action}` for which
this is the `{noun}`. For a room: receives every action which occurs
here.
For an object: receives every `{action}` and `{fake_action}` for which
this is the `{noun}`. For a room: receives every action which occurs
here.
`StartDaemon({obj_id})` and which then runs once each turn until
deactivated by `StopDaemon({obj_id})`.
`StartDaemon({obj_id})` and which then runs once each turn until
deactivated by `StopDaemon({obj_id})`.
For an object: called before the object's description is output. For a
room: called before the room's (long) description is output.
For an object: called before the object's description is output. For a
room: called before the room's (long) description is output.
Invoked at the end of each turn (after all appropriate daemons and
timers) whenever the object is in scope. The `{value}` can be a string,
or a routine.
Invoked at the end of each turn (after all appropriate daemons and
timers) whenever the object is in scope. The `{value}` can be a string,
or a routine.
`inventory_stage` has the value 2, and the routine should return `false`
to continue, or `true` to stop processing and produce no further output.
`inventory_stage` has the value 2, and the routine should return `false`
to continue, or `true` to stop processing and produce no further output.
For an `animate` object: receives person-to-person actions (`Answer`,
`Ask`, `Attack`, `Give`, `Kiss`, `Order`, `Show`, `Tell`, `ThrowAt` and
`WakeOther`) for which this is the `{noun}`. The `{value}` is a routine
For an `animate` object: receives person-to-person actions (`Answer`,
`Ask`, `Attack`, `Give`, `Kiss`, `Order`, `Show`, `Tell`, `ThrowAt` and
`WakeOther`) for which this is the `{noun}`. The `{value}` is a routine
Defines a space-separated list of words which are added to the Inform
dictionary. Each word can be supplied in apostrophes '...' or quotes
"..."; in all other cases only words in apostrophes update the
Defines a space-separated list of words which are added to the Inform
dictionary. Each word can be supplied in apostrophes '...' or quotes
"..."; in all other cases only words in apostrophes update the
For an `animate` or `talkable` object: the `{value}` is a routine called
to carry out the player's orders. The routine should return `false` to
continue, or `true` to stop processing the action and produce no further
For an `animate` or `talkable` object: the `{value}` is a routine called
to carry out the player's orders. The routine should return `false` to
continue, or `true` to stop processing the action and produce no further
For a `lockable` object: the `{obj_id}` (generally some kind of key)
needed to lock and unlock the object, or `nothing` if no key fits.
For a `lockable` object: the `{obj_id}` (generally some kind of key)
needed to lock and unlock the object, or `nothing` if no key fits.
============= =============================================================
`Close` "`CLOSE [UP]`", "`COVER [UP]`", "`SHUT [UP]`"
`Disrobe` "`DISROBE`", "`DOFF`", "`REMOVE`", "`SHED`", "`TAKE OFF`"
============= =============================================================
`Close` "`CLOSE [UP]`", "`COVER [UP]`", "`SHUT [UP]`"
`Disrobe` "`DISROBE`", "`DOFF`", "`REMOVE`", "`SHED`", "`TAKE OFF`"
`Wear` "`DON`", "`PUT ON`", "`WEAR`"
============= =============================================================
`Wear` "`DON`", "`PUT ON`", "`WEAR`"
============= =============================================================
Group 3 actions
===============
Group 3 actions are by default stubs which output a message and stop at the
"before" stage (so there is no "after" stage).
Group 3 actions
===============
Group 3 actions are by default stubs which output a message and stop at the
"before" stage (so there is no "after" stage).
============= =============================================================
`Answer` "`ANSWER TO`", "`SAY TO`",
"`SHOUT TO`", "`SPEAK TO`"
============= =============================================================
`Answer` "`ANSWER TO`", "`SAY TO`",
"`SHOUT TO`", "`SPEAK TO`"
Fake actions handle some special cases, or represent "real" actions from
the viewpoint of the second object.
Fake actions handle some special cases, or represent "real" actions from
the viewpoint of the second object.
================ ========================================================
`LetGo` Generated by `Remove`.
`ListMiscellany` Outputs a range of inventory messages.
================ ========================================================
`LetGo` Generated by `Remove`.
`ListMiscellany` Outputs a range of inventory messages.