X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=adventure.yaml;h=7f79d903e2639b9e7fdb3aba45e85a36bc360892;hp=53cb86c5041f16354081429477459df88a198105;hb=3b780dd57e295b57ba78649e008fede10e07cdd9;hpb=7dc88392493951baa8071c7318e6c0b086c531e9 diff --git a/adventure.yaml b/adventure.yaml index 53cb86c..7f79d90 100644 --- a/adventure.yaml +++ b/adventure.yaml @@ -6,14 +6,17 @@ # # We define a bunch of YAML structures: # -# vocabulary: Almost all the words the game knows - one of them (the +# vocabulary: - This structure is unused, and will eventually be removed. - +# Almost all the words the game knows - one of them (the # reservoir magic word) 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. # -# actspk: Default message for action verbs. The numbers correspond to -# values in the vocabulary list. +# motions: Motion words, grouped into synonyms. +# +# actions: Action words, grouped into synonyms, and their corresponding +# default messages. # # hints: Each item contains a hint number, a hint label (used to # generate the value macro for the hint) the number of turns he @@ -56,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. # @@ -80,16 +84,18 @@ # Order doesn't matter; the logic simply tests every threshold on # the assumption that turn counts never decrease nor skip values. # -# object_descriptions: Each item contains a description for use in the +# objects: Each item contains a description for use in the # inventory command and one or more messages describing the object -# in different states. There is also a boolean "treasure" -# attribute, defaulting to false. An pbject may have one or two +# in different states. The vocabulary word(s) referring to this +# object are listed (words). There is also a boolean "treasure" +# attribute, defaulting to false. An object may have one or two # start locations (the gate is an example of a two-location object; # 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 viible to the code for the associayed state, numbered -# from zero upwards. If the inventory desription 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 @@ -786,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: @@ -795,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]}, @@ -817,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]}, @@ -830,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]}, @@ -843,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]}, @@ -855,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]}, @@ -893,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: @@ -914,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]}, @@ -989,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]}, @@ -1435,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]}, @@ -1486,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]}, ] @@ -1915,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: @@ -2222,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: @@ -2545,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]}, ] @@ -3084,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: @@ -3094,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' @@ -3237,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?)' @@ -3251,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' @@ -3360,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']