Appendix F – Inform library¶
ibrary files define Inform’s model world, turning a conventional 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.
Library objects¶
compass- A
containerobject holding the twelve direction objectsd_obj,e_obj,in_obj,n_obj,ne_obj,nw_obj,out_obj,s_obj,se_obj,sw_obj,u_obj,w_obj.
LibraryMessagesIf defined (between Includes of
ParserandVerbLib), changes standard library messages:Object LibraryMessageswith before [;action: "string";action: "string";action: switch (lm_n) {value: "string";value: "string",(a) lm_o,".";...}...];
selfobj- The default player object. Avoid: use instead the
playervariable, which usually refers toselfobj.
thedark- A pseudo-room which becomes the
locationwhen there is no light (although the player object is not moved there).
Library constants¶
In addition to the standard constants true (1), false (0)
and nothing (0), the Library defines NULL (-1) for an
action, property or pronoun whose current value is undefined.
LIBRARY_PARSER, LIBRARY_ENGLISH, LIBRARY_VERBLIB and
LIBRARY_GRAMMAR are defined to mark the end of inclusion of Parser.h,
English.h, VerbLib.h and Grammar.h respectively.
User-defined constants¶
Some constants control features rather than represent values.
AMUSING_PROVIDED- Activates the
Amusingentry point. COMMENT_CHARACTER = 'char'- Introduces a comment line ignored by the parser (default “*”).
DEATH_MENTION_UNDO- Offers “UNDO the last move” at game end.
DEBUG- Activates the debug commands.
Headline = "string"- Mandatory: game style, copyright info, etc.
MANUAL_PRONOUNS- Pronouns reflect only objects mentioned by the player.
MAX_CARRIED = expr- Limit on direct possessions that the player can carry (default 100).
MAX_SCORE = expr- Maximum game score (default 0).
MAX_TIMERS = expr- Limit on active timers/daemons (default 32).
NO_PLACES- “
OBJECTS” and “PLACES” verbs are barred. NO_SCORE- Game doesn’t use scoring.
NUMBER_TASKS = expr- Number of
scoredtasks (default 1). OBJECT_SCORE = expr- For taking a
scoredobject for the first time (default 4). ROOM_SCORE = expr- For visiting a
scoredroom for the first time (default 5). SACK_OBJECT = obj_id- A
containerobject where the game places held objects. START_MOVE = expr- Initial value of turns counter (default 0).
Story = "string"- Mandatory: the name of the story.
TASKS_PROVIDED- Activates the task scoring system.
USE_MODULES- Activates linking with pre-compiled library modules.
WITHOUT_DIRECTIONS- De-activates standard compass directions (bar “
IN” and “OUT”). Place alternative directions in thecompass.
Library variables¶
action- The current
action.
actor- The target of an instruction: the player, or an NPC.
deadflag- Normally 0: 1 indicates a regular death, 2 indicates that the player has won, 3 or more denotes a user-defined end.
inventory_stage- Used by
inventandlist_togetherproperties.
keep_silent- Normally
false;truemakes most group 2 actions silent.
location- The player’s current room; unless that’s dark, when it contains
thedark,real_locationcontains the room.
notify_mode- Normally
true:falseremains silent when score changes.
noun- The primary focus object for the current action.
player- The object acting on behalf of the human player.
real_location- The player’s current room when in the dark.
score- The current score.
second- The secondary focus object for the current action.
self- The object which received a message. (Note: a run-time variable, not a compile-time constant.)
sender- The object which sent a message (or
nothing).
task_scores- A byte array holding scores for the task scoring system.
the_time- The game’s clock, in minutes 0..1439 since midnight.
turns- The game’s turn counter.
wn- The input stream word number, counting from 1.
Library routines¶
Achieved(expr)- A scored task has been achieved.
AfterRoutines()- In a group 2 action, controls output of “after” messages.
AllowPushDir()- An object can be pushed from one location to another.
Banner()- Prints the game banner.
ChangePlayer(obj_id,flag)- Player assumes the persona of the
obj_id. If the optionalflagistrue, room descriptions include “(asobject)”.
CommonAncestor(obj_id1,obj_id2)- Returns the nearest object which has a parental relationship to both
obj_ids, ornothing.
DictionaryLookup(byte_array,length)- Returns address of word in dictionary, or 0 if not found.
DrawStatusLine()- Refreshes the status line; happens anyway at end of each turn.
GetGNAOfObject(obj_id)- Returns gender-number-animation 0..11 of the
obj_id.
HasLightSource(obj_id)- Returns
trueif theobj_idhas light.
IndirectlyContains(parnt_obj_id,obj_id)- Returns
trueifobj_idis currently a child or grand-child or great-grand-child... of theparent_object.
IsSeeThrough(obj_id)- Returns
trueif light can pass through theobj_id.
Locale(obj_id,"string1","string2")- Describes the contents of
obj_id, and returns their number. After objects with own paragraphs, the rest are listed preceded bystring1orstring2.
LoopOverScope(routine_id,actor)- Calls
routine_id(obj_id)for eachobj_idin scope. If the optionalactoris supplied, that defines the scope.
MoveFloatingObjects()- Adjusts positions of game’s
found_inobjects.
NextWord()- Returns the next dictionary word in the input stream, incrementing
wnby one. Returnsfalseif the word is not in the dictionary, or if the input stream is exhausted.
NextWordStopped()- Returns the next dictionary word in the input stream, incrementing
wnby one. Returnsfalseif the word is not in the dictionary, -1 if the input stream is exhausted.
NounDomain(obj_id1,obj_id2,type)- Performs object parsing; see also
ParseToken().
ObjectIsUntouchable(obj_id,flag)- Tests whether there is a barrier - a container object which is not open -
between player and
obj_id. Unless the optionalflagistrue, outputs “You can’t because ... is in the way”. Returnstrueis a barrier is found, otherwisefalse.
OffersLight(obj_id)- Returns
trueif theobj_idoffers light.
ParseToken(type,value)- Performs general parsing; see also
NounDomain().
PlaceInScope(obj_id)- Used in an
add_to_scopeproperty orscope=token to put theobj_idinto scope for the parser.
PlayerTo(obj_id,flag)- Moves the player to
obj_id. Prints its description unless optionalflagis 1 (no description) or 2 (as if walked in).
PrintOrRun(obj_id,property,flag)- If
obj_id.propertyis a string, output it (followed by a newline unless optionalflagistrue), and returntrue. If it’s a routine, run it and return what the routine returns.
PronounNotice(obj_id)- Associates an appropriate pronoun with the
obj_id.
PronounValue('pronoun')- Returns the object to which ‘
it‘ (or ‘him‘, ‘her‘, ‘them‘) currently refers, ornothing.
ScopeWithin(obj_id)- Used in an
add_to_scopeproperty orscope=token to put the contents of theobj_idin scope for the parser.
SetPronoun('pronoun',obj_id)- Defines the
obj_idto which a given pronoun refers.
SetTime(expr1,expr2)Sets
the_timetoexpr1(in mins 0..1439 since midnight), running atexpr2-+ve:expr2minutes pass each turn;-ve:-expr2turns take one minute;zero: time stands still.
StartDaemon(obj_id)- Starts the
obj_id‘s daemon.
StartTimer(obj_id,expr)- Starts the
obj_id‘s timer, initialising itstime_lefttoexpr. The object’stime_outproperty will be called after that number of turns have elapsed.
StopDaemon(obj_id)- Stops the
obj_id‘s daemon.
StopTimer(obj_id)- Stops the
obj_id‘s timer.
TestScope(obj_id,actor)- Returns
trueif theobj_idis in scope, otherwisefalse. If the optionalactoris supplied, that defines the scope.
TryNumber(expr)- Parses word
exprin the input stream as a number, recognising decimals, also English words one..twenty. Returns the number 1..10000, or -1000 if the parse fails.
UnsignedCompare(expr1,expr2)- Returns -1 if
expr1is less thanexpr2, 0 ifexpr1equalsexpr2, and 1 ifexpr1is greater thanexpr2. Both expressions are unsigned, in the range 0..65535.
WordAddress(expr)- Returns a byte array containing the raw text of word
exprin the input stream.
WordInProperty(word,obj_id,property)- Returns
trueif the dictionarywordis listed in thepropertyvalues for theobj_id.
WordLength(expr)- Returns the length of word
exprin the input stream.
WriteListFrom(obj_id,expr)- Outputs a list of
obj_idand its siblings, in the given style, anexprformed by adding any of:ALWAYS_BIT,CONCEAL_BIT,DEFART_BIT,ENGLISH_BIT,FULLINV_BIT,INDENT_BIT,ISARE_BIT,NEWLINE_BIT,PARTINV_BIT,RECURSE_BIT,TERSE_BIT,WORKFLAG_BIT.
YesOrNo()- Returns
trueif the player types “YES”,falsefor “NO”.
ZRegion(arg)- 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 properties¶
Where the value of a property can be a routine, several formats are
possible (but remember: embedded “]” returns false, standalone
“]” returns true):
property [; stmt; stmt; ... ]property [; return routine_id(); ]property [; routine_id(); ]property routine_id
In this appendix, (+) marks an additive property. Where a Class and an
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’s value being considered first.
add_to_scope- For an object: additional objects which follow it in and out of scope.
The
valuecan be a space-separated list ofobj_ids, or a routine which invokesPlaceInScope()orScopeWithin()to specify objects.
after(+)For an object: receives every
actionandfake_actionfor which this is thenoun. For a room: receives everyactionwhich occurs here.The
valueis a routine of structure similar to aswitchstatement, having cases for the appropriateactions(and an optionaldefaultas well); it is invoked after the action has happened, but before the player has been informed. The routine should returnfalseto continue, telling the player what has happened, ortrueto stop processing the action and produce no further output.
article- For an object: the object’s indefinite article - the default is
automatically “a”, “an” or “some”. The
valuecan be a string, or a routine which outputs a string.
articles- For a non-English object: its definite and indefinite articles. The
valueis an array of strings.
before(+)For an object: receives every
actionandfake_actionfor which this is thenoun. For a room: receives every action which occurs here.The
valueis a routine invoked before the action has happened. Seeafter.
cant_go- For a room: the message when the player attempts an impossible exit. The
valuecan be a string, or a routine which outputs a string.
capacityFor a
containerorsupporterobject: the number of objects which can be placed in or on it - the default is 100.For the player: the number which can be carried -
selfobjhas an initial capacity ofMAX_CARRIED.The
valuecan be a number, or a routine which returns a number.
d_toFor a room: a possible exit. The
valuecan befalse(the default): not an exit;- a string: output to explain why this is not an exit;
- a
room: the exit leads to this room; - a
doorobject: the exit leads through this door; - a routine which should return
false, a string, aroom, adoorobject, ortrueto signify “not an exit” and produce no further output.
daemon- The
valueis a routine which can be activated byStartDaemon(obj_id)and which then runs once each turn until deactivated byStopDaemon(obj_id).
describe(+)For an object: called before the object’s description is output. For a room: called before the room’s (long) description is output.
The
valueis a routine which should returnfalseto continue, outputting the usual description, ortrueto stop processing and produce no further output.
descriptionFor an object: its description (output by
Examine).For a room: its long description (output by
Look).The
valuecan be a string, or a routine which outputs a string.
door_dirFor a
compassobject (d_obj,e_obj, ...): the direction in which an attempt to move to this object actually leads.For a
doorobject: the direction in which this door leads.The
valuecan be a directional property (d_to,e_to, ...), or a routine which returns such a property.
door_toFor a
doorobject: where it leads. The value can befalse(the default): leads nowhere;- a string: output to explain why door leads nowhere;
- a
room: the door leads to this room; - a routine which should return
false, a string, aroom, ortrueto signify “leads nowhere” without producing any output.
e_to- See
d_to.
each_turn(+)- Invoked at the end of each turn (after all appropriate daemons and
timers) whenever the object is in scope. The
valuecan be a string, or a routine.
found_inFor an object: the rooms where this object can be found, unless it has the
absentattribute. Thevaluecan be- a space-separated list of
rooms(where this object can be found) orobj_ids(whose locations are tracked by this object); - a routine which should return
trueif this object can be found in the current location, otherwisefalse.
- a space-separated list of
grammar- For an
animateortalkableobject: thevalueis a routine called when the parser knows that this object is being addressed, but has yet to test the grammar. The routine should returnfalseto continue, :const:trueto indicate that the routine has parsed the entire command, or a dictionary word (‘word‘ or -‘word‘).
in_to- See
d_to.
initialFor an object: its description before being picked up.
For a room: its description when the player enters the room.
The
valuecan be a string, or a routine which outputs a string.
inside_descriptionFor an
enterableobject: its description, output as part of the room description when the player is inside the object.The
valuecan be a string, or a routine which outputs a string.
invent- For an object: the
valueis a routine for outputting the object’s inventory listing, which is called twice. On the first call nothing has been output;inventory_stagehas the value 1, and the routine should returnfalseto continue, ortrueto stop processing and produce no further output. On the second call the object’s indefinite article and short name have been output, but not any subsidiary information;inventory_stagehas the value 2, and the routine should returnfalseto continue, ortrueto stop processing and produce no further output.
life(+)- For an
animateobject: receives person-to-person actions (Answer,Ask,Attack,Give,Kiss,Order,Show,Tell,ThrowAtandWakeOther) for which this is thenoun. Thevalueis a routine of structure similar to aswitchstatement, having cases for the appropriateactions(and an optional default as well). The routine should returnfalseto continue, telling the player what has happened, ortrueto stop processing the action and produce no further output.
list_togetherFor an object: groups related objects when outputting an inventory or room contents list. The
valuecan be- a
number: all objects having this value are grouped; - a
string: all objects having this value are grouped as a count of the string; - a routine which is called twice. On the first call nothing has been
output;
inventory_stagehas the value 1, and the routine should returnfalseto continue, ortrueto stop processing and produce no further output. On the second call the list has been output;inventory_stagehas the value 2, and there is no test on the return value.
- a
n_to- See
d_to.
name(+)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 dictionary.
For an object: identifies this object.
For a room: outputs “does not need to be referred to”.
ne_to- See
d_to.
number- For an object or room: the
valueis a general-purpose variable freely available for use by the program. Aplayerobject must provide (but not use) this variable.
nw_to- See
d_to.
orders(+)- For an
animateortalkableobject: thevalueis a routine called to carry out the player’s orders. The routine should returnfalseto continue, ortrueto stop processing the action and produce no further output.
out_to- See
d_to.
parse_name- For an object: the
valueis a routine called to parse an object’s name. The routine should return zero if the text makes no sense, -1 to cause the parser to resume, or the positive number of words matched.
plural- For an object: its plural form, when in the presence of others like it.
The
valuecan be a string, or a routine which outputs a string.
react_after- For an object: detects nearby actions - those which take place when this
object is in scope. The
valueis a routine invoked after the action has happened, but before the player has been informed. Seeafter.
react_before- For an object: detects nearby actions - those which take place when this
object is in scope. The
valueis a routine invoked before the action has happened. Seeafter.
s_to- See
d_to.
se_to- See
d_to.
short_name- For an object: an alternative or extended short name. The
valuecan be a string, or a routine which outputs a string. The routine should returnfalseto continue by outputting the object’s actual short name (from the head of the object definition), ortrueto stop processing the action and produce no further output.
short_name_indef- For a non-English object: the short name when preceded by an indefinite
object. The
valuecan be a string, or a routine which outputs a string.
sw_to- See
d_to.
time_left- For a timer object: the
valueis a variable to hold the number of turns left until this object’s timer - activated and initialised byStartTimer(obj_id)- counts down to zero and invokes the object’stime_outproperty.
time_out- For a timer object: the
valueis a routine which is run when the object’stime_leftvalue - initialised byStartTimer(obj_id), and not in the meantime cancelled byStopTimer(obj_id)- counts down to zero.
u_to- See
d_to. w_to- See
d_to.
when_closed
when_open- For a
containerordoorobject: used when including this object in a room’s long description. Thevaluecan be a string, or a routine which outputs a string.
when_off
when_on- For a
switchableobject: used when including this object in a room’s long description. Thevaluecan be a string, or a routine which outputs a string.
with_key- For a
lockableobject: theobj_id(generally some kind of key) needed to lock and unlock the object, ornothingif no key fits.
Object attributes¶
absent- For a floating object (one with a
found_inproperty, which can appear in many rooms): is no longer there.
animate- For an object: is a living creature.
clothing- For an object: can be worn.
concealed- For an object: is present but hidden from view.
container- For an object: other objects can be put in (but not on) it.
door- For an object: is a door or bridge between rooms.
edible- For an object: can be eaten.
enterable- For an object: can be entered.
female- For an
animateobject: is female.
general- For an object or room: a general-purpose flag.
light- For an object or room: is giving off light.
lockable- For an object: can be locked; see the
with_keyproperty.
locked- For an object: can’t be opened.
male- For an
animateobject: is male.
moved- For an object: is being, or has been, taken by the player.
neuter- For an
animateobject: is neither male nor female.
on- For a
switchableobject: is switched on.
open- For a
containeror door object: is open.
openable- For a
containerordoorobject: can be opened.
pluralname- For an object: is plural.
proper- For an object: the short name is a proper noun, therefore not to be preceded by “The” or “the”.
scenery- For an object: can’t be taken; is not listed in a room description.
scored- For an object: awards
OBJECT_SCOREpoints when taken for the first time. For a room: awardsROOM_SCOREpoints when visited for the first time.
static- For an object: can’t be taken.
supporter- For an object: other objects can be put on (but not in) it.
switchable- For an object: can be switched off or on.
talkable- For an object: can be addressed in “object, do this” style.
transparent- For a
containerobject: objects inside it are visible.
visited- For a room: is being, or has been, visited by the player.
workflag- Temporary internal flag, also available to the program.
worn- For a
clothingobject: is being worn.
Optional entry points¶
These routines, if you supply them, are called when shown.
AfterLife()- Player has died;
deadflag=0resurrects. AfterPrompt()- The “>” prompt has been output.
Amusing()- Player has won;
AMUSING_PROVIDEDis defined. BeforeParsing()- The parser has input some text, set up the buffer and parse tables, and
initialised
wnto 1. ChooseObjects(object,flag)- Parser has found “
ALL” or an ambiguous noun phrase and decided thatobjectshould be excluded (flagis 0), or included (flagis 1). The routine should return 0 to let this stand, 1 to force inclusion, or 2 to force exclusion. Ifflagis 2, parser is undecided; routine should return appropriate score 0..9. DarkToDark()- The player has gone from one dark room to another.
DeathMessage()- The player has died;
deadflagis 3 or more. GamePostRoutine()- Called after all actions.
GamePreRoutine()- Called before all actions.
Initialise()- Mandatory; note British spelling: called at start. Must set
location; can return 2 to suppress game banner. InScope()- Called during parsing.
LookRoutine()- Called at the end of every
Lookdescription. NewRoom()- Called when room changes, before description is output.
ParseNoun(object)- Called to parse the
object‘s name. ParseNumber(byte_array,length)- Called to parse a number.
ParserError(number)- Called to handle an error.
PrintRank()- Completes the output of the score.
PrintTaskName(number)- Prints the name of the task.
PrintVerb(addr)- Called when an unusual verb is printed.
TimePasses()- Called after every turn.
UnknownVerb()- Called when an unusual verb is encountered.
Group 1 actions¶
Group 1 actions support the ‘meta’ verbs. These are the standard actions and their triggering verbs.
CommandsOff |
“RECORDING OFF“ |
CommandsOn |
“RECORDING [ON]“ |
CommandsRead |
“REPLAY“ |
FullScore |
“FULLSCORE”, “FULL [SCORE]“ |
LMode1 |
“BRIEF”, “NORMAL“ |
LMode2 |
“LONG”, “VERBOSE“ |
LMode3 |
“SHORT”, “SUPERBRIEF“ |
NotifyOff |
“NOTIFY OFF“ |
NotifyOn |
“NOTIFY [ON]“ |
Objects |
“OBJECTS“ |
Places |
“PLACES“ |
Pronouns |
“[PRO]NOUNS“ |
Quit |
“DIE”, “Q[UIT]“ |
Restart |
“RESTART“ |
Restore |
“RESTORE“ |
Save |
“CLOSE“ |
Score |
“SCORE“ |
ScriptOff |
“[TRAN]SCRIPT OFF”, “NOSCRIPT”, “UNSCRIPT“ |
ScriptOn |
“[TRAN]SCRIPT [ON]“ |
Verify |
“VERIFY“ |
Version |
“VERSION“ |
and the debug tools.
ActionsOff |
“ACTIONS OFF“ |
ActionsOn |
“ACTIONS [ON]“ |
ChangesOff |
“CHANGES OFF“ |
ChangesOn |
“CHANGES [ON]“ |
Gonear |
“GONEAR“ |
Goto |
“GOTO“ |
Predictable |
“RANDOM“ |
RoutinesOff |
“MESSAGES OFF”, “ROUTINES OFF“ |
RoutinesOn |
“MESSAGES [ON]”, “ROUTINES [ON]“ |
Scope |
“SCOPE“ |
Showobj |
“SHOWOBJ“ |
Showverb |
“SHOWVERB“ |
TimersOff |
“DAEMONS OFF”, “TIMERS OFF“ |
TimersOn |
“DAEMONS [ON]”, “TIMERS [ON]“ |
TraceLevel |
“TRACE number“ |
TraceOff |
“TRACE OFF“ |
TraceOn |
“TRACE [ON]“ |
XAbstract |
“ABSTRACT“ |
XPurloin |
“PURLOIN“ |
XTree |
“TREE“ |
Group 2 actions¶
Group 2 actions usually work, given the right circumstances.
Close |
“CLOSE [UP]”, “COVER [UP]”, “SHUT [UP]“ |
Disrobe |
“DISROBE”, “DOFF”, “REMOVE”, “SHED”, “TAKE OFF“ |
Drop |
“DISCARD”, “DROP”, “PUT DOWN”, “THROW“ |
Eat |
“EAT“ |
Empty |
“EMPTY [OUT]“ |
EmptyT |
“EMPTY IN|INTO|ON|ONTO|TO“ |
Enter |
“CROSS”, “ENTER”, “GET IN|INTO|ON|ONTO”,
“GO IN|INSIDE|INTO|THROUGH”,
“LEAVE IN|INSIDE|INTO|THROUGH”, “LIE IN|INSIDE|ON”,
“LIE ON TOP OF”,
“RUN IN|INSIDE|INTO|THROUGH”, “SIT IN|INSIDE|ON”,
“SIT ON TOP OF”, “STAND ON”,
“WALK IN|INSIDE|INTO|THROUGH“ |
Examine |
“CHECK”, “DESCRIBE”, “EXAMINE”,
“L[OOK] AT”, “READ”, “WATCH”, “X“ |
Exit |
“EXIT”, “GET OFF|OUT|UP”,
“LEAVE”, “OUT[SIDE]”, “STAND [UP]“ |
GetOff |
“GET OFF“ |
Give |
“FEED [TO]”, “GIVE [TO]”, “OFFER [TO]”, “PAY [TO]“ |
Go |
“GO”, “LEAVE”, “RUN”, “WALK“ |
GoIn |
“CROSS”, “ENTER”, “IN[SIDE]“ |
Insert |
“DISCARD IN|INTO”,
“DROP DOWN|IN|INTO”,
“INSERT IN|INTO”,
“PUT IN|INSIDE|INTO”,
“THROW DOWN|IN|INTO“ |
Inv |
“I[NV]”, “INVENTORY”, “TAKE INVENTORY“ |
InvTall |
“I[NV] TALL”, “INVENTORY TALL“ |
InvWide |
“I[NV] WIDE”, “INVENTORY WIDE“ |
Lock |
“LOCK WITH“ |
Look |
“L[OOK]“ |
Open |
“OPEN”, “UNCOVER”, “UNDO”, “UNWRAP“ |
PutOn |
“DISCARD ON|ONTO”,
“DROP ON|ONTO”,
“PUT ON|ONTO”,
“THROW ON|ONTO“ |
Remove |
“GET FROM”, “REMOVE FROM”, “TAKE FROM|OFF“ |
Search |
“L[OOK] IN|INSIDE|INTO|THROUGH”, “SEARCH“ |
Show |
“DISPLAY [TO]”, “PRESENT [TO]”, “SHOW [TO]“ |
SwitchOff |
“CLOSE OFF”, “SCREW OFF”, “SWITCH OFF”,
“TURN OFF”, “TWIST OFF“ |
SwitchOn |
“SCREW ON”, “SWITCH ON”,
“TURN ON”, “TWIST ON“ |
Take |
“CARRY”, “GET”, “HOLD”,
“PEEL [OFF]”, “PICK UP”,
“REMOVE”, “TAKE“ |
Transfer |
“CLEAR TO”, “MOVE TO”,
“PRESS TO”, “PUSH TO”,
“SHIFT TO”, “TRANSFER TO“ |
Unlock |
“OPEN WITH”, “UNDO WITH”,
“UNLOCK WITH“ |
VagueGo |
“GO”, “LEAVE”, “RUN”, “WALK“ |
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).
Answer |
“ANSWER TO”, “SAY TO”,
“SHOUT TO”, “SPEAK TO“ |
Ask |
“ASK ABOUT“ |
AskFor |
“ASK FOR“ |
Attack |
“ATTACK”, “BREAK”, “CRACK”,
“DESTROY”, “FIGHT”, “HIT”,
“KILL”, “MURDER”, “PUNCH”,
“SMASH”, “THUMP”, “TORTURE”,
“WRECK“ |
Blow |
“BLOW“ |
Burn |
“BURN [WITH]”, “LIGHT [WITH]“ |
Buy |
“BUY” “PURCHASE“ |
Climb |
“CLIMB [OVER|UP]”, “SCALE“ |
Consult |
“CONSULT ABOUT|ON”,
“LOOK UP IN”,
“READ ABOUT IN”, “READ IN“ |
Cut |
“CHOP”, “CUT”, “PRUNE”, “SLICE“ |
Dig |
“DIG [WITH]“ |
Drink |
“DRINK”, “SIP”, “SWALLOW“ |
Fill |
“FILL“ |
Jump |
“HOP”, “JUMP”, “SKIP“ |
JumpOver |
“HOP OVER”, “JUMP OVER”, “SKIP OVER“ |
Kiss |
“EMBRACE”, “HUG”, “KISS“ |
Listen |
“HEAR”, “LISTEN [TO]“ |
LookUnder |
“LOOK UNDER“ |
Mild |
Various mild swearwords. |
No |
“NO“ |
Pray |
“PRAY“ |
Pull |
“DRAG” “PULL“ |
Push |
“CLEAR”, “MOVE”, “PRESS”,
“PUSH”, “SHIFT“ |
PushDir |
“CLEAR”, “MOVE”, “PRESS”,
“PUSH”, “SHIFT“ |
Rub |
“CLEAN”, “DUST”, “POLISH”,
“RUB”, “SCRUB”, “SHINE”,
“SWEEP”, “WIPE“ |
Set |
“ADJUST”, “SET“ |
SetTo |
“ADJUST TO”, “SET TO“ |
Sing |
“SING“ |
Sleep |
“NAP”, “SLEEP“ |
Smell |
“SMELL”, “SNIFF“ |
Sorry |
“SORRY“ |
Squeeze |
“SQUASH”, “SQUEEZE“ |
Strong |
Various strong swearwords. |
Swim |
“DIVE”, “SWIM“ |
Swing |
“SWING [ON]“ |
Taste |
“TASTE“ |
Tell |
“TELL ABOUT“ |
Think |
“THINK“ |
ThrowAt |
“THROW AGAINST|AT|ON|ONTO“ |
Tie |
“ATTACH [TO]”, “FASTEN [TO]”,
“FIX [TO]”, “TIE [TO]“ |
Touch |
“FEEL”, “FONDLE”, “GROPE”, “TOUCH“ |
Turn |
“ROTATE”, “SCREW”, “TURN”,
“TWIST”, “UNSCREW“ |
Wait |
“WAIT” “Z“ |
Wake |
“AWAKE[N]”, “WAKE [UP]“ |
WakeOther |
“AWAKE[N]”, “WAKE [UP]“ |
Wave |
“WAVE“ |
WaveHands |
“WAVE“ |
Yes |
“Y[ES]“ |
Fake actions¶
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. |
Miscellany |
Outputs a range of utility messages. |
NotUnderstood |
Generated when parser fails to interpret some
orders. |
Order |
Receives things not handled by orders. |
PluralFound |
Tells the parser that parse_name() has identified a
plural object. |
Prompt |
Outputs the prompt, normally “>”. |
Receive |
Generated by Insert and PutOn. |
TheSame |
Generated when parser can’t distinguish between two objects. |
ThrownAt |
Generated by ThrowAt. |