Actorclass | actor.t[26]

An Actor is an object representing a living being (or something that behaves like a living being, such as an intelligent robot), with which the player character can potentially converse, and which can move around and pursue his/her/its own agenda. This class is intended for the implementation of NPCs (non-player characters).

`class Actor : EndConvBlocker AgendaManager ActorTopicDatabase Thing`

Superclass Tree (in declaration order)

`Actor`
`EndConvBlocker`
`object`
`AgendaManager`
`object`
`ActorTopicDatabase`
`TopicDatabase`
`object`
`Thing`
`ReplaceRedirector`
`Redirector`
`object`
`Mentionable`
`LMentionable`
`object`

Subclass Tree

(none)

Global Objects

(none)

Summary of Properties

`active activeKeys actorInformOverheard actorStaysPutMsg allNodes allStates alreadyTalkingMsg attackResponseMsg attentionSpan autoImplicitSay boredomAgendaItem boredomCount cannotAttackMsg cannotKissMsg cannotTakeMsg canTalkToMe cantFollowFromHereMsg canThrowToMe cantStartFromHereMsg contentsListed contType conversedLastTurn conversedThisTurn convKeyTab curState defaultCountsAsSay defaultSayResponse dontKnowWhereGoneMsg enableImplicitSay fDaemon followActorMsg followAgendaItem followFuseID informedNameTab informOverheard isAttackable isFixed keepPendingKeys keysManaged kissRank kissResponseMsg lastConvTime lastTravelInfo noGoodbyeResponseMsg noHelloResponseMsg noResponseMsg notificationOrder ownsContents pcArrivalTurn pcConnector pcDefaultSayQuip pcJustArrived pendingAgendaList pendingKeys physicalTopicObjs refuseCommandMsg specialDescBeforeContents stateDesc suggestionKey touchResponseMsg waitToSeeMsg`

``

Inherited from `AgendaManager` :
`agendaList`

Inherited from `ActorTopicDatabase` :
`askForTopics askTopics commandTopics defaultAgendaTopic giveTopics initiateTopics miscTopics queryTopics sayTopics sceneEndTopics sceneStartTopics showTopics talkTopics tellTopics`

``

