InstructionsAction class | instruct.t[81]

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)

`InstructionsAction`
`SystemAction`
`IAction`
`Action`
`BasicProd`
`object`

Subclass Tree

`InstructionsAction`
`predicate(instructions)`

Global Objects

(none)

Summary of Properties

`allRequiredVerbsDisclosed conversationAbbr conversationInstructions conversationVerbs crueltyLevel customVerbs includeInUndo isRealTime isRepeatable truncationLength`

Inherited from `SystemAction` :
`actionTime`

``

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`

Properties

`allRequiredVerbsDisclosed` | `instruct.t[97]`

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.

`conversationAbbr` | `instruct.t[129]`

conversation verb abbreviations

`conversationInstructions` | `instruct.t[219]`

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.

`conversationVerbs` | `instruct.t[118]`

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.

`crueltyLevel` | `instruct.t[188]`

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.

`customVerbs` | `instruct.t[106]`

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']

`includeInUndo` OVERRIDDEN | `instruct.t[992]`

no description available

`isRealTime` | `instruct.t[195]`

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.

`isRepeatable` OVERRIDDEN | `instruct.t[991]`

INSTRUCTIONS doesn't affect UNDO or AGAIN

`truncationLength` | `instruct.t[141]`

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.

Methods

`execSystemAction ( )`OVERRIDDEN | `instruct.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