SayTopic class | actor.t[5674], facts.t[1346]

A SayTopic is a kind of SpecialTopic that allows the player (character) to say virtually anything (within reason) to an NPC; a SayTopic may be triggered by a command that explicitly begins with SAY, but it may also be triggered by any combination of words that matches its matchObj and doesn't correspond to any other recognizable command. This allows the player to respond, for example, with either SAY YOU DON'T KNOW or just I DON'T KNOW, to trigger an appropriately defined SayTopic.

Modified in facts.t[1346]:
Modificstions to SayTopic to work with Facts.

`class SayTopic : SpecialTopic`

Superclass Tree (in declaration order)

`SayTopic`
`SpecialTopic`
`ActorTopicEntry`
`ReplaceRedirector`
`Redirector`
`object`
`TopicEntry`
`object`

Subclass Tree

(none)

Global Objects

(none)

Summary of Properties

`extraVocab includeInList includeSayInName`

Inherited from `SpecialTopic` :
`askMatchObj autoName rex tellMatchObj`

Inherited from `ActorTopicEntry` :
`activated activateKeyTopics active agenda agendaPath arouseKeyTopics aTag autoSuppress autoSuppressSubTopics autoUseAgenda convKeys curiosityAroused getActor impliesGreeting keyTopics lastConvResponse lcrScriptClass listOrder mayAddSubtopics name nextStep suggestAs timesInvoked tTag wasConversational`

``

``

Inherited from `TopicEntry` :
`isActive matchExactCase matchObj matchPattern matchScore narrator scoreBoost topicMatched`

Summary of Methods

`buildName matchPattern`

Inherited from `SpecialTopic` :
`initializeTopicEntry`

Inherited from `ActorTopicEntry` :
`activate addToConvKeyTable baseHandleTopic curiositySatisfied deactivate filterTopicSuggestions fText getKeyTopics handleTopic infTag isConversational isReachable nodeActive qualifiedDesc revTag showKeyTopics timesToSuggest tryAgenda tryNextStep useAgenda`

Inherited from `ReplaceRedirector` :
`redirect`

Inherited from `Redirector` :
`askMissingLiteral doInstead doNested doOtherAction`

Inherited from `TopicEntry` :
`addTopic factText informFact informNewFact interpret matchTopic revealFact revealNewFact scoreBooster topicResponse`

Properties

`extraVocab` | `facts.t[1391]`

The matchPattern of a SayTopic normally contains what will be the vocab string of the Topic created for the SayTopic to match on. The fact name only provides the name part of this, so we make provision for supplying additional vocab after the name part. For example if the fact you want to impart ihas the desc 'you love her', you might want to set extraVocab to 'i' to produce the vocab 'you love her; i' so that it will match 'I love you' as well as 'you love her'.

`includeInList` OVERRIDDEN | `actor.t[5698]`

SayTopics belong in the sayTopics list of their TopicDatabase

`includeSayInName` | `actor.t[5708]`

When a SayTopic is suggested we normally precede its name by 'say', e.g. 'say you are happy'. In some cases an author might want to use a SayTopic to match input that's better without the initial 'say', e.g. 'tell a lie', in which case set includeSayInName to nil to suppress the initial 'say' in topic inventory listings.

Methods

`buildName ( )`OVERRIDDEN | `actor.t[5682]`

When we construct the name of a SayTopic we use the name property of its matchObj rather that theName property, since it won't normally make sense to include the definite article at the beginning of suggestions of things that can be said.

`matchPattern ( )` | `facts.t[1352]`

The modification allows the user to specify a tTag and extraVocab instead of a matchPattern.

Adv3Lite Library Reference Manual
Generated on 08/12/2025 from adv3Lite version 2.2.2