Test coverage -- 100% cheat for real this time
[open-adventure.git] / adventure.yaml
index 29516625008065157a4c0e349f4d1f43e67465d7..7f79d903e2639b9e7fdb3aba45e85a36bc360892 100644 (file)
@@ -59,7 +59,8 @@
 #                      [pct, N]       Roll a die, n% chance of success
 #                      [carry, OBJ]   Must be carrying named object
 #                      [with, OBJ]    Must be carrying or in room with
-#                      [not, OBJ N]   Property of named OBJ must not be N
+#                      [not, OBJ N]   Property of named OBJ must not be N.
+#                                     N may be numeric or a state label.
 #    All attributes are optional except the long description and
 #    travel. Order of locations is not significant.
 #
@@ -92,8 +93,9 @@
 #    it can be accessed from above or below).  An object may also be
 #    flagged immovable, meaning it cannot be carried.  If a state
 #    message is a tuple then the first element is made the name of a
-#    #define visble to the code for the associated state, numbered
-#    from zero upwards. If the inventory description begins with "*"
+#    #define visible to the code for the associated state, numbered
+#    from zero upwards; it is also a state label that can be used in
+#    travel-rule 'not' clauses. If the inventory description begins with "*"
 #    the object is dungeon furniture that cannot be taken or carried.
 #
 # obituaries: Death messages and reincarnation queries.  Order is
@@ -790,7 +792,7 @@ locations: !!omap
       {verbs: ['WEST'], action: [goto, LOC_FOREST9]},
       {verbs: ['BUILD'], action: [goto, LOC_START]},
       {verbs: ['UPSTR', 'GULLY', 'NORTH'], action: [goto, LOC_SLIT]},
-      {verbs: ['ENTER', 'INWAR', 'D'], cond: [not, GRATE, 0,], action: [goto, LOC_BELOWGRATE]},
+      {verbs: ['ENTER', 'INWAR', 'D'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_BELOWGRATE]},
       {verbs: ['ENTER'], action: ["speak", GRATE_NOWAY]},
     ]
 - LOC_BELOWGRATE:
