A "multi-faceted" object is similar to a MultiInstance object, with the addition that the instance objects are "facets" of one another. This means that they have the same identity, from the perspective of a character in the scenario: all of the instance objects are part of the same conceptual object, not separate objects.

This is especially useful for large objects that span multiple locations, such as a river or a long rope.

You define a multi-faceted object the same way you set up a MultiInstance: definfe a MultiFaceted shell object, and as part of the shell, define the facet object using the instanceObject property. Here's an example:

river: MultiFaceted
locationList = [riverBank, meadow, canyon]
instanceObject: Fixture { 'river' 'river'
"The river meanders by. "

The main difference between MultiInstance and MultiFaceted is that the "facet" objects of a MultiFaceted are related as facets of a common object from the parser's perspective. For example, if a player refers to one facet, then travels to another location that contains a different facet, then refers to "it", the parser will realize that the pronoun refers to the new facet in the new location.

class MultiFaceted :   MultiInstance

Superclass Tree   (in declaration order)


Subclass Tree  


Global Objects  


Summary of Properties  


Inherited from MultiInstance :
instanceList  instanceObject 

Inherited from BaseMultiLoc :
initialLocationClass  locationList 

Summary of Methods  


Inherited from MultiInstance :
addInstance  addToContents  getInstanceIn  initializeLocation  moveInto  moveIntoAdd  moveOutOf  removeFromContents 

Inherited from BaseMultiLoc :
buildLocationList  isDirectlyIn  isIn  isInitiallyIn  isListedInContents  isOrIsIn 



the mix-in superclass for our instance objects


getFacets ( )objects.t[3266]

our instance objects represent our facets for parsing purposes

TADS 3 Library Manual
Generated on 5/16/2013 from TADS version 3.1.3