Inherited from `Thing` :
`actorAlreadyInMsg actorAlreadyOnMsg actorNotInMsg actorNotOnMsg allowPourIntoMe allowPourOntoMe alreadyCleanMsg alreadyClosedMsg alreadyFastenedMsg alreadyHasMsg alreadyHeldMsg alreadyInMsg alreadyLitMsg alreadyLockedMsg alreadyMovedToMsg alreadyOnMsg alreadyOpenMsg alreadyPresentMsg alreadyThereMsg alreadyWornMsg autoGetOutToReach autoTakeOnFindHidden autoUnlock brightness brightnessForReading brightnessOff brightnessOn bulk bulkCapacity canAttachToMe canAttackWithMe canBurnWithMe canCleanWithMe canClimbDownMe canClimbUpMe canCutWithMe canDetachFromMe canDigWithMe canEnterOnMe canFastenToMe canGoAlongMe canGoThrougMe canHearIn canHearOut canJumpOffMe canJumpOverMe canLieInMe canLieOnMe canLockWithMe canLookBehindMe canLookThroughMe canLookUnderMe canMoveToMe canMoveWithMe cannotAttachMsg cannotAttachToMsg cannotAttachToSelfMsg cannotAttackWithMsg cannotAttackWithSelfMsg cannotBoardMsg cannotBreakMsg cannotBurnMsg cannotBurnWithMsg cannotCleanMsg cannotCleanWithMsg cannotClimbDownMsg cannotClimbMsg cannotCloseMsg cannotConsultMsg cannotCutMsg cannotCutWithMsg cannotCutWithSelfMsg cannotDetachFromMsg cannotDetachFromSelfMsg cannotDetachMsg cannotDigMsg cannotDigWithMsg cannotDigWithSelfMsg cannotDoffMsg cannotDrinkMsg cannotDropMsg cannotEatMsg cannotEnterMsg cannotEnterOnMsg cannotExtinguishMsg cannotFastenMsg cannotFastenToMsg cannotFastenToSelfMsg cannotFeelMsg cannotFlipMsg cannotFollowMsg cannotFollowSelfMsg cannotGetInCarriedMsg cannotGetOnCarriedMsg cannotGiveToMsg cannotGiveToSelfMsg cannotGoAlongMsg cannotGoNearThereMsg cannotGoThroughMsg cannotJumpOffMsg cannotJumpOverMsg cannotLieInMsg cannotLieOnMsg cannotLightMsg cannotLockWithMsg cannotLockWithSelfMsg cannotLookBehindMsg cannotLookThroughMsg cannotLookUnderMsg cannotMoveMsg cannotMoveToMsg cannotMoveToSelfMsg cannotMoveWithMsg cannotMoveWithSelfMsg cannotOpenMsg cannotPlugIntoMsg cannotPlugIntoSelfMsg cannotPlugMsg cannotPourIntoMsg cannotPourIntoSelfMsg cannotPourMsg cannotPourOntoMsg cannotPourOntoSelfMsg cannotPullMsg cannotPurloinContainerMsg cannotPurloinRoomMsg cannotPurloinSelfMsg cannotPushDownMsg cannotPushIntoMsg cannotPushMsg cannotPushOwnContainerMsg cannotPushThroughMsg cannotPushUpMsg cannotPushViaSelfMsg cannotPutBehindMsg cannotPutInMsg cannotPutInSelfMsg cannotPutMsg cannotPutOnMsg cannotPutUnderMsg cannotReadMsg cannotRemoveMsg cannotScrewMsg cannotScrewWithMsg cannotScrewWithSelfMsg cannotSetMsg cannotSetToMsg cannotShowToMsg cannotShowToSelfMsg cannotSitInMsg cannotSitOnMsg cannotSmellMsg cannotStandInMsg cannotStandOnMsg cannotTakeFromSelfMsg cannotTakeMyContainerMsg cannotTakeSelfMsg cannotTalkToMsg cannotTalkToSelfMsg cannotTasteMsg cannotThrowAtMsg cannotThrowAtSelfMsg cannotThrowMsg cannotThrowToMsg cannotThrowToSelfMsg cannotTurnMsg cannotTurnToMsg cannotTurnWithMsg cannotTurnWithSelfMsg cannotTypeOnMsg cannotUnfastenFromMsg cannotUnfastenFromSelfMsg cannotUnfastenMsg cannotUnlockWithMsg cannotUnlockWithSelfMsg cannotUnplugFromMsg cannotUnplugFromSelfMsg cannotUnplugMsg cannotUnscrewMsg cannotUnscrewWithMsg cannotUnscrewWithSelfMsg cannotWearMsg cannotWriteOnMsg canPlugIntoMe canPourIntoMe canPourOntoMe canPullTravel canPushTravel canPutBehindMe canPutInMe canPutUnderMe canReachIn canReachOut canScrewWithMe canSeeIn canSeeOut canSetMeTo canSitInMe canSitOnMe canSmellIn canSmellOut canStandInMe canStandOnMe canSupply canThrowAtMe canTurnMeTo canTurnWithMe canTypeOnMe canUnfastenFromMe canUnlockWithMe canUnplugFromMe canUnscrewWithMe canWriteOnMe checkAttackMsg checkFeelMsg checkKissMsg circularlyInMsg collectiveGroups contents contentsListedInExamine contentsListedInLook contentsListedInSearch currentInterlocutor curSetting darkName decorationActions decorationActions defaultPosture desc directlyHeld directlyIn directlyWorn distinguishByContents dontNeedCleaningObjMsg dropItemsBehind dropItemsUnder dropLocation enclosing examined examineListed examineLister exitLocation extContents familiar feelDesc findHiddenDest fluidName futileToAttackMsg futileToKissMsg getBulkHiddenBehind getBulkHiddenIn getBulkHiddenUnder getFacets getOutermostRoom getOutToJump getWeightHiddenBehind getWeightHiddenIn getWeightHiddenUnder globalParamName groupOrder hearNothingMsg hiddenBehind hiddenIn hiddenUnder illuminationThreshold inDarkDesc indirectLockableMsg initSpecialDesc intContents interiorDesc inventoryListed isAttachable isBoardable isBreakable isBurnable isClean isCleanable isClimbable isCloseable isConsultable isCuttable isDecoration isDetachable isDiggable isDoffable isDrinkable isDroppable isEdible isEnterable isExtinguishable isFastenable isFastened isFeelable isFlippable isFollowable isHidden isInitialPlayerChar isKissable isLightable isListed isLit isLocked isMoveable isOn isOpen isOpenable isPlayerChar isPlugable isPourable isProminentNoise isProminentSmell isPullable isPushable isReadable isRemoveable isScrewable isSettable isSmellable isSwitchable isTakeable isTasteable isThrowable isTransparent isTurnable isUnfastenable isUnplugable isUnscrewable isVehicle isWearable keyDoesntWorkMsg keyList keyNotNeededMsg known knownKeyList knownProp lastSeenAt lieOnScore lightSources listableContents listenDesc listenDescWithoutSource listenDescWithSource listOrder listWith location lockability lockedMsg lookBehindMsg lookInMsg lookListed lookThroughMsg lookUnderMsg markInventoryAsSeen matchPullOnly matchPushOnly maxBulkHiddenBehind maxBulkHiddenIn maxBulkHiddenUnder maxSingleBulk maxSingleWeight maxWeightHiddenBehind maxWeightHiddenIn maxWeightHiddenUnder mentioned moved movedTo moveNoEffectMsg mustBeCleanedWith myInventoryLister myLookBehindLister myLookInLister myLookUnderLister myOpeningContentsLister myWornLister needsCleaning noLongerTalkingToAnyoneMsg nominalContents noNeedToCleanMsg notFastenedMsg notHoldingMsg notImportantMsg notInMsg notLitMsg notLockableMsg notLockedMsg notSwitchableMsg notTalkingToAnyoneMsg notWornMsg objInPrep objIntoPrep okayCleanMsg okayGetOutOfMsg okayLieInMsg okayLieOnMsg okayLockMsg okayOpenMsg okayPushIntoMsg okayPushOutOfMsg okaySitInMsg okaySitOnMsg okayStandInMsg okayStandOnMsg okayUnlockMsg opacity opened openStatusReportable owner paraBrksBtwnSubcontents partOfYouMsg posture preCondActor pullNoEffectMsg pushNoEffectMsg readDesc recognizableInDark remapActor remapBehind remapIn remapOn remapProps remapUnder roomContentsLister roomPart roomPartDesc roomSubContentsLister roomTitle searchListed seen seenProp shouldBeBroken shouldNotBreakMsg shouldNotPourIntoMsg shouldNotPourOntoMsg sightSize sitOnScore smellDesc smellDescWithoutSource smellDescWithSource smellNothingMsg smellObj smellSize soundObj soundSize specialDesc specialDescListWith specialDescOrder stagingLocation standOnScore tasteDesc throwFallsShortMsg tooDarkToReadMsg tooDarkToSeeMsg tooFarAwayToHearMsg tooFarAwayToReadMsg tooFarAwayToSeeDetailMsg tooFarAwayToSmellMsg totalWeight turnLastExamined turnLastMoved turnLastMovedInto turnNoEffectMsg useInitSpecialDesc useKey_ useSpecialDesc viaMode visibleInDark vocabLikelihood weight weightCapacity withKeyMsg wornBy`

``

``

Inherited from `Mentionable` :
`ambiguouslyPlural disambigGroup disambigMatchPhrases disambigName disambigOrder isHer isHim isIt massNoun matchPhrases matchPhrasesExclude name person plural proper qualified states vocab vocabWords`

