InstructionsActionclass
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
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
conversation verb abbreviations
conversationInstructions
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
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
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
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
no description available
isRealTime
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
INSTRUCTIONS doesn’t affect UNDO or AGAIN
truncationLength
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
execute the command
showAbbrevChapter ( )
Abbreviations chapter
showAdvancedCmdChapter ( )
Advance Command Formats chapter
showAmbiguousCmdChapter ( )
Ambiguous Commands chapter
showCommandsChapter ( )
Entering Commands chapter
showConversationChapter ( )
show the Conversation chapter
showInstructions ( )
Show the instructions as a standard text display. Give the user the option of turning on a SCRIPT file to capture the text.
showObjectsChapter ( )
Objects chapter
showSaveRestoreChapter ( )
Saving, Restoring, and Undo chapter
showSpecialCmdChapter ( )
Other Special Commands chapter
showTimeChapter ( )
Time chapter
showTipsChapter ( )
General Tips chapter
showTravelChapter ( )
Travel chapter
showUnknownWordsChapter ( )
Unknown Words chapter
TADS 3 Library Manual
Generated on 5/16/2013 from TADS version 3.1.3