Comment polishing in adventure.yaml.
[open-adventure.git] / adventure.yaml
index 622b3198013ba1ce5584867da91be709df566f9f..a1c10fd173c4dae9114e539211d0e65138642419 100644 (file)
@@ -6,19 +6,22 @@
 #
 # We define a bunch of YAML structures:
 #
-# hints: Each item contains a hint number (add 10 to get cond bit),
-#    a hint label (used to generate the value macro for the hint) 
-#    the number of turns he must be at the right loc(s) before
-#    triggering the hint, the points deducted for taking the hint, the
-#    message number (section 6) of the question, and the message
-#    number of the hint.  These values are stashed in the "hints"
-#    array.
+# vocabulary: Almost all the words the game knows - one of them gets
+#    replaced with a randomly-generated cookie.  For each word there
+#    is a type (motion, action, object, or special) and a numeric value.
+#    Multiple synonyms may have the same value.
 #
-# locations: They have attributes as follows...
+# hints: Each item contains a hint number, a hint label (used to
+#    generate the value macro for the hint) the number of turns he
+#    must be at the right loc(s) before triggering the hint, the
+#    points deducted for taking the hint, the message number (in
+#    arbitrary_messages) of the question, and the message number of
+#    the hint.
 #
-#    long:         Long description, always shown on first encounter.
-#    short:        Short description. If none, use long description.
-#    conditions:   A dictionary of attributes
+# locations: They have attributes as follows...
+#      long:         Long description, always shown on first encounter.
+#      short:        Short description. If none, use long description.
+#      conditions:   A dictionary of attributes
 #        LIT           Light
 #        OILY          If FLUID flag is on: true for oil, false for water
 #        FLUID         Liquid asset
 #        HWOODS                Lost in forest
 #        HOGRE         Trying to deal with ogre
 #        HJADE         Found all treasures except jade
-#    hints:        A list of YAML references to hints that may be available at
-#                  this location. (This is why locations has to follow hints.)
-#    sound:        Label for a location sound.
-#    loud:         If true, object sounds are drowned out at this location.
-#
+#      hints:        A list of YAML references to hints that may be available at
+#                    this location. (This is why locations has to follow hints.)
+#      sound:        Label for a location sound.
+#      loud:         If true, object sounds are drowned out at this location.
 #    All attributes are optional except the long description. Order of
 #    locations is not significant.
 #
@@ -77,8 +79,8 @@
 #    significant, they're used in succession as the player racks up
 #    deaths.
 #
-# These correspond to sections 1, 2, 5, 6, 7, 9, 10, 11, 13, and 14 in
-# the old adventure.text format.  Sections 3, 4, and 8 haven't moved
+# These correspond to sections 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, and 14 in
+# the old adventure.text format.  Sections 3 and 8 haven't moved
 # yet.  Section 12 was obsolete.
 #
 # Message strings may include certain special character sequences to
 #      %B = Variable number of blanks
 #      %! = The entire message should be suppressed
 