Inherited from `LMentionable` :
`acronymPluralPat alphaCharPat aName apostPluralPat apostSPat deannotatePat dictComp dummyName elevenEighteenPat emptyVocabWords esPluralPat firstWordPat heName herName hersName himName iesPluralPat irregularPlurals lastWordPat leadingTagOrQuotePat menPluralPat objInName objIntoName objName objOutOfName oneLetterAnWordPat oneLetterWordPat ownerNamed pluralPat posPat possAdj possEnding possNoun prepList prepPhrasePat prepWordPat pronounMap properNamePat properPat reflexiveName specialAOrAn tagOrQuotePat thatName thatObjName theName theObjName trimPat truncationLength weakWordPat`

Summary of Methods

`activatePendingAgenda actorAfterAction actorAfterTravel actorArrivingTurn actorBeforeAction actorBeforeTravel actorCanEndConversation actorRemoteSpecialDesc actorSay actorSayHello actorSpecialDesc addPendingKey addToAllAgendas addToBothAgendas addToCurAgendas addToPendingAgenda afterAction afterTravel allowImplicitSay allowOtherActorToTake arouse arrivingTurn beforeAction beforeTravel canCatchThrown canEndConversation cannotTakeFromActorMsg condSay convAgendaReady curNodeIdx curNodeKey curNodeObj dobjFor(AskAbout) dobjFor(AskFor) dobjFor(Attack) dobjFor(AttackWith) dobjFor(Feel) dobjFor(Follow) dobjFor(Kiss) dobjFor(QueryAbout) dobjFor(SayTo) dobjFor(TalkAbout) dobjFor(TalkTo) dobjFor(TellAbout) endConversation findBestResponse followDaemon followFuse getActor getBestMatch handleCommand handleTopic informedAbout initiateTopic iobjFor(GiveTo) iobjFor(ShowTo) iobjFor(ThrowTo) makeActivated makeDeactivated manageKeys nilResponse noteConversed notifyRemove remoteSpecialDesc removeFromAllAgendas removeFromBothAgendas removeFromCurAgendas removeFromPendingAgenda sayActorArriving sayActorCatches sayActorDeparting sayActorDropsCatch sayActorFollowing sayActorFollowingMe sayArriving sayDeparting sayFollowing sayGoodbye sayHeadAfterActor sayHello setFollowMeFuse setInformed setState showSuggestions specialDesc startFollowing stopFollowing takeTurn travelVia`

Inherited from `EndConvBlocker` :
`blockEndConv`

Inherited from `AgendaManager` :
`addToAgenda executeAgenda removeFromAgenda`

Inherited from `ActorTopicDatabase` :
`listableTopics`

Inherited from `TopicDatabase` :
`addTopic`

Inherited from `Thing` :
`abcName accumulateBrightness accumulatedBrightnessWithin actionMoveInto actorAction addToAllContents addToContents allContents allowReachOut aobjFor beforeMovePushable brightnessWithin byRoom canHear cannotPushTravelMsg cannotReachOutMsg canReach canSee canSmell canTalkTo checkDisplay checkInsert checkPushTravel checkReach checkReachIn checkRemove checkRoomToHold checkSetting childLocType commonContainingParent commonInteriorParent containerPath containerPathBlock darkDesc describeMovePushable describePushTravel directChildParent discover display displayAlt dobjFor(Attach) dobjFor(AttachTo) dobjFor(Board) dobjFor(Break) dobjFor(Burn) dobjFor(BurnWith) dobjFor(Clean) dobjFor(CleanWith) dobjFor(Climb) dobjFor(ClimbDown) dobjFor(ClimbUp) dobjFor(Close) dobjFor(ConsultAbout) dobjFor(Cut) dobjFor(CutWith) dobjFor(Default) dobjFor(Detach) dobjFor(DetachFrom) dobjFor(Dig) dobjFor(DigWith) dobjFor(Doff) dobjFor(Drink) dobjFor(Drop) dobjFor(Eat) dobjFor(Enter) dobjFor(EnterOn) dobjFor(Examine) dobjFor(Extinguish) dobjFor(Fasten) dobjFor(FastenTo) dobjFor(Flip) dobjFor(GetOff) dobjFor(GetOutOf) dobjFor(GiveTo) dobjFor(GiveToImplicit) dobjFor(GoAlong) dobjFor(GoNear) dobjFor(GoThrough) dobjFor(GoTo) dobjFor(JumpOff) dobjFor(JumpOver) dobjFor(LieIn) dobjFor(LieOn) dobjFor(LieOn) dobjFor(Light) dobjFor(ListenTo) dobjFor(Lock) dobjFor(LockWith) dobjFor(LookBehind) dobjFor(LookIn) dobjFor(LookThrough) dobjFor(LookUnder) dobjFor(Move) dobjFor(MoveTo) dobjFor(MoveWith) dobjFor(Open) dobjFor(PlugIn) dobjFor(PlugInto) dobjFor(Pour) dobjFor(PourInto) dobjFor(PourOnto) dobjFor(Pull) dobjFor(Purloin) dobjFor(Push) dobjFor(PushTravelClimbDown) dobjFor(PushTravelClimbUp) dobjFor(PushTravelDir) dobjFor(PushTravelEnter) dobjFor(PushTravelGetOutOf) dobjFor(PushTravelThrough) dobjFor(PutBehind) dobjFor(PutIn) dobjFor(PutOn) dobjFor(PutUnder) dobjFor(Read) dobjFor(Remove) dobjFor(Screw) dobjFor(ScrewWith) dobjFor(Search) dobjFor(Set) dobjFor(SetTo) dobjFor(ShowTo) dobjFor(ShowToImplicit) dobjFor(SitIn) dobjFor(SitOn) dobjFor(SitOn) dobjFor(SmellSomething) dobjFor(StandIn) dobjFor(StandOn) dobjFor(StandOn) dobjFor(Strike) dobjFor(SwitchOff) dobjFor(SwitchOn) dobjFor(SwitchVague) dobjFor(Take) dobjFor(TakeFrom) dobjFor(TakeFrom) dobjFor(Taste) dobjFor(Throw) dobjFor(ThrowAt) dobjFor(ThrowDir) dobjFor(ThrowTo) dobjFor(Turn) dobjFor(TurnTo) dobjFor(TurnWith) dobjFor(TypeOn) dobjFor(TypeOnVague) dobjFor(Unfasten) dobjFor(UnfastenFrom) dobjFor(Unlock) dobjFor(UnlockWith) dobjFor(Unplug) dobjFor(UnplugFrom) dobjFor(Unscrew) dobjFor(UnscrewWith) dobjFor(Wear) dobjFor(WriteOn) doPushTravel examineStatus filterResolveList findHidden findPlausibleKey firstContainerPathBlock getBulkWithin getCarriedBulk getCarriedWeight getStatuslineExitsHeight getWeightWithin hasSeen hideFromAll interiorParent iobjFor(AttachTo) iobjFor(AttackWith) iobjFor(BurnWith) iobjFor(CleanWith) iobjFor(CutWith) iobjFor(Default) iobjFor(DetachFrom) iobjFor(DigWith) iobjFor(FastenTo) iobjFor(LockWith) iobjFor(MoveTo) iobjFor(MoveWith) iobjFor(PlugInto) iobjFor(PourInto) iobjFor(PourOnto) iobjFor(PushTravelClimbDown) iobjFor(PushTravelClimbUp) iobjFor(PushTravelEnter) iobjFor(PushTravelGetOutOf) iobjFor(PushTravelThrough) iobjFor(PutBehind) iobjFor(PutIn) iobjFor(PutOn) iobjFor(PutUnder) iobjFor(ScrewWith) iobjFor(TakeFrom) iobjFor(ThrowAt) iobjFor(TurnWith) iobjFor(UnfastenFrom) iobjFor(UnlockWith) iobjFor(UnplugFrom) iobjFor(UnscrewWith) isAudibleFrom isChild isDirectChild isDirectlyHeldBy isDirectlyIn isDirectlyWornBy isHeldBy isIlluminated isIn isInterior isOrIsIn isOutside isReadableFrom isSmellableFrom isThereALightSourceIn isVisibleFrom isWornBy knowsAbout listableContentsOf listContents listenDesc listRemoteContents listSubcontentsOf litWithin locationWhich locType lookAroundWithin makeCleaned makeFastened makeLit makeLocked makeMovedTo makeOn makeOpen makeSetting makeWorn moveHidden moveInto moveMLIntoAdd moveMLOutOf nestedLoc nominalOwner noteSeen notifyEvent notifyInsert notifySightEvent notifySmellEvent notifySoundEvent notionalContents outermostParent outermostVisibleParent ownedBy preinitThing pushTravelRevealItems reachBlockedMsg remoteBrightness remoteInitSpecialDesc remoteObjInName removeFromContents revealOnMove roomHeadline roomSubhead sayCantBearMoreWeight sayDontKnowHowToGetThere sayDontKnowHowToReach sayFindHidden sayPushTravel sayTooHeavy sayTooHeavyToHide scoreObject setHasSeen setKnown setKnowsAbout setSeen shinesOut showConnectedMiscContents showFirstConnectedSpecials showRemoteSpecialDesc showSecondConnectedSpecials showSpecialDesc showStatuslineExits smellDesc statusName totalBulkIn totalWeightIn traceContainerPath tryCheck tryMakingPosture unmention unmentionRemoteContents verifyActor verifyEnterPosture verifyPushTravel wouldBeLitFor`

