Newsgroups: rec.arts.int-fiction
Path: gmd.de!xlink.net!sol.ctr.columbia.edu!hamblin.math.byu.edu!news.byu.edu!news.kei.com!yeshua.marcam.com!zip.eecs.umich.edu!newsxfer.itd.umich.edu!gumby!yale!yale.edu!noc.near.net!viewlog.viewlogic.com!allen
From: allen@viewlogic.com (Dave Allen)
Subject: New TADS example available soon on archive site
Message-ID: <Cn8B7G.Ky8@viewlogic.com>
Sender: news@viewlogic.com
Nntp-Posting-Host: hex
Organization: Viewlogic Systems Inc.
Date: Fri, 25 Mar 1994 16:30:51 GMT
Lines: 48

I have submitted a new code module to the if-archive which allows you
to make a simple knowledge database which NPCs can use to reply to 
"ask about".  Right now the ZIP file is in ftp.gmd.de:/incoming/if-archive;
I expect it will soon be available in /if-archive/programming/tads/examples.
It is called "askabout.zip".

Here is a list of the features provided by this module.

1. Define a "factoid" for an object.  All actors in the game will be able to
   tell you this factoid about the object.  Each actor will only tell you the
   factoid once.  The text of the factoid can be randomized.  Here is some
   text from the sample game which shows how it looks.

   > ASK TOM ABOUT FOREST
   "The forest extends to the end of the world."
   > ASK JOE ABOUT FOREST
   "I think this forest extends to the end of the world."
   (same fact, different phrasing)
   > G
   (that's the abbreviation for "again", if you haven't used it)
   "The forest is very dense."
   > G
   "I've told you all I know about the forest."

2. Set the availability of a factoid.  Some factoids are only known by one
   actor, or by a class of actors.  Some factoids can only be revealed at
   a certain time, or after another factoid has been revealed.  In the sample
   game, you won't find out what the smell of the red rock is until after you
   have been told that the red rock has an unusual smell, and you won't know
   what Tom collects unless you ask Tom.

3. Define a "topic", such as "suspects".  This is a way of asking for
   information about more than one thing at a time.  When the player asks 
   about suspects, the list of possible factoids is built up from the basic
   factoids attached to "suspects", plus the list of factoids for each 
   suspect.  In the sample game, you can ask about "rocks" and work through
   the list of factoids for all rocks as well as a factoid about rocks in
   general ("rocks are collectible").

4. Define generic factoids.  The basic factoid is attached to a single object.
   You may want a class of objects to all inherit the same factoid, similar
   to defining the ldesc for a class as "The rock is <<self.color>> in color."
   In the sample game, each of the actors has a hair color which is treated
   in this way.

Please let me know if you have any questions or suggestions.

- Dave Allen: allen@viewlogic.com
