Topic class | actor.t[39]

A Topic is an object representing some piece of knowledge in the story. Actors can use Topic objects in commands such as "ask" and "tell".

A physical simulation object can be a Topic through multiple inheritance. In addition, a game can define Topic objects for abstract conversation topics that don't correspond to simulation objects; for example, a topic could be created for "the meaning of life" to allow a command such as "ask guru about meaning of life."

The key distinction between Topic objects and regular objects is that a Topic can represent an abstract, non-physical concept that isn't connected to any "physical" object in the simulation.

`class Topic : VocabObject`

Superclass Tree (in declaration order)

`Topic`
`VocabObject`
`object`

Subclass Tree

(none)

Global Objects

(none)

Summary of Properties

`canResolvePossessive isKnown`

Inherited from `VocabObject` :
`disambigPromptOrder owner pluralOrder vocabLikelihood vocabWords weakTokens`

Summary of Methods

`canBeSensed`

Inherited from `VocabObject` :
`addToDictionary construct expandPronounList filterResolveList getFacets getNominalOwner inheritVocab initializeVocab initializeVocabWith isOwnedBy matchName matchNameCommon matchNameDisambig throwNoMatchForLocation throwNoMatchForPossessive throwNothingInLocation`

Properties

`canResolvePossessive` OVERRIDDEN | `actor.t[69]`

a topic cannot by default be used to resolve a possessive phrase

`isKnown` | `actor.t[57]`

Is the topic known? If this is true, the topic is in scope for actions that operate on topics, such as "ask about" and "tell about." If this is nil, the topic isn't known.

By default, we mark all topics as known to begin with, which allows discussion of any topic at any time. Some authors prefer to keep track of which topics the player character actually has reason to know about within the context of the game, making topics available for conversation only after they become known for some good reason, such as another character mentioning them in conversation.

Note that, as with Thing.isKnown, this is only the DEFAULT 'known' property. Each actor can have its own separate 'known' property by defining the actor's 'knownProp' to a different property name.

Methods

`canBeSensed (sense, trans, ambient)` | `actor.t[66]`

Topics are abstract objects, so they can't be sensed with any of the physical senses, even if they're ever included as part of a containment hierarchy (which might be convenient in some cases for purposes of associating a topic with a physical object, for example).

TADS 3 Library Manual
Generated on 8/21/2012 from TADS version 3.1.2