Inherited from `ReplaceRedirector` :
`redirect`

Inherited from `Redirector` :
`doInstead doNested doOtherAction`

Inherited from `Mentionable` :
`construct matchName matchNameCommon matchNameDisambig phraseMatchName simpleMatchName`

Inherited from `LMentionable` :
`addDictWord addVocab addVocabWord aNameFrom aNameFromPoss classInit contify distinguishedName ifPronoun inheritVocab initVocab initVocabWord locify matchPronoun pluralNameFrom pluralWordFrom possessify pronoun removeVocabWord replaceVocab theNameFrom theNameIs`

Properties

`active` | `actor.t[2166]`

This definition is needed for the TopicGroup implementation, and should not normally be overridden in user game code. It allows TopicEntries and TopicGroups to determine their own active status by reference to that of their immediate location.

`activeKeys` | `actor.t[732]`

If this list is not empty then the choice of topic entries to match will be restricted to those whose convKeys property includes at least one of the key values in this list.

`actorInformOverheard` | `actor.t[1844]`

Should other actors who can notionally hear the PC talking to us overhear when information is imparted to us when our current ActorState is nil? By default they should.

`actorStaysPutMsg` | `actor.t[1330]`

The message to display when this actor doesn't go anywhere when the player character tries to follow this actor.

`allNodes` | `actor.t[1717]`

A list of all ConvNodes associated with this actor. This is a list of two element lists of the form [node-name, node-obj] where node-name is the convKeys property of the node and node is the associated object.

`allStates` | `actor.t[1965]`

A list of all the ActorStates associated with this Actor; this is populated by the preinitialization of the individual ActorStates.

`alreadyTalkingMsg` | `actor.t[1952]`

no description available

`attackResponseMsg` | `actor.t[2303]`

The message to display if attacking goes ahead but no HitTopics have been defined.

`attentionSpan` | `actor.t[1802]`

The maximum value that our boredomCount can reach before we terminate a conversation through 'boredom', because we've given up waiting for the player character to say anything. A value of nil (the default) meanns that we never terminate a conversation for this reason.

`autoImplicitSay` | `actor.t[1076]`

Flag, do we want the allowImplicitSay() method to rule out the interpretation of commands as implicit Say commands if there are no available SayTopics for this actor? By default we do, but game code may wish to override this if the results of handling player input in this manner are felt to be inconsistent. If autoImplicitSay is set to nil then allowImplicitSay() will simply return the value of enableImplicitSay.

`boredomAgendaItem` | `actor.t[1548]`

our special "boredom" agenda item - this makes us initiate an end to an active conversation when the PC has ignored us for a given number of consecutive turns

`boredomCount` | `actor.t[1793]`

The count of how many turns have passed during which no conversation has actually taken place when we're the player charater's current interlocutor. This can be used to terminate the conversation through 'boredom' if the boredomCount exceeds our attention span.

`cannotAttackMsg` OVERRIDDEN | `actor.t[2297]`

The message to display if isAttackable is nil

`cannotKissMsg` OVERRIDDEN | `actor.t[2250]`

The message to display if isKissable is nil

`cannotTakeMsg` OVERRIDDEN | `actor.t[171]`

The message to display when someone tries to take this actor.

`canTalkToMe` OVERRIDDEN | `actor.t[2180]`

In general we can talk to actors

`cantFollowFromHereMsg` | `actor.t[2500]`

no description available

`canThrowToMe` OVERRIDDEN | `actor.t[2351]`

Unlike inaminate objects, actors can be the logical target of a ThrowTo action

`cantStartFromHereMsg` | `actor.t[2498]`

no description available

`contentsListed` OVERRIDDEN | `actor.t[180]`

We don't normally list the contents of an Actor when Looking or Examining.

`contType` OVERRIDDEN | `actor.t[174]`

The (portable) contents of an actor are regarded as being carried.

`conversedLastTurn` | `actor.t[724]`

Did this actor converse with the player character on the previous turn? He/she/it did so if our last conversation time is one less than the game's current turn count.

`conversedThisTurn` | `actor.t[717]`

Has this actor conversed with the player character on the current turn? He/she/it has done so if our last conversation time is the same as the game's turn count.

`convKeyTab` | `actor.t[1638]`

A Lookup Table holding conversation keys. Entries in this list take the form tag -> list of TopicEntries that match this tag (e.g. the key is a convKey tag, expressed as a single-quoted string, and the value is a list containing TopicEntries whose convKeys property contains that tag).

`curState` | `actor.t[33]`

Our current ActorState. This should normally be treated as a read-only property; to change the current ActorState of an actor call the setState() method.

`defaultCountsAsSay` | `actor.t[1066]`

Do we want a DefaultTopic to count as a SayTopic for the purpose of deciding whether to allow otherwise not understood commands being interpreted as implicit SAY commands? By default we don't, since that's most likely to be what game authors who don't explicitly define SayTopics (or DefaultSayTopics) intend, but game code can override this, either on individual actors or on the Actor class.

`defaultSayResponse` | `actor.t[2232]`

no description available

`dontKnowWhereGoneMsg` | `actor.t[2496]`

no description available

`enableImplicitSay` | `actor.t[1057]`

User modifiable flag for use with the allowImplicitSay() method. Do we ever want to allow implicit SAY commands for this actor? By default we do allow this (true), since this has been the default library behaviour up until now, but game authors can change this either on individual Actors or by modifying the Actor class.

`fDaemon` | `actor.t[1172]`

Store the id of the daemon being used to make us follow the player char. We can check whether this actor is currently following or not by testing whether or not this is nil.

`followActorMsg` | `actor.t[1323]`

Otherwise, let the connector handle it.

`followAgendaItem` | `actor.t[1334]`

Our currently executing FollowAgendaItem, if we have one.

`followFuseID` | `actor.t[1254]`

A note of our current following fuse, if we have one; this is used by FollowAgendaItem to check whether the player character is ready to follow us.

`informedNameTab` | `actor.t[1805]`

Our look up table for things we've been informed about

`informOverheard` | `actor.t[1836]`

Should other actors who can notionally hear the PC talking to us overhear when information is imparted to us? I.e. should their setInform() methods be called too? If we have a curState we use its setting, otherwise we use the value of actorInformOverheard.

`isAttackable` OVERRIDDEN | `actor.t[2280]`

By default it's normally possible to attack an actor, even if we don't want to allow it. Game code might want to override this to nil for actors it's obviously futile to try attacking, such as ghosts, gods and giants.

`isFixed` OVERRIDDEN | `actor.t[167]`

By default actors can't be picked up and carried around by other actors (though game authors can override this if they need to create a portable actor).

`keepPendingKeys` | `actor.t[746]`

If keepPendingKeys is set to true (normally by a <.convstay> tag) then retain the pending conversation keys (and hence the active ones) for the next conversational turn.

`keysManaged` | `actor.t[625]`

Flag; has the active/pending key management already been carried out on this turn?

`kissRank` OVERRIDDEN | `actor.t[2263]`

An Actor is a more likely target of a KISS action than is an animate object.

`kissResponseMsg` | `actor.t[2257]`

The default response of the actor to an attempt to kiss him/her/it where this is not handled anywhere else, but allowKiss is true.

`lastConvTime` | `actor.t[710]`

The last turn on which this actor conversed with the player character. We start out with a value of -1 to mean that we haven't conversed at all.

`lastTravelInfo` | `actor.t[899]`

If the player character has seen this actor travel then lastTravelInfo contains a two-element list comprising the room the actor was seen travelling from and the connector by which the actor was seen travelling.