@@ -799,7 +801,7 @@ locations: !!omap
       short: 'You''re below the grate.'
     conditions: {LIT: true}
     travel: [
-      {verbs: ['OUT', 'UPWAR'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+      {verbs: ['OUT', 'UPWAR'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
       {verbs: ['OUT'], action: ["speak", GRATE_NOWAY]},
       {verbs: ['CRAWL', 'COBBL', 'INWAR', 'WEST'], action: [goto, LOC_COBBLE]},
       {verbs: ['PIT'], action: [goto, LOC_PITTOP]},
@@ -821,7 +823,7 @@ locations: !!omap
       short: 'You''re in debris room.'
     conditions: {}
     travel: [
-      {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
       {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
       {verbs: ['CRAWL', 'COBBL', 'PASSA', 'LOW', 'EAST'], action: [goto, LOC_COBBLE]},
       {verbs: ['CANYO', 'INWAR', 'UPWAR', 'WEST'], action: [goto, LOC_AWKWARD]},
@@ -834,7 +836,7 @@ locations: !!omap
       short: !!null
     conditions: {}
     travel: [
-      {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
       {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
       {verbs: ['D', 'EAST', 'DEBRI'], action: [goto, LOC_DEBRIS]},
       {verbs: ['INWAR', 'UPWAR', 'WEST'], action: [goto, LOC_BIRD]},
@@ -847,7 +849,7 @@ locations: !!omap
     conditions: {}
     hints: [*bird] 
     travel: [
-      {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
       {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
       {verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
       {verbs: ['CANYO', 'EAST'], action: [goto, LOC_AWKWARD]},
@@ -859,7 +861,7 @@ locations: !!omap
       short: 'You''re at top of small pit.'
     conditions: {}
     travel: [
-      {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
       {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
       {verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
       {verbs: ['PASSA', 'EAST'], action: [goto, LOC_BIRD]},
@@ -897,9 +899,9 @@ locations: !!omap
     conditions: {DEEP: true}
     travel: [
       {verbs: ['HALL', 'EAST'], action: [goto, LOC_MISTHALL]},
-      {verbs: ['JUMP'], cond: [not, FISSURE, 0], action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORWA'], cond: [not, FISSURE, 1], action: [goto, LOC_NOMAKE]},
-      {verbs: ['OVER', 'ACROS', 'WEST', 'CROSS'], cond: [not, FISSURE, 1], action: ["speak", NO_CROSS]},
+      {verbs: ['JUMP'], cond: [not, FISSURE, UNBRIDGED], action: ["speak", CROSS_BRIDGE]},
+      {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED], action: [goto, LOC_NOMAKE]},
+      {verbs: ['OVER', 'ACROS', 'WEST', 'CROSS'], cond: [not, FISSURE, BRIDGED], action: ["speak", NO_CROSS]},
       {verbs: ['OVER'], action: [goto, LOC_WESTBANK]},
     ]
 - LOC_NUGGET:
@@ -918,9 +920,9 @@ locations: !!omap
     hints: [*snake]
     travel: [
       {verbs: ['STAIR', 'UPWAR', 'EAST'], action: [goto, LOC_MISTHALL]},
-      {verbs: ['NORTH', 'RIGHT'], cond: [not, SNAKE, 0], action: [goto, LOC_FLOORHOLE]},
-      {verbs: ['SOUTH', 'LEFT'], cond: [not, SNAKE, 0], action: [goto, LOC_SOUTHSIDE]},
-      {verbs: ['WEST', 'FORWA'], cond: [not, SNAKE, 0], action: [goto, LOC_WESTSIDE]},
+      {verbs: ['NORTH', 'RIGHT'], cond: [not, SNAKE, SNAKE_BLOCKS], action: [goto, LOC_FLOORHOLE]},
+      {verbs: ['SOUTH', 'LEFT'], cond: [not, SNAKE, SNAKE_BLOCKS], action: [goto, LOC_SOUTHSIDE]},
+      {verbs: ['WEST', 'FORWA'], cond: [not, SNAKE, SNAKE_BLOCKS], action: [goto, LOC_WESTSIDE]},
       {verbs: ['NORTH'], action: [goto, LOC_SNAKEBLOCK]},
       {verbs: ['SW'], cond: [pct, 35], action: [goto, LOC_SECRET3]},
       {verbs: ['SW'], cond: ["with", SNAKE], action: [goto, LOC_SNAKEBLOCK]},
@@ -993,9 +995,9 @@ locations: !!omap
       short: 'You''re on west bank of fissure.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['JUMP'], cond: [not, FISSURE, 0], action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORWA'], cond: [not, FISSURE, 1], action: [goto, LOC_NOMAKE]},
-      {verbs: ['OVER', 'ACROS', 'EAST', 'CROSS'], cond: [not, FISSURE, 1], action: ["speak", NO_CROSS]},
+      {verbs: ['JUMP'], cond: [not, FISSURE, UNBRIDGED], action: ["speak", CROSS_BRIDGE]},
+      {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED], action: [goto, LOC_NOMAKE]},
+      {verbs: ['OVER', 'ACROS', 'EAST', 'CROSS'], cond: [not, FISSURE, BRIDGED], action: ["speak", NO_CROSS]},
       {verbs: ['OVER'], action: [goto, LOC_EASTBANK]},
       {verbs: ['NORTH'], action: [goto, LOC_PARALLEL1]},
       {verbs: ['WEST'], action: [goto, LOC_MISTWEST]},
@@ -1439,7 +1441,7 @@ locations: !!omap
     conditions: {DEEP: true}
     travel: [
       {verbs: ['D', 'SLAB'], action: [goto, LOC_SLAB]},
-      {verbs: ['SOUTH'], cond: [not, DRAGON, 0], action: [goto, LOC_SECRET5]},
+      {verbs: ['SOUTH'], cond: [not, DRAGON, DRAGON_BLOCKS], action: [goto, LOC_SECRET5]},
       {verbs: ['SOUTH'], action: [goto, LOC_SECRET4]},
       {verbs: ['NORTH'], action: [goto, LOC_MIRRORCANYON]},
       {verbs: ['RESER'], action: [goto, LOC_RESERVOIR]},
@@ -1490,7 +1492,7 @@ locations: !!omap
     conditions: {DEEP: true}
     travel: [
       {verbs: ['EAST'], action: [goto, LOC_KINGHALL]},
-      {verbs: ['WEST'], cond: [not, DRAGON, 0], action: [goto, LOC_SECRET5]},
+      {verbs: ['WEST'], cond: [not, DRAGON, DRAGON_BLOCKS], action: [goto, LOC_SECRET5]},
       {verbs: ['WEST'], action: [goto, LOC_SECRET6]},
       {verbs: ['D'], action: [goto, LOC_WIDEPLACE]},
     ]
@@ -1919,9 +1921,9 @@ locations: !!omap
     travel: [
       {verbs: ['SW'], action: [goto, LOC_WINDING]},
       {verbs: ['OVER', 'ACROS', 'CROSS', 'NE'], cond: [with, TROLL], action: ["speak", TROLL_BLOCKS]},
-      {verbs: ['OVER'], cond: [not, CHASM, 0], action: ["speak", BRIDGE_GONE]},
+      {verbs: ['OVER'], cond: [not, CHASM, TROLL_BRIDGE], action: ["speak", BRIDGE_GONE]},
       {verbs: ['OVER'], action: ["special", 3]},
-      {verbs: ['JUMP'], cond: [not, CHASM, 0], action: [goto, LOC_NOMAKE]},
+      {verbs: ['JUMP'], cond: [not, CHASM, TROLL_BRIDGE], action: [goto, LOC_NOMAKE]},
       {verbs: ['JUMP'], action: ["speak", CROSS_BRIDGE]},
     ]
 - LOC_WINDING:
@@ -2226,7 +2228,7 @@ locations: !!omap
     conditions: {DEEP: true}
     travel: [
       {verbs: ['NORTH', 'OUT'], action: [goto, LOC_DIFFERENT2]},
-      {verbs: ['SOUTH'], cond: [not, VEND, 0], action: [goto, LOC_ROUGHHEWN]},
+      {verbs: ['SOUTH'], cond: [not, VEND, VEND_BLOCKS], action: [goto, LOC_ROUGHHEWN]},
       {verbs: ['SOUTH'], action: [goto, LOC_BADDIRECTION]},
     ]
 - LOC_ROUGHHEWN:
@@ -2549,7 +2551,7 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: WATERS_CRASHING
     travel: [
-      {verbs: ['SOUTH', 'ACROS', 'CROSS'], cond: [not, RESER, 1], action: ["speak", BAD_DIRECTION]},
+      {verbs: ['SOUTH', 'ACROS', 'CROSS'], cond: [not, RESER, WATERS_PARTED], action: ["speak", BAD_DIRECTION]},
       {verbs: ['SOUTH'], action: [goto, LOC_RESBOTTOM]},
       {verbs: ['NW', 'UPWAR', 'OUT'], action: [goto, LOC_TREACHEROUS]},
     ]
@@ -3088,8 +3090,8 @@ objects: !!omap
     locations: LOC_KINGHALL
     immovable: true
     longs:
-    - 'A huge green fierce snake bars the way!'
-    - '' # chased away
+    - [SNAKE_BLOCKS, 'A huge green fierce snake bars the way!']
+    - [SNAKE_CHASED, ''] # chased away
     sounds:
     - 'The snake is hissing venomously.'
 - FISSURE:
@@ -3098,9 +3100,9 @@ objects: !!omap
     locations: [LOC_EASTBANK, LOC_WESTBANK]
     immovable: true
     longs:
-    - ''
-    - 'A crystal bridge now spans the fissure.'
-    - 'The crystal bridge has vanished!'
+    - [UNBRIDGED, '']
+    - [BRIDGED, 'A crystal bridge now spans the fissure.']
+    - [VANISHED, 'The crystal bridge has vanished!']
 - OBJ_13:
     words: ['table']
     inventory: '*stone tablet'
@@ -3241,7 +3243,7 @@ objects: !!omap
     locations: [LOC_SECRET4, LOC_SECRET6]
     immovable: true
     longs:
-    - 'A huge green fierce dragon bars the way!'
+    - [DRAGON_BLOCKS, 'A huge green fierce dragon bars the way!']
     - 'The blood-specked body of a huge green dead dragon lies to one side.'
     - 'The body of a huge green dead dragon is lying off to one side.'
     - 'Congratulations!  You have just vanquished a dragon with your bare\nhands!  (Unbelievable, isn''t it?)'
@@ -3255,8 +3257,8 @@ objects: !!omap
     locations: [LOC_SWCHASM, LOC_NECHASM]
     immovable: true
     longs:
-    - 'A rickety wooden bridge extends across the chasm, vanishing into the\nmist.  A notice posted on the bridge reads, "Stop! Pay troll!"'
-    - 'The wreckage of a bridge (and a dead bear) can be seen at the bottom\nof the chasm.'
+    - [TROLL_BRIDGE, 'A rickety wooden bridge extends across the chasm, vanishing into the\nmist.  A notice posted on the bridge reads, "Stop! Pay troll!"']
+    - [BRIDGE_WRECKED, 'The wreckage of a bridge (and a dead bear) can be seen at the bottom\nof the chasm.']
 - TROLL:
     words: ['troll']
     inventory: '*troll'
@@ -3364,7 +3366,7 @@ objects: !!omap
     immovable: true
     longs:
     - ''
-    - 'The waters have parted to form a narrow path across the reservoir.'
+    - [WATERS_PARTED, 'The waters have parted to form a narrow path across the reservoir.']
     - 'The waters crash together again.'
 - OBJ_46:
     words: ['appen', 'lepor']