The INSTRUCTIONS command. Make this a "system" action, because it's a meta-action outside of the story. System actions don't consume any game time.

DefineSystemAction(Instructions)      // original source text
class InstructionsAction :   SystemAction      // after macro expansion

Superclass Tree   (in declaration order)


Subclass Tree  


Global Objects  


Summary of Properties  

allRequiredVerbsDisclosed  conversationAbbr  conversationInstructions  conversationVerbs  crueltyLevel  customVerbs  includeInUndo  isRealTime  isRepeatable  truncationLength 

Inherited from SystemAction :

Inherited from Action :
afterActionMainList  beforeAfterObjs  defaultForRecursion  extraMessageParams  implicitMsg  isImplicit  iterationCanceled  originalAction  parentAction  preCond  predicateNounPhrases  pronounOverride  remappedFrom  showDefaultReports  synthParamID  verbFlags  verifiedOkay 

Inherited from BasicProd :
firstTokenIndex  isSpecialResponseMatch  lastTokenIndex 

Summary of Methods  

execSystemAction  showAbbrevChapter  showAdvancedCmdChapter  showAmbiguousCmdChapter  showCommandsChapter  showConversationChapter  showInstructions  showObjectsChapter  showSaveRestoreChapter  showSpecialCmdChapter  showTimeChapter  showTipsChapter  showTravelChapter  showUnknownWordsChapter 

Inherited from SystemAction :
execAction  getInputFile 

Inherited from IAction :
doActionMain  resolveNouns 

Inherited from Action :
actionOfKind  addBeforeAfterObj  afterAction  afterActionMain  announceActionObject  announceAllDefaultObjects  announceDefaultObject  beforeAction  beforeActionMain  cacheMultiObjectAnnouncements  callAfterActionMain  callCatchAllProp  callPreConditions  callVerifyPreCond  callVerifyProp  cancelIteration  checkAction  checkPreConditions  checkRemapping  combineRemappedVerifyResults  createActionFrom  createActionInstance  createTopicQualifierResolver  doAction  doActionOnce  filterAmbiguousWithVerify  filterFacets  filterPluralWithVerify  finishResolveList  getAnaphoricBinding  getCurrentObjects  getDefaultWithVerify  getEnteredVerbPhrase  getImplicitPhrase  getInfPhrase  getMatchForRole  getMessageParam  getNotifyTable  getObjectForRole  getObjPreCondDescList  getObjPreConditions  getObjResponseProd  getOriginalAction  getOrigTokenList  getOtherObjectRole  getParticiplePhrase  getPreCondDescList  getPreCondPropForRole  getPredicate  getPronounOverride  getQuestionInf  getRemappedFrom  getRemapPropForRole  getResolvedObjList  getResolveInfo  getRoleFromIndex  getSimpleSynonymRemap  getSortedVerifyResults  getVerbPhrase  getVerifyPropForRole  initTentative  isConversational  isNestedIn  isPartOf  isRemapped  makeResolveInfo  makeResolveInfoList  maybeAnnounceDefaultObject  maybeAnnounceImplicit  maybeAnnounceMultiObject  noMatch  notifyBeforeAfter  objListPronoun  preAnnounceActionObject  recalcSenseContext  repeatAction  resetAction  resolveAction  resolvedObjectsInScope  runBeforeNotifiers  saveActionForAgain  setCurrentObjects  setImplicit  setMessageParam  setMessageParams  setNested  setObjectMatches  setOriginalAction  setPronounOverride  setRemapped  setResolvedObjects  spPrefix  spSuffix  synthMessageParam  verifyAction  verifyHandlersExist  whatObj  whatTranslate  withVerifyResults  zeroActionTime 

Inherited from BasicProd :
canResolveTo  getOrigText  setOrigTokenList 



This property tells us how complete the verb list is. By default, we'll assume that the instructions fail to disclose every required verb in the game, because the generic set we use here doesn't even try to anticipate the special verbs that most games include. If you provide your own list of game-specific verbs, and your custom list (taken together with the generic list) discloses every verb required to complete the game, you should set this property to true; if you set this to true, the instructions will assure the player that they will not need to think of any verbs besides the ones listed in the instructions. Authors are strongly encouraged to disclose a list of verbs that is sufficient by itself to complete the game, and to set this property to true once they've done so.

conversation verb abbreviations

Conversation system description. Several different conversation systems have come into relatively widespread use, so there isn't any single convention that's generic enough that we can assume it holds for all games. In deference to this variability, we provide this hook to make it easy to replace the instructions pertaining to the conversation system. If the game uses the standard ASK/TELL system, it can leave this list unchanged; if the game uses a different system, it can replace this with its own instructions.

We'll include information on the TALK TO command if there are any in-conversation state objects in the game; if not, we'll assume there's no need for this command.

We'll mention the TOPICS command if there are any SuggestedTopic instances in the game; if not, then the game will never have anything to suggest, so the TOPICS command isn't needed.

We'll include information on special topics if there are any SpecialTopic objects defined.

Verbs relating specifically to character interaction. This is in the same format as customVerbs, and has essentially the same purpose; however, we call these out separately to allow each game not only to supplement the default list we provide but to replace our default list. This is desirable for conversation-related commands in particular because some games will not use the ASK/TELL conversation system at all and will thus want to remove any mention of the standard set of verbs.

This property should be set on a game-by-game basis to indicate the "cruelty level" of the game, which is a rough estimation of how likely it is that the player will encounter an unwinnable position in the game.

Level 0 is "kind," which means that the player character can never be killed, and it's impossible to make the game unwinnable. When this setting is used, the instructions will reassure the player that saving is necessary only to suspend the session.

Level 1 is "standard," which means that the player character can be killed, and/or that unwinnable positions are possible, but that there are no especially bad unwinnable situations. When this setting is selected, we'll warn the player that they should save every so often.

(An "especially bad" situation is one in which the game becomes unwinnable at some point, but this won't become apparent to the player until much later. For example, suppose the first scene takes place in a location that can never be reached again after the first scene, and suppose that there's some object you can obtain in this scene. This object will be required in the very last scene to win the game; if you don't have the object, you can't win. This is an "especially bad" unwinnable situation: if you leave the first scene without getting the necessary object, the game is unwinnable from that point forward. In order to win, you have to go back and play almost the whole game over again. Saved positions are almost useless in a case like this, since most of the saved positions will be after the fatal mistake; no matter how often you saved, you'll still have to go back and do everything over again from near the beginning.)

Level 2 is "cruel," which means that the game can become unwinnable in especially bad ways, as described above. If this level is selected, we'll warn the player more sternly to save frequently.

We set this to 1 ("standard") by default, because even games that aren't intentionally designed to be cruel often have subtle situations where the game becomes unwinnable, because of things like the irreversible loss of an object, or an unrepeatable event sequence; it almost always takes extra design work to ensure that a game is always winnable.

A list of custom verbs. Each game should set this to a list of single-quoted strings; each string gives an example of a verb to display in the list of sample verbs. Something like this:

customVerbs = ['brush my teeth', 'pick the lock']

no description available

Does this game have any real-time features? If so, set this to true. By default, we'll explain that game time passes only in response to command input.


Truncation length. If the game's parser allows words to be abbreviated to some minimum number of letters, this should indicate the minimum length. The English parser uses a truncation length of 6 letters by default.

Set this to nil if the game doesn't allow truncation at all.


execSystemAction ( )OVERRIDDENinstruct.t[299]

execute the command

showAbbrevChapter ( )instruct.t[547]
Abbreviations chapter

showAdvancedCmdChapter ( )instruct.t[870]
Advance Command Formats chapter

showAmbiguousCmdChapter ( )instruct.t[831]
Ambiguous Commands chapter

showCommandsChapter ( )instruct.t[432]
Entering Commands chapter

showConversationChapter ( )instruct.t[659]
show the Conversation chapter

showInstructions ( )instruct.t[337]
Show the instructions as a standard text display. Give the user the option of turning on a SCRIPT file to capture the text.

showObjectsChapter ( )instruct.t[632]
Objects chapter

showSaveRestoreChapter ( )instruct.t[698]
Saving, Restoring, and Undo chapter

showSpecialCmdChapter ( )instruct.t[770]
Other Special Commands chapter

showTimeChapter ( )instruct.t[670]
Time chapter

showTipsChapter ( )instruct.t[933]
General Tips chapter

showTravelChapter ( )instruct.t[586]
Travel chapter

showUnknownWordsChapter ( )instruct.t[816]
Unknown Words chapter

TADS 3 Library Manual
Generated on 5/16/2013 from TADS version 3.1.3