Note that if you move an actor by authorial fiat using moveInto() (say) when the player character can see the actor, you might want to update lastTravelInfo manually to ensure that any subsequent FOLLOW command still works properly, e.g.: *.
"Bob storms out through the front door, slamming it behind him. ";
bob.moveInto(nil);
bob.lastTravelInfo = [hall, frontDoor]; *. (If instead of or before bob.moveInto(nil) you had written frontDoor.travelVia(bob), this wouldn't be necessary, since it would be handled for you by frontDoor.travelVia()).

`noGoodbyeResponseMsg` | `actor.t[1955]`

no description available

`noHelloResponseMsg` | `actor.t[1949]`

The message to display when someone says hello to this actor but there's no accessible HelloTopic defined.

`noResponseMsg` | `actor.t[186]`

The default response of the actor to a conversational command that is not handled anywhere else.

`notificationOrder` | `actor.t[2172]`

This property can be used by extensions or game code that wants to notify actors in some order of priority.

`ownsContents` OVERRIDDEN | `actor.t[2158]`

An actor generally owns its contents

`pcArrivalTurn` | `actor.t[925]`

The turn on which the player character last arrived in our location

`pcConnector` | `actor.t[878]`

The Travel Connector just traversed by the player character

`pcDefaultSayQuip` | `actor.t[2235]`

no description available

`pcJustArrived` | `actor.t[928]`

Flag -- has the player character just arrived?

`pendingAgendaList` | `actor.t[2062]`

A list of agenda items to be added to our agenda at some later point. The main purpose is to allow game code to set up a list of AgendaItems (typically ConvAgendaItems) that become part of the actor's current agenda when conversation is initiated via a HelloTopic.

`pendingKeys` | `actor.t[739]`

a list of the keys to be copied into the activeKeys property for use in the next conversational turn. These are normally added by game code via <.convnode> tags and the like in conversational output.

`physicalTopicObjs` | `actor.t[421]`

List of objects corresponding to non-conversation TopicEntry types for which an ActorState's noResponseMsg should not be used. We separate this lost out here to allow game code to add other game-specific types (e.g. hugTopicObj if the game implements a Hug Action and a HugTopic).

`refuseCommandMsg` | `actor.t[313]`

The default message to use in response to a command directed to this actor that is not handled in any other way.

`specialDescBeforeContents` OVERRIDDEN | `actor.t[131]`

We normally list any actors after the miscellaneous contents of a room

`stateDesc` OVERRIDDEN | `actor.t[72]`

Our state-specific description, which is appended to our desc to give our full description. By default we simply take this from our current ActorState.

`suggestionKey` | `actor.t[1557]`

If this is non-nil then a TOPICS command will use it to restrict the topics suggested to those with this key in their convKeys property. This could be used, for example, to provide a top-level 'menu' of topics when the full list would otherwise be overwhelming.

`touchResponseMsg` | `actor.t[2318]`

no description available

`waitToSeeMsg` | `actor.t[2492]`

no description available

Methods

`activatePendingAgenda ( )` | `actor.t[2076]`

Make our pending agenda items acting by moving them all from our pendingAgendaList to all our actual agenda lists (on the actor and on all our DefaultAgendaItems).

`actorAfterAction ( )` | `actor.t[812]`

Give this actor a chance to respond just after an action prior to any response from its current actor state. By default we do nothing, but game code can easily override this without any risk of breaking the state-dependent afterAction mechanism.

`actorAfterTravel (traveler, connector)` | `actor.t[936]`

Give this actor a chance to react just after another actor travels in addition to any reaction from its current actor state. By default we do nothing, but game code can easily override this without any risk of breaking the state-dependent afterTravel mechanism.

`actorArrivingTurn ( )` | `actor.t[1397]`

This method is executed when this actor has just followed the player character to a new location and there is no current ActorState. By default we do nothing.

`actorBeforeAction ( )` | `actor.t[789]`

Give this actor a chance to respond just before an action prior to any response from its current actor state. By default we do nothing, but game code can easily override this without any risk of breaking the state-dependent beforeAction mechanism.

`actorBeforeTravel (traveler, connector)` | `actor.t[907]`

Give this actor a chance to react just before another actor travels in addition to any reaction from its current actor state. By default we do nothing, but game code can easily override this without any risk of breaking the state-dependent beforeTravel mechanism.

`actorCanEndConversation (reason)` | `actor.t[1010]`

A state-independent check on whether this actor will allow the current conversation to end on account of reason. By default we simply return true to allow the conversation to end, but game code can override this to return nil to disallow the ending of the conversation (presumably under specific conditions).

`actorRemoteSpecialDesc (pov)` | `actor.t[155]`

The remoteSpecialDesc to use if we don't have a current ActorState (i.e. if curState is nil). By default we say the actor is in the remote location.

`actorSay (str)` | `actor.t[649]`

This method can be called on the actor when we want to display the text of one or both sides of a conversational exchange with the actor without going through the TopicEntry mechanism to do so.

`actorSayHello ( )` | `actor.t[1883]`

Have the actor greet the player character on the actor's initiative

`actorSpecialDesc ( )` | `actor.t[113]`

The specialDesc to use if we don't have a current ActorState By default we just display a message saying the actor is here or that the actor is in a nested room.

`addPendingKey (val)` | `actor.t[752]`

Add a convkey value to our pending keys list (for use as an active key

`addToAllAgendas ([lst])` | `actor.t[1998]`

Add an agenda item both to myself and to any DefaultAgendaTopics either directly in me or in any of my Actor States

`addToBothAgendas ([lst])` | `actor.t[1987]`

Add an agenda item to both myself and any DefaultAgendaTopic directly within me.

`addToCurAgendas ([lst])` | `actor.t[2012]`

Add an agenda item to myself and to any DefaultAgendaTopios directly in me or in my current ActorState.

`addToPendingAgenda ([lst])` | `actor.t[2065]`

Add an item to our pending agenda list

`afterAction ( )`OVERRIDDEN | `actor.t[792]`

Notification that an action has just been carried out in our presence

`afterTravel (traveler, connector)`OVERRIDDEN | `actor.t[913]`

Notification that travel has just taken place in our presence (usually because an actor has just arrived in our location)

`allowImplicitSay ( )` | `actor.t[1017]`

Do we want an otherwise not understood input (such as "You're crazy") treated as an implicit SAY command (e.g., treated as SAY YOU'RE CRAZY) when the player character is in conversatiom with this Actor? Return true if so or nil otherwise.

`allowOtherActorToTake (obj)` | `actor.t[2155]`

Is another actor allowed to take obj from our inventory? By default we return nil to disallow it for all objects.

`arouse (key)` | `actor.t[1646]`

Set the curiosityAroused flag to true for all topic entries with this convKey. This allows topics to be suggested when and only when the player character has some reason to be curious about them, even though they were actually available before.

`arrivingTurn ( )` | `actor.t[1381]`

This method is executed when this actor has just followed the player character to a new location.

`beforeAction ( )`OVERRIDDEN | `actor.t[759]`

Notification that an action is about to be carried out in our presence

`beforeTravel (traveler, connector)`OVERRIDDEN | `actor.t[820]`

Notification that something else is about to travel. By default we defer to out actor state, if we have one, but we also give the actor object a chance to respond.

`canCatchThrown (obj)` | `actor.t[2357]`

We'll assume that actors can catch anything thrown at them by default, but game code may wish to override this assumption.

`canEndConversation (reason)` | `actor.t[971]`

Is the actor willing for this conversation to be ended? We first check the current actor state (if any) and then the actor object. If either raises an object it should display a message saying what the objection is (and then return nil). By default we simply return true, allowing the conversation to end.

`cannotTakeFromActorMsg (obj)` | `actor.t[2137]`

Return a message saying that the actor cannot take obj from our inventory.

`condSay (str)` | `actor.t[679]`

Conditionally use actorSay() or say() to output str depending on whether str appears to be something the actor says or simply a non-verbal response (or lack of response). If str contains quote marks or the sequence @@ we'll assume it's something the actor says (and strip out the @@ that would simply be there to mark str as something the actor says, perhaps reported in indirect speech.

`convAgendaReady (other)` | `actor.t[1975]`

Is this actor ready to invoke a ConvAgendaItem? We're ready if we haven't conversed this term and we can speak to the other actor and we're not at a conversation node. This method is used by the isReady property of ConvAgendaItem (to save it having to make three separate calls to getActor).

`curNodeIdx ( )` | `actor.t[1724]`

Service method used by curNodeKey() and curNodeObj() to identify the current ConvNode object, if there is one.

`curNodeKey ( )` | `actor.t[1745]`

The string name of our current convNode, if we have one.

`curNodeObj ( )` | `actor.t[1761]`

The object representing our current convNode, if we have one.

`dobjFor(AskAbout)`OVERRIDDEN | `actor.t[2190]`

no description available

`dobjFor(AskFor)`OVERRIDDEN | `actor.t[2198]`

no description available

`dobjFor(Attack)`OVERRIDDEN | `actor.t[2305]`

no description available

`dobjFor(AttackWith)`OVERRIDDEN | `actor.t[2314]`

no description available

`dobjFor(Feel)`OVERRIDDEN | `actor.t[2320]`

no description available

`dobjFor(Follow)`OVERRIDDEN | `actor.t[2418]`

no description available

`dobjFor(Kiss)`OVERRIDDEN | `actor.t[2265]`

no description available

`dobjFor(QueryAbout)`OVERRIDDEN | `actor.t[2239]`

no description available

`dobjFor(SayTo)`OVERRIDDEN | `actor.t[2224]`

no description available

`dobjFor(TalkAbout)`OVERRIDDEN | `actor.t[2214]`

no description available

`dobjFor(TalkTo)`OVERRIDDEN | `actor.t[2182]`

no description available

`dobjFor(TellAbout)`OVERRIDDEN | `actor.t[2206]`

no description available

`endConversation (reason)` | `actor.t[947]`

Terminate a conversation that's currently going on between this actor and the player character. The reason parameter is the reason for ending the conversation and can be one of endConvBye (the player character has just said goodbye), endConvTravel (the player character is leaving the location), endConvBoredom (this actor has become bored with waiting for the player character to say anything) or endConvActor (this actor wishes to terminate the conversation for some other reason of its own).

`findBestResponse (prop, topic)` | `actor.t[391]`

Find the best response to use for a conversational command directed to this actor. prop would normally be a property pointer for the property containing the appropriate list or lists of Topic Entries to test, and topic is the Topic object we're trying to match.

`followDaemon ( )` | `actor.t[1087]`

Mechanism to allow this actor to follow the player char. We do this rather simplistically by checking whether the player char is still in our location and moving us to the player char's location if s/he is not on the assumption that if the player char can get there in one turn, so can we. On arriving in the player char's new location we announce that we've just followed the player char and then run the arrivingTurn method on our current actor state (if we have one).

`followFuse ( )` | `actor.t[1261]`

This method is executed right at the end of a turn on which the player has issued a command to follow this actor, and carries out the travel to follow this actor if the actor has traveled.

`getActor ( )` | `actor.t[1785]`

We supply a getActor method that returns self so that objects such as TopicEntries that may be located either directly or indirectly in us can get at their associated actor by simply calling getActor on their immediate location; at some point such a chain of calls to location.getActor will end here.

`getBestMatch (prop, requestedList)`OVERRIDDEN | `actor.t[325]`

Find the best response to the topic produced by the player's command. prop is the xxxTopics list property we'll use to search for a matching TopicEntry. We first search the current ActorState for a match and then, only if we fail to find one, we search TopicEntries directly located in the actor. First priority, however, is given to TopicEntries whose convKeys match this actor's currentKeys (they match if the two lists have at least one element in common).

`handleCommand (action)`OVERRIDDEN | `actor.t[190]`

Handle a command (e.g. BOB, JUMP) directed at this actor.

`handleTopic (prop, topic, defaultProp, =, &, noResponseMsg)` | `actor.t[429]`

Handle a conversational command where prop is a pointer to the property containing the appropriate list of TopicEntries to search (e.g. &askTopics), topic is the list of Topics to match, and defaultProp is pointer to the property to invoke if we can't find a match.

`informedAbout (tag)` | `actor.t[1825]`

Determine whether this actor has been informed about tag. We return true if there is a corresponding non-nil entry in our informedNameTab

`initiateTopic (top)`OVERRIDDEN | `actor.t[2096]`

Respond to an InitiateTopic triggered on this actor with top as the matching object

`iobjFor(GiveTo)`OVERRIDDEN | `actor.t[2330]`

no description available

`iobjFor(ShowTo)`OVERRIDDEN | `actor.t[2338]`

no description available

`iobjFor(ThrowTo)`OVERRIDDEN | `actor.t[2361]`

no description available

`makeActivated (key)` | `actor.t[1669]`

Set the activated flag to true for all topic entries with this convKey.

`makeDeactivated (key)` | `actor.t[1693]`

Set the activated flag to nil for all topic entries with this convKey.

`manageKeys ( )` | `actor.t[601]`

Move pending keys to active keys and clear pending keys if need be. We call this out as a separate method to allow it to be directly called from elsewhere.

`nilResponse ( )` | `actor.t[1959]`

Do nothing if we can't fine a suitable Hello or Bye Topic/

`noteConversed ( )` | `actor.t[628]`

Convenience method to note that conversation has occurred on this turn

`notifyRemove (obj)`OVERRIDDEN | `actor.t[2115]`

The notifyRemove() method is triggered when actionMoveInto() tries to move an object that's located within this actor. By default we don't allow it since it typically represents an attempt by the player character to take something from this actor's inventory.

`remoteSpecialDesc (pov)`OVERRIDDEN | `actor.t[143]`

The specialDesc of this actor when it is viewed from a remote location. If we have a current ActorState we use its remoteSpecialDesc, otherwise we use the actorRemoteSpecialDesc on the actor. Either way the pov parameter is the point of view object from which this actor is being viewed (normally the player char).

Note that this method is generally only relevant if the senseRegion module is used.

`removeFromAllAgendas ([lst])` | `actor.t[2035]`

Remove an agenda Item both from this actor and from any associated DefaultAgendaTopics directly within this actor or in any of its ActorStates.

`removeFromBothAgendas ([lst])` | `actor.t[2023]`

Remove an agenda Item both from this actor and from any associated DefaultAgendaTopics directly within this actor.

`removeFromCurAgendas ([lst])` | `actor.t[2049]`

Remove an agenda item from myself and from any DefaultAgendaTopios directly in me or in my current ActorState.

`removeFromPendingAgenda ([lst])` | `actor.t[2085]`

Remove one or more agenda items from our pending agenda

`sayActorArriving (fromLoc)` | `actor.t[1419]`

Default message to display when the player character sees this actor arriving. We use a very plain-vanilla message here, since in practice game code will generally want to override this.

`sayActorCatches (obj)` | `actor.t[2404]`

Display a message saying that this actor catches obj

`sayActorDeparting (conn)` | `actor.t[1368]`

Method to display a message saying that this actor (normally an NPC visible to the player character) is departing via conn (a TravelConnector object, which may be a Room as well as a Door or other kind of connector). Note that the default behaviour of ActorState.sayDeparting is simply to call this method.

`sayActorDropsCatch (obj)` | `actor.t[2411]`

Display a message saying that this actor failst to catch obj

`sayActorFollowing (oldLoc, conn)` | `actor.t[1198]`

Display a message to say that we've just followed the player character to a new location from oldLoc. The library provides a default message but this can be overridded as desired.

`sayActorFollowingMe (conn)` | `actor.t[1309]`

The message to display when another actor follows this one.

`sayArriving (fromLoc)` | `actor.t[1403]`

The message to display when the player char sees this actor arriving after traveling from loc.

`sayDeparting (conn)` | `actor.t[1350]`

Display a message describing this actor's departure via conn. This looks a bit circuitous in that this method calls the corresponding method on the current ActorState, which by default calls our own sayActorDeparting() method, which in turn calls sayDeparting on the connector; the idea is to allow customization at any point with the connector's sayDeparting() method simply providing a fallback to a colourless default. Note, however, that game code shouldn't normally override the actor's sayDeparting() method, but should instead intervene either on the ActorState or on the actor's sayActorDeparting() method. Note also that the purpose of this method is to describe an NPC's departure from the point of view of the player character, not to describe the player character's movements.

`sayFollowing (oldLoc, conn)` | `actor.t[1178]`

Display a message to say that we've just followed the player character to a new location from oldLoc.

`sayGoodbye (reason, =, endConvBye)` | `actor.t[1914]`

Say goodbye to this actor (farewell from the player character). The optional reason parameter is the reason we're saying goodbye, which defaults to endConvBye (i.e. the player character saying goodbye)

`sayHeadAfterActor (conn)` | `actor.t[2485]`

reset the lastTravelInfo now that it's been used and is no longer relevant.

`sayHello ( )` | `actor.t[1851]`

Say hello to the actor (when the greetin is initiated by the player character)

`setFollowMeFuse ( )` | `actor.t[1231]`

Set the fuse to enable travel later on the same turn if this actor travels in the meantime. This method is called when a FOLLOW command is issed with this actor as its direct object.

`setInformed (tag)` | `actor.t[1813]`

Note that we've been informed of something, by adding it to our informedNameTab. Tag is an arbitrary single-quoted string value used to represent the information in question.

`setState (stat)` | `actor.t[39]`

Set our current ActorState to a new state (stat) or to no state at all (if the stat parameter is supplied as nil).

`showSuggestions (explicit, =, true, tag, =, (, pendingKeys, =, =, ], suggestionKey, :, pendingKeys)` | `actor.t[1568]`

Show a list of topics the player character might want to discuss with this actor. The explicit flag is true if the player has explicitly requested the topic list via a TOPICS command. The tag parameter can be a single convKey tag or a list of convKey tags; if tag is nil or 'all' then we don't restrict the suggestions by tag, otherwise we restrict the suggestions to those that match the tag (or one of the tags in the list of tags).

`specialDesc ( )` | `actor.t[81]`

Our specialDesc (used to describe us in room listing). By default we use our ActorState's specialDesc if we have a current ActorState or else our actorSpecialDesc if our current ActorState is nil. But if there's a current FollowAgendaItem we let it handle the specialDesc instead.

`startFollowing ( )` | `actor.t[1134]`

Game code can call this method to instruct this actor to start following the player char round the map

`stopFollowing ( )` | `actor.t[1148]`

Game code can call this method to instruct this actor to stop following the player char round the map.

`takeTurn ( )` | `actor.t[1468]`

The takeTurn() method is called on every Actor every turn to carry out a number of housekeeping functions relating to the conversation and agenda item systems.

`travelVia (conn, announceArrival, =, true)`OVERRIDDEN | `actor.t[1438]`

Make this actor travel via the connector conn and report its departure. If announceArrival is true (the default) we also announce the actor's arrival (if it's visible to the player char).

To suppress the default arrival announcement altogether, supply the second optional parameter as nil. In some cases it may be easier to do this and supply your own custom arrival message after calling travelVia() than to juggle with the various sayArriving() methods.

Adv3Lite Library Reference Manual
Generated on 12/12/2022 from adv3Lite version 1.6