+vocabulary: {
+    "ROAD":  {type: motion, value: 2},
+    "HILL":  {type: motion, value: 2},
+    "ENTER": {type: motion, value: 3},
+    "UPSTR": {type: motion, value: 4},
+    "DOWNS": {type: motion, value: 5},
+    "FORES": {type: motion, value: 6},
+    "FORWA": {type: motion, value: 7},
+    "CONTI": {type: motion, value: 7},
+    "ONWAR": {type: motion, value: 7},
+    "BACK":  {type: motion, value: 8},
+    "RETUR": {type: motion, value: 8},
+    "RETRE": {type: motion, value: 8},
+    "VALLE": {type: motion, value: 9},
+    "STAIR": {type: motion, value: 10},
+    "OUT":   {type: motion, value: 11},
+    "OUTSI": {type: motion, value: 11},
+    "EXIT":  {type: motion, value: 11},
+    "LEAVE": {type: motion, value: 11},
+    "BUILD": {type: motion, value: 12},
+    "HOUSE": {type: motion, value: 12},
+    "GULLY": {type: motion, value: 13},
+    "STREA": {type: motion, value: 14},
+    "FORK":  {type: motion, value: 15},
+    "BED":   {type: motion, value: 16},
+    "CRAWL": {type: motion, value: 17},
+    "COBBL": {type: motion, value: 18},
+    "INWAR": {type: motion, value: 19},
+    "INSID": {type: motion, value: 19},
+    "IN":    {type: motion, value: 19},
+    "SURFA": {type: motion, value: 20},
+    "NULL":  {type: motion, value: 21},
+    "NOWHE": {type: motion, value: 21},
+    "DARK":  {type: motion, value: 22},
+    "PASSA": {type: motion, value: 23},
+    "TUNNE": {type: motion, value: 23},
+    "LOW":   {type: motion, value: 24},
+    "CANYO": {type: motion, value: 25},
+    "AWKWA": {type: motion, value: 26},
+    "GIANT": {type: motion, value: 27},
+    "VIEW":  {type: motion, value: 28},
+    "UPWAR": {type: motion, value: 29},
+    "UP":    {type: motion, value: 29},
+    "U":     {type: motion, value: 29},
+    "ABOVE": {type: motion, value: 29},
+    "ASCEN": {type: motion, value: 29},
+    "D":     {type: motion, value: 30},
+    "DOWNW": {type: motion, value: 30},
+    "DOWN":  {type: motion, value: 30},
+    "DESCE": {type: motion, value: 30},
+    "PIT":   {type: motion, value: 31},
+    "OUTDO": {type: motion, value: 32},
+    "CRACK": {type: motion, value: 33},
+    "STEPS": {type: motion, value: 34},
+    "DOME":  {type: motion, value: 35},
+    "LEFT":  {type: motion, value: 36},
+    "RIGHT": {type: motion, value: 37},
+    "HALL":  {type: motion, value: 38},
+    "JUMP":  {type: motion, value: 39},
+    "BARRE": {type: motion, value: 40},
+    "OVER":  {type: motion, value: 41},
+    "ACROS": {type: motion, value: 42},
+    "EAST":  {type: motion, value: 43},
+    "E":     {type: motion, value: 43},
+    "WEST":  {type: motion, value: 44},
+    "W":     {type: motion, value: 44},
+    "NORTH": {type: motion, value: 45},
+    "N":     {type: motion, value: 45},
+    "SOUTH": {type: motion, value: 46},
+    "S":     {type: motion, value: 46},
+    "NE":    {type: motion, value: 47},
+    "SE":    {type: motion, value: 48},
+    "SW":    {type: motion, value: 49},
+    "NW":    {type: motion, value: 50},
+    "DEBRI": {type: motion, value: 51},
+    "HOLE":  {type: motion, value: 52},
+    "WALL":  {type: motion, value: 53},
+    "BROKE": {type: motion, value: 54},
+    "Y2":    {type: motion, value: 55},
+    "CLIMB": {type: motion, value: 56},
+    "LOOK":  {type: motion, value: 57},
+    "EXAMI": {type: motion, value: 57},
+    "TOUCH": {type: motion, value: 57},
+    "DESCR": {type: motion, value: 57},
+    "FLOOR": {type: motion, value: 58},
+    "ROOM":  {type: motion, value: 59},
+    "SLIT":  {type: motion, value: 60},
+    "SLAB":  {type: motion, value: 61},
+    "SLABR": {type: motion, value: 61},
+    "XYZZY": {type: motion, value: 62},
+    "DEPRE": {type: motion, value: 63},
+    "ENTRA": {type: motion, value: 64},
+    "PLUGH": {type: motion, value: 65},
+    "SECRE": {type: motion, value: 66},
+    "CAVE":  {type: motion, value: 67},
+    "CROSS": {type: motion, value: 69},
+    "BEDQU": {type: motion, value: 70},
+    "PLOVE": {type: motion, value: 71},
+    "ORIEN": {type: motion, value: 72},
+    "CAVER": {type: motion, value: 73},
+    "SHELL": {type: motion, value: 74},
+    "RESER": {type: motion, value: 75},
+    "MAIN":  {type: motion, value: 76},
+    "OFFIC": {type: motion, value: 76},
+    "KEYS":  {type: object, value: 1},
+    "KEY":   {type: object, value: 1},
+    "LAMP":  {type: object, value: 2},
+    "LANTE": {type: object, value: 2},
+    "GRATE": {type: object, value: 3},
+    "CAGE":  {type: object, value: 4},
+    "ROD":   {type: object, value: 5},
+    "ROD":   {type: object, value: 6}, # Must be next object after "real" rod
+    "STEPS": {type: object, value: 7},
+    "BIRD":  {type: object, value: 8},
+    "DOOR":  {type: object, value: 9},
+    "PILLO": {type: object, value: 10},
+    "VELVE": {type: object, value: 10},
+    "SNAKE": {type: object, value: 11},
+    "FISSU": {type: object, value: 12},
+    "TABLE": {type: object, value: 13},
+    "CLAM":  {type: object, value: 14},
+    "OYSTE": {type: object, value: 15},
+    "MAGAZ": {type: object, value: 16},
+    "ISSUE": {type: object, value: 16},
+    "SPELU": {type: object, value: 16},
+    '"SPEL': {type: object, value: 16},
+    "DWARF": {type: object, value: 17},
+    "DWARV": {type: object, value: 17},
+    "KNIFE": {type: object, value: 18},
+    "KNIVE": {type: object, value: 18},
+    "FOOD":  {type: object, value: 19},
+    "RATIO": {type: object, value: 19},
+    "BOTTL": {type: object, value: 20},
+    "JAR":   {type: object, value: 20},
+    "WATER": {type: object, value: 21},
+    "H2O":   {type: object, value: 21},
+    "OIL":   {type: object, value: 22},
+    "MIRRO": {type: object, value: 23},
+    "PLANT": {type: object, value: 24},
+    "BEANS": {type: object, value: 24},
+    "PLANT": {type: object, value: 25}, # Must be next object after "real" plant
+    "STALA": {type: object, value: 26},
+    "SHADO": {type: object, value: 27},
+    "FIGUR": {type: object, value: 27},
+    "WINDO": {type: object, value: 27}, # Same as figure
+    "AXE":   {type: object, value: 28},
+    "DRAWI": {type: object, value: 29},
+    "PIRAT": {type: object, value: 30},
+    "GENIE": {type: object, value: 30},
+    "DJINN": {type: object, value: 30},
+    "DRAGO": {type: object, value: 31},
+    "CHASM": {type: object, value: 32},
+    "TROLL": {type: object, value: 33},
+    "TROLL": {type: object, value: 34}, # Must be next object after "real" troll
+    "BEAR":  {type: object, value: 35},
+    "MESSA": {type: object, value: 36},
+    "VOLCA": {type: object, value: 37},
+    "GEYSE": {type: object, value: 37}, # Same as volcano
+    "MACHI": {type: object, value: 38},
+    "VENDI": {type: object, value: 38},
+    "BATTE": {type: object, value: 39},
+    "CARPE": {type: object, value: 40},
+    "MOSS":  {type: object, value: 40},
+    "CURTA": {type: object, value: 40}, # Same as carpet
+    "OGRE":  {type: object, value: 41},
+    "URN":   {type: object, value: 42},
+    "CAVIT": {type: object, value: 43},
+    "BLOOD": {type: object, value: 44},
+    "RESER": {type: object, value: 45}, # Verb overrides
+    "APPEN": {type: object, value: 46},
+    "LEPOR": {type: object, value: 46},
+    "MUD":   {type: object, value: 47},
+    "NOTE":  {type: object, value: 48},
+    "SIGN":  {type: object, value: 49},
+    "GOLD":  {type: object, value: 50},
+    "NUGGE": {type: object, value: 50},
+    "DIAMO": {type: object, value: 51},
+    "SILVE": {type: object, value: 52},
+    "BARS":  {type: object, value: 52},
+    "JEWEL": {type: object, value: 53},
+    "COINS": {type: object, value: 54},
+    "CHEST": {type: object, value: 55},
+    "BOX":   {type: object, value: 55},
+    "TREAS": {type: object, value: 55},
+    "EGGS":  {type: object, value: 56},
+    "EGG":   {type: object, value: 56},
+    "NEST":  {type: object, value: 56},
+    "TRIDE": {type: object, value: 57},
+    "VASE":  {type: object, value: 58},
+    "MING":  {type: object, value: 58},
+    "SHARD": {type: object, value: 58},
+    "POTTE": {type: object, value: 58},
+    "EMERA": {type: object, value: 59},
+    "PLATI": {type: object, value: 60},
+    "PYRAM": {type: object, value: 60},
+    "PEARL": {type: object, value: 61},
+    "RUG":   {type: object, value: 62},
+    "PERSI": {type: object, value: 62},
+    "SPICE": {type: object, value: 63},
+    "CHAIN": {type: object, value: 64},
+    "RUBY":  {type: object, value: 65},
+    "JADE":  {type: object, value: 66},
+    "NECKL": {type: object, value: 66},
+    "AMBER": {type: object, value: 67},
+    "GEMST": {type: object, value: 67},
+    "SAPPH": {type: object, value: 68},
+    "EBONY": {type: object, value: 69},
+    "STATU": {type: object, value: 69},
+    "CARRY": {type: action, value: 1},
+    "TAKE":  {type: action, value: 1},
+    "KEEP":  {type: action, value: 1},
+    "CATCH": {type: action, value: 1},
+    "STEAL": {type: action, value: 1},
+    "CAPTU": {type: action, value: 1},
+    "GET":   {type: action, value: 1},
+    "TOTE":  {type: action, value: 1},
+    "SNARF": {type: action, value: 1},
+    "DROP":  {type: action, value: 2},
+    "RELEA": {type: action, value: 2},
+    "FREE":  {type: action, value: 2},
+    "DISCA": {type: action, value: 2},
+    "DUMP":  {type: action, value: 2},
+    "SAY":   {type: action, value: 3},
+    "CHANT": {type: action, value: 3},
+    "SING":  {type: action, value: 3},
+    "UTTER": {type: action, value: 3},
+    "MUMBL": {type: action, value: 3},
+    "UNLOC": {type: action, value: 4},
+    "OPEN":  {type: action, value: 4},
+    "NOTHI": {type: action, value: 5},
+    "LOCK":  {type: action, value: 6},
+    "CLOSE": {type: action, value: 6},
+    "LIGHT": {type: action, value: 7},
+    "ON":    {type: action, value: 7},
+    "EXTIN": {type: action, value: 8},
+    "OFF":   {type: action, value: 8},
+    "WAVE":  {type: action, value: 9},
+    "SHAKE": {type: action, value: 9},
+    "SWING": {type: action, value: 9},
+    "CALM":  {type: action, value: 10},
+    "PLACA": {type: action, value: 10},
+    "TAME":  {type: action, value: 10},
+    "WALK":  {type: action, value: 11},
+    "RUN":   {type: action, value: 11},
+    "TRAVE": {type: action, value: 11},
+    "GO":    {type: action, value: 11},
+    "PROCE": {type: action, value: 11},
+    "CONTI": {type: action, value: 11},
+    "EXPLO": {type: action, value: 11},
+    "FOLLO": {type: action, value: 11},
+    "TURN":  {type: action, value: 11},
+    "ATTAC": {type: action, value: 12},
+    "KILL":  {type: action, value: 12},
+    "FIGHT": {type: action, value: 12},
+    "HIT":   {type: action, value: 12},
+    "STRIK": {type: action, value: 12},
+    "SLAY":  {type: action, value: 12},
+    "POUR":  {type: action, value: 13},
+    "EAT":   {type: action, value: 14},
+    "DEVOU": {type: action, value: 14},
+    "DRINK": {type: action, value: 15},
+    "RUB":   {type: action, value: 16},
+    "THROW": {type: action, value: 17},
+    "TOSS":  {type: action, value: 17},
+    "QUIT":  {type: action, value: 18},
+    "FIND":  {type: action, value: 19},
+    "WHERE": {type: action, value: 19},
+    "INVEN": {type: action, value: 20},
+    "FEED":  {type: action, value: 21},
+    "FILL":  {type: action, value: 22},
+    "BLAST": {type: action, value: 23},
+    "DETON": {type: action, value: 23},
+    "IGNIT": {type: action, value: 23},
+    "BLOWU": {type: action, value: 23},
+    "SCORE": {type: action, value: 24},
+    "FEE":   {type: action, value: 25},
+    "FIE":   {type: action, value: 25},
+    "FOE":   {type: action, value: 25},
+    "FOO":   {type: action, value: 25},
+    "FUM":   {type: action, value: 25},
+    "BRIEF": {type: action, value: 26},
+    "READ":  {type: action, value: 27},
+    "PERUS": {type: action, value: 27},
+    "BREAK": {type: action, value: 28},
+    "SHATT": {type: action, value: 28},
+    "SMASH": {type: action, value: 28},
+    "WAKE":  {type: action, value: 29},
+    "DISTU": {type: action, value: 29},
+    "SUSPE": {type: action, value: 30},
+    "PAUSE": {type: action, value: 30},
+    "SAVE":  {type: action, value: 30},
+    "RESUM": {type: action, value: 31},
+    "RESTA": {type: action, value: 31},
+    "FLY":   {type: action, value: 32},
+    "LISTE": {type: action, value: 33},
+    "Z'ZZZ": {type: action, value: 34}, # Gets replaced
+    "FEE":   {type: special, value: 1},
+    "FIE":   {type: special, value: 2},
+    "FOE":   {type: special, value: 3},
+    "FOO":   {type: special, value: 4},
+    "FUM":   {type: special, value: 5},
+    "THANK": {type: special, value: 13},
+    "SESAM": {type: special, value: 50},
+    "OPENS": {type: special, value: 50},
+    "ABRA":  {type: special, value: 50},
+    "ABRAC": {type: special, value: 50},
+    "SHAZA": {type: special, value: 50},
+    "HOCUS": {type: special, value: 50},
+    "POCUS": {type: special, value: 50},
+    "HELP":  {type: special, value: 51},
+    "?":     {type: special, value: 51},
+    "NO":    {type: special, value: 54},
+    "TREE":  {type: special, value: 64},
+    "TREES": {type: special, value: 64},
+    "DIG":   {type: special, value: 66},
+    "EXCAV": {type: special, value: 66},
+    "LOST":  {type: special, value: 68},
+    "MIST":  {type: special, value: 69},
+    "FUCK":  {type: special, value: 79},
+    "STOP":  {type: special, value: 139},
+    "INFO":  {type: special, value: 142},
+    "INFOR": {type: special, value: 142},
+    "SWIM":  {type: special, value: 147},
+    "WIZAR": {type: special, value: 246},
+    "YES":   {type: special, value: 271},
+    "NEWS":  {type: special, value: 275},
+}
+
 # FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here
 hints:
   - hint: &grate