X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=adventure.yaml;h=87ef4b020d88b586b08902db56d0dac6c46e2254;hb=da27ae1932d1311887ad3a677b10b87610e31854;hp=53cb86c5041f16354081429477459df88a198105;hpb=7dc88392493951baa8071c7318e6c0b086c531e9;p=open-adventure.git diff --git a/adventure.yaml b/adventure.yaml index 53cb86c..87ef4b0 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,17 +84,25 @@ # 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 -# 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 -# 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 "*" -# the object is dungeon furniture that cannot be taken or carried. +# objects: Objects have attributes as follows... +# inventory: A description for use in the inventory command. +# descriptions: Messages describing the object in different states. +# If a state message is a tuple then the first element +# is made the name of a #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. +# changes: State-change messages to be emitted whenever the obect +# *changes* to the (0-origin) state that is the index of the +# message in this array. +# words: The vocabulary word(s) referring to this object. +# treasure: A boolean "treasure" used for point-scoring and pirate +# snatches, defaulting to false. +# immovable: An object may also be flagged +# immovable, meaning it cannot be carried. +# locations: 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). # # obituaries: Death messages and reincarnation queries. Order is # significant, they're used in succession as the player racks up @@ -456,7 +468,7 @@ motions: !!omap - MOT_56: words: ['climb'] - LOOK: - words: ['look', 'exami', 'touch', 'descr'] + words: ['l', 'x', 'look', 'exami', 'touch', 'descr'] - MOT_58: words: ['floor'] - MOT_59: @@ -500,112 +512,177 @@ actions: !!omap - ACT_0: message: !!null words: !!null -- ACT_1: +- CARRY: message: ALREADY_CARRYING - words: ['carry', 'take', 'keep', 'catch', 'steal', 'captu', 'get', 'tote', 'snarf'] -- ACT_2: + words: ['g', 'carry', 'take', 'keep', 'catch', 'steal', 'captu', 'get', 'tote', 'snarf'] +- DROP: message: ARENT_CARRYING - words: ['drop', 'relea', 'free', 'disca', 'dump'] + words: ['d', 'drop', 'relea', 'free', 'disca', 'dump'] - SAY: message: NO_MESSAGE words: ['say', 'chant', 'sing', 'utter', 'mumbl'] -- ACT_4: +- UNLOCK: message: NOT_LOCKABLE words: ['unloc', 'open'] -- ACT_5: +- NOTHING: message: NO_MESSAGE - words: ['nothi'] + words: ['z', 'nothi'] - LOCK: message: NOT_LOCKABLE words: ['lock', 'close'] -- ACT_7: +- LIGHT: message: DONT_UNDERSTAND words: ['light', 'on'] -- ACT_8: +- EXTINGUISH: message: DONT_UNDERSTAND words: ['extin', 'off'] -- ACT_9: +- WAVE: message: NOTHING_HAPPENS words: ['wave', 'shake', 'swing'] -- ACT_10: +- TAME: message: AM_GAME words: ['calm', 'placa', 'tame'] -- ACT_11: +- GO: message: WHERE_QUERY words: ['walk', 'run', 'trave', 'go', 'proce', 'conti', 'explo', 'follo', 'turn'] -- ACT_12: +- ATTACK: message: RIDICULOUS_ATTEMPT words: ['attac', 'kill', 'fight', 'hit', 'strik', 'slay'] -- ACT_13: +- POUR: message: ARENT_CARRYING words: ['pour'] -- ACT_14: +- EAT: message: RIDICULOUS_ATTEMPT words: ['eat', 'devou'] -- ACT_15: +- DRINK: message: STREAM_WATER words: ['drink'] -- ACT_16: +- RUB: message: RUB_NOGO words: ['rub'] - THROW: message: ARENT_CARRYING words: ['throw', 'toss'] -- ACT_18: +- QUIT: message: HUH_MAN words: ['quit'] - FIND: message: NEARBY words: ['find', 'where'] -- INVENT: +- INVENTORY: message: NEARBY - words: ['inven'] -- ACT_21: + words: ['i', 'inven'] +- FEED: message: NO_EDIBLES words: ['feed'] -- ACT_22: +- FILL: message: CANT_FILL words: ['fill'] -- ACT_23: +- BLAST: message: REQUIRES_DYNAMITE words: ['blast', 'deton', 'ignit', 'blowu'] -- ACT_24: +- SCORE: message: HUH_MAN words: ['score'] -- ACT_25: +- GIANTWORDS: message: NOT_KNOWHOW words: ['fee', 'fie', 'foe', 'foo', 'fum'] -- ACT_26: +- BRIEF: message: ON_WHAT words: ['brief'] -- ACT_27: +- READ: message: DONT_UNDERSTAND words: ['read', 'perus'] -- ACT_28: +- BREAK: message: BEYOND_POWER words: ['break', 'shatt', 'smash'] -- ACT_29: +- WAKE: message: RIDICULOUS_ATTEMPT words: ['wake', 'distu'] -- ACT_30: +- SAVE: message: HUH_MAN words: ['suspe', 'pause', 'save'] -- ACT_31: +- RESUME: message: HUH_MAN words: ['resum', 'resta'] -- ACT_32: +- FLY: message: AM_GAME words: ['fly'] -- ACT_33: +- LISTEN: message: DONT_UNDERSTAND words: ['liste'] -- ACT_34: +- PART: message: NOTHING_HAPPENS words: ['z''zzz'] - ACT_35: message: HUH_MAN words: !!null +specials: !!omap +- SPC_0: + message: !!null + words: !!null +- SPC_1: + message: !!null + words: ['fee'] +- SPC_2: + message: !!null + words: ['fie'] +- SPC_3: + message: !!null + words: ['foe'] +- SPC_4: + message: !!null + words: ['foo'] +- SPC_5: + message: !!null + words: ['fum'] +- SPC_13: + message: YOUR_WELCOME + words: ['thank'] +- SPC_50: + message: WORN_OUT + words: ['sesam', 'opens', 'abra', 'abrac', 'shaza', 'hocus', 'pocus'] +- SPC_51: + message: VOCAB_DESCRIPTION + words: ['help', '?'] +- SPC_54: + message: OK_MAN + words: ['no'] +- SPC_64: + message: FOREST_LOOK + words: ['tree', 'trees'] +- SPC_66: + message: DIGGING_FUTILE + words: ['dig', 'excav'] +- SPC_68: + message: IM_CONFUSED + words: ['lost'] +- SPC_69: + message: EXPLAIN_MIST + words: ['mist'] +- SPC_79: + message: WATCH_IT + words: ['fuck'] +- SPC_139: + message: STOP_UNKNOWN + words: ['stop'] +- SPC_142: + message: QUICK_START + words: ['info', 'infor'] +- SPC_147: + message: NOT_KNOWHOW + words: ['swim'] +- SPC_246: + message: WIZARDS_NODISTURB + words: ['wizar'] +- SPC_271: + message: GUESS_AGAIN + words: ['yes'] +- SPC_275: + message: ADVENTURE_NEWS + words: ['news'] + hints: - hint: &grate name: CAVE @@ -786,7 +863,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 +872,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 +894,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 +907,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 +920,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 +932,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 +970,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 +991,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 +1066,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 +1512,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 +1563,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 +1992,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 +2299,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 +2622,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]}, ] @@ -2712,12 +2789,12 @@ arbitrary_messages: !!omap - NO_LOCK: 'It has no lock.' - NOT_LOCKABLE: 'I don''t know how to lock or unlock such a thing.' - ALREADY_LOCKED: 'It was already locked.' -- GRATE_LOCKED: 'The grate is now locked.' -- GRATE_UNLOCKED: 'The grate is now unlocked.' +- ARB_35: !!null +- ARB_36: !!null - ALREADY_UNLOCKED: 'It was already unlocked.' - URN_EMPTY: 'The urn is empty and will not light.' -- LAMP_ON: 'Your lamp is now on.' -- LAMP_OFF: 'Your lamp is now off.' +- ARB_39: !!null +- ARB_40: !!null - BEAR_BLOCKS: 'There is no way to get past the bear to unlock the chain, which is\nprobably just as well.' - NOTHING_HAPPENS: 'Nothing happens.' - WHERE_QUERY: 'Where?' @@ -2957,8 +3034,6 @@ arbitrary_messages: !!omap - ADVENTURE_NEWS: 'Open Adventure is an author-approved open-source release of\nVersion 2.5 with, as yet, no gameplay changes.\nVersion 2.5 was essentially the same as Version II; the cave and the\nhazards therein are unchanged, and top score is still 430 points.\nThere are a few more hints, especially for some of the more obscure\npuzzles. There are a few minor bugfixes and cosmetic changes. You\ncan now save a game and resume it at once (formerly you had to wait a\nwhile first), but it now costs you a few points each time you save the\ngame. Saved games are now stored in much smaller files than before.' - GO_UNNEEDED: 'You don''t have to say "go" every time; just specify a direction or, if\nit''s nearby, name the place to which you wish to move.' - ARB_279: !!null -- MACHINE_SWINGOUT: 'As you strike the vending machine, it pivots backward along with a\nsection of wall, revealing a dark passage leading south.' -- MACHINE_SWINGBACK: 'The vending machine swings back to block the passage.' classes: - threshold: 0 @@ -3001,59 +3076,65 @@ turn_thresholds: objects: !!omap - OBJ_0: inventory: !!null - longs: !!null + descriptions: !!null - KEYS: words: ['keys', 'key'] inventory: 'Set of keys' locations: LOC_BUILDING - longs: + descriptions: - 'There are some keys on the ground here.' - LAMP: words: ['lamp', 'lante'] inventory: 'Brass lantern' locations: LOC_BUILDING - longs: + descriptions: - [LAMP_DARK, 'There is a shiny brass lamp nearby.'] - [LAMP_BRIGHT, 'There is a lamp shining nearby.'] + changes: + - 'Your lamp is now off.' + - 'Your lamp is now on.' - GRATE: words: ['grate'] inventory: '*grate' locations: [LOC_GRATE, LOC_BELOWGRATE] immovable: true - longs: + descriptions: - [GRATE_CLOSED, 'The grate is locked.'] - [GRATE_OPEN, 'The grate is open.'] + changes: + - 'The grate is now locked.' + - 'The grate is now unlocked.' - CAGE: words: ['cage'] inventory: 'Wicker cage' locations: LOC_COBBLE - longs: + descriptions: - 'There is a small wicker cage discarded nearby.' - ROD: words: ['rod'] inventory: 'Black rod' locations: LOC_DEBRIS - longs: + descriptions: - 'A three foot black rod with a rusty star on an end lies nearby.' - ROD2: words: ['rod'] inventory: 'Black rod' locations: LOC_NOWHERE - longs: + descriptions: - 'A three foot black rod with a rusty mark on an end lies nearby.' - STEPS: words: ['steps'] inventory: '*steps' locations: [LOC_PITTOP, LOC_MISTHALL] immovable: true - longs: + descriptions: - 'Rough stone steps lead down the pit.' - 'Rough stone steps lead up the dome.' - BIRD: words: ['bird'] inventory: 'Little bird in cage' locations: LOC_BIRD - longs: + descriptions: - [BIRD_UNCAGED, 'A cheerful little bird is sitting here singing.'] - [BIRD_CAGED, 'There is a little bird in the cage.'] - [BIRD_FOREST_UNCAGED, 'A cheerful little bird is sitting here singing.'] @@ -3069,23 +3150,23 @@ objects: !!omap inventory: '*rusty door' locations: LOC_IMMENSE immovable: true - longs: + descriptions: - 'The way north is barred by a massive, rusty, iron door.' - 'The way north leads through a massive, rusty, iron door.' - PILLOW: words: ['pillo', 'velve'] inventory: 'Velvet pillow' locations: LOC_SOFTROOM - longs: + descriptions: - 'A small velvet pillow lies on the floor.' - SNAKE: words: ['snake'] inventory: '*snake' locations: LOC_KINGHALL immovable: true - longs: - - 'A huge green fierce snake bars the way!' - - '' # chased away + descriptions: + - [SNAKE_BLOCKS, 'A huge green fierce snake bars the way!'] + - [SNAKE_CHASED, ''] # chased away sounds: - 'The snake is hissing venomously.' - FISSURE: @@ -3093,16 +3174,16 @@ objects: !!omap inventory: '*fissure' locations: [LOC_EASTBANK, LOC_WESTBANK] immovable: true - longs: - - '' - - 'A crystal bridge now spans the fissure.' - - 'The crystal bridge has vanished!' + descriptions: + - [UNBRIDGED, ''] + - [BRIDGED, 'A crystal bridge now spans the fissure.'] + - [VANISHED, 'The crystal bridge has vanished!'] - OBJ_13: words: ['table'] inventory: '*stone tablet' locations: LOC_DARKROOM immovable: true - longs: + descriptions: - 'A massive stone tablet imbedded in the wall reads:\n"Congratulations on bringing light into the dark-room!"' texts: - '"Congratulations on bringing light into the dark-room!"' @@ -3110,7 +3191,7 @@ objects: !!omap words: ['clam'] inventory: 'Giant clam >GRUNT!<' locations: LOC_SHELLROOM - longs: + descriptions: - 'There is an enormous clam here with its shell tightly closed.' sounds: - 'The clam is as tight-mouthed as a, er, clam.' @@ -3118,17 +3199,17 @@ objects: !!omap words: ['oyste'] inventory: 'Giant oyster >GROAN!<' locations: LOC_NOWHERE - longs: + descriptions: - 'There is an enormous oyster here with its shell tightly closed.' - 'Interesting. There seems to be something written on the underside of\nthe oyster.' sounds: - 'Even though it''s an oyster, the critter''s as tight-mouthed as a clam.' - 'It says the same thing it did before. Hm, maybe it''s a pun?' - MAGAZINE: - words: ['issue', 'spelu', '"spel'] + words: ['magaz', 'issue', 'spelu', '"spel'] inventory: '"Spelunker Today"' locations: LOC_ANTEROOM - longs: + descriptions: - 'There are a few recent issues of "Spelunker Today" magazine here.' texts: - 'I''m afraid the magazine is written in dwarvish. But pencilled on one\ncover you see, "Please leave the magazines at the construction site."' @@ -3137,23 +3218,23 @@ objects: !!omap inventory: !!null locations: LOC_NOWHERE immovable: true - longs: !!null + descriptions: !!null - KNIFE: words: ['knife', 'knive'] inventory: !!null locations: LOC_NOWHERE - longs: !!null + descriptions: !!null - FOOD: words: ['food', 'ratio'] inventory: 'Tasty food' locations: LOC_BUILDING - longs: + descriptions: - 'There is food here.' - BOTTLE: words: ['bottl', 'jar'] inventory: 'Small bottle' locations: LOC_BUILDING - longs: + descriptions: - [WATER_BOTTLE, 'There is a bottle of water here.'] - [EMPTY_BOTTLE, 'There is an empty bottle here.'] - [OIL_BOTTLE, 'There is a bottle of oil here.'] @@ -3161,24 +3242,24 @@ objects: !!omap words: ['water', 'h2o'] inventory: 'Water in the bottle' locations: LOC_NOWHERE - longs: !!null + descriptions: !!null - OIL: words: ['oil'] inventory: 'Oil in the bottle' locations: LOC_NOWHERE - longs: !!null + descriptions: !!null - MIRROR: words: ['mirro'] inventory: '*mirror' locations: LOC_MIRRORCANYON immovable: true - longs: !!null + descriptions: !!null - PLANT: words: ['plant', 'beans'] inventory: '*plant' locations: LOC_WESTPIT immovable: true - longs: + descriptions: - 'There is a tiny little plant in the pit, murmuring "water, water, ..."' - 'There is a 12-foot-tall beanstalk stretching up out of the pit,\nbellowing "WATER!! WATER!!"' - 'There is a gigantic beanstalk stretching all the way up to the hole.' @@ -3194,7 +3275,7 @@ objects: !!omap inventory: '*phony plant' # seen in Twopit Room only when tall enough locations: [LOC_WESTEND, LOC_EASTEND] immovable: true - longs: + descriptions: - '' - 'The top of a 12-foot-tall beanstalk is poking out of the west pit.' - 'There is a huge beanstalk growing out of the west pit up to the hole.' @@ -3203,20 +3284,20 @@ objects: !!omap inventory: '*stalactite' locations: LOC_TOPSTALACTITE immovable: true - longs: + descriptions: - '' - OBJ_27: words: ['shado', 'figur', 'windo'] inventory: '*shadowy figure and/or window' locations: [LOC_WINDOW1, LOC_WINDOW2] immovable: true - longs: + descriptions: - 'The shadowy figure seems to be trying to attract your attention.' - AXE: words: ['axe'] inventory: 'Dwarf''s axe' locations: LOC_NOWHERE - longs: + descriptions: - 'There is a little axe here.' - 'There is a little axe lying beside the bear.' - OBJ_29: @@ -3224,20 +3305,20 @@ objects: !!omap inventory: '*cave drawings' locations: LOC_ORIENTAL immovable: true - longs: !!null + descriptions: !!null - OBJ_30: words: ['pirat', 'genie', 'djinn'] inventory: '*pirate/genie' locations: LOC_NOWHERE immovable: true - longs: !!null # never present + descriptions: !!null # never present - DRAGON: words: ['drago'] inventory: '*dragon' locations: [LOC_SECRET4, LOC_SECRET6] immovable: true - longs: - - 'A huge green fierce dragon bars the way!' + descriptions: + - [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?)' @@ -3250,15 +3331,15 @@ objects: !!omap inventory: '*chasm' 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.' + descriptions: + - [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' locations: [LOC_SWCHASM, LOC_NECHASM] immovable: true - longs: + descriptions: - 'A burly troll stands by the bridge and insists you throw him a\ntreasure before you may cross.' - 'The troll steps out from beneath the bridge and blocks your way.' - '' # chased away @@ -3269,24 +3350,24 @@ objects: !!omap inventory: '*phony troll' locations: [LOC_NOWHERE, LOC_NOWHERE] immovable: true - longs: + descriptions: - 'The troll is nowhere to be seen.' - BEAR: words: ['bear'] inventory: !!null # bear uses rtext 141 locations: LOC_BARRENROOM immovable: true - longs: - - 'There is a ferocious cave bear eying you from the far end of the room!' - - 'There is a gentle cave bear sitting placidly in one corner.' - - 'There is a contented-looking bear wandering about nearby.' - - '' # dead + descriptions: + - [UNTAMED_BEAR, 'There is a ferocious cave bear eying you from the far end of the room!'] + - [SITTING_BEAR, 'There is a gentle cave bear sitting placidly in one corner.'] + - [CONTENTED_BEAR, 'There is a contented-looking bear wandering about nearby.'] + - [BEAR_DEAD, ''] - MESSAG: words: ['messa'] inventory: '*message in second maze' locations: LOC_NOWHERE immovable: true - longs: + descriptions: - 'There is a message scrawled in the dust in a flowery script, reading:\n"This is not the maze where the pirate leaves his treasure chest."' texts: - '"This is not the maze where the pirate leaves his treasure chest."' @@ -3295,15 +3376,18 @@ objects: !!omap inventory: '*volcano and/or geyser' locations: LOC_BREATHTAKING immovable: true - longs: !!null + descriptions: !!null - VEND: words: ['machi', 'vendi'] inventory: '*vending machine' locations: LOC_DEADEND13 immovable: true - longs: + descriptions: - [VEND_BLOCKS, 'There is a massive and somewhat battered vending machine here. The\ninstructions on it read: "Drop coins here to receive fresh batteries."'] - [VEND_UNBLOCKS, 'There is a massive vending machine here, swung back to reveal a\nsouthward passage.'] + changes: + - 'The vending machine swings back to block the passage.' + - 'As you strike the vending machine, it pivots backward along with a\nsection of wall, revealing a dark passage leading south.' texts: - '"Drop coins here to receive fresh batteries."' - '"Drop coins here to receive fresh batteries."' @@ -3311,7 +3395,7 @@ objects: !!omap words: ['batte'] inventory: 'Batteries' locations: LOC_NOWHERE - longs: + descriptions: - [FRESH_BATTERIES, 'There are fresh batteries here.'] - [DEAD_BATTERIES, 'Some worn-out batteries have been discarded nearby.'] - OBJ_40: @@ -3319,13 +3403,13 @@ objects: !!omap inventory: '*carpet and/or moss and/or curtains' locations: LOC_SOFTROOM immovable: true - longs: !!null + descriptions: !!null - OGRE: words: ['ogre'] inventory: '*ogre' locations: LOC_LARGE immovable: true - longs: + descriptions: - 'A formidable ogre bars the northern exit.' sounds: - 'The ogre is apparently the strong, silent type.' @@ -3334,7 +3418,7 @@ objects: !!omap inventory: '*urn' locations: LOC_CLIFF immovable: true - longs: + descriptions: - 'A small urn is embedded in the rock.' - 'A small urn full of oil is embedded in the rock.' - 'A small oil flame extrudes from an urn embedded in the rock.' @@ -3343,37 +3427,37 @@ objects: !!omap inventory: '*cavity' locations: LOC_NOWHERE immovable: true - longs: - - '' # something in it - - 'There is a small urn-shaped cavity in the rock.' + descriptions: + - [CAVITY_FULL, ''] # something in it + - [CAVITY_EMPTY, 'There is a small urn-shaped cavity in the rock.'] - BLOOD: words: ['blood'] inventory: '*blood' locations: LOC_NOWHERE immovable: true - longs: + descriptions: - '' # described with dragon - RESER: words: ['reser'] inventory: '*reservoir' locations: [LOC_RESERVOIR, LOC_RESNORTH] immovable: true - longs: + descriptions: - '' - - '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'] inventory: 'Leporine appendage' locations: LOC_FOREST22 - longs: + descriptions: - 'Your keen eye spots a severed leporine appendage lying on the ground.' - OBJ_47: words: ['mud'] inventory: '*mud' locations: LOC_DEBRIS immovable: true - longs: + descriptions: - '' texts: - '"MAGIC WORD XYZZY"' @@ -3382,7 +3466,7 @@ objects: !!omap inventory: '*note' locations: LOC_NUGGET immovable: true - longs: + descriptions: - '' texts: - '"You won''t get it up the steps"' @@ -3391,7 +3475,7 @@ objects: !!omap inventory: '*sign' locations: LOC_ANTEROOM immovable: true - longs: + descriptions: - [INGAME_SIGN, ''] - [ENDGAME_SIGN, ''] texts: @@ -3402,49 +3486,49 @@ objects: !!omap inventory: 'Large gold nugget' locations: LOC_NUGGET treasure: true - longs: + descriptions: - 'There is a large sparkling nugget of gold here!' - OBJ_51: words: ['diamo'] inventory: 'Several diamonds' locations: LOC_WESTBANK treasure: true - longs: + descriptions: - 'There are diamonds here!' - OBJ_52: words: ['silve', 'bars'] inventory: 'Bars of silver' locations: LOC_FLOORHOLE treasure: true - longs: + descriptions: - 'There are bars of silver here!' - OBJ_53: words: ['jewel'] inventory: 'Precious jewelry' locations: LOC_SOUTHSIDE treasure: true - longs: + descriptions: - 'There is precious jewelry here!' - COINS: words: ['coins'] inventory: 'Rare coins' locations: LOC_WESTSIDE treasure: true - longs: + descriptions: - 'There are many coins here!' - CHEST: words: ['chest', 'box', 'treas'] inventory: 'Treasure chest' locations: LOC_NOWHERE treasure: true - longs: + descriptions: - 'The pirate''s treasure chest is here!' - EGGS: words: ['eggs', 'egg', 'nest'] inventory: 'Golden eggs' locations: LOC_GIANTROOM treasure: true - longs: + descriptions: - 'There is a large nest here, full of golden eggs!' - 'The nest of golden eggs has vanished!' - 'Done!' @@ -3453,14 +3537,14 @@ objects: !!omap inventory: 'Jeweled trident' locations: LOC_WATERFALL treasure: true - longs: + descriptions: - 'There is a jewel-encrusted trident here!' - VASE: words: ['vase', 'ming', 'shard', 'potte'] inventory: 'Ming vase' locations: LOC_ORIENTAL treasure: true - longs: + descriptions: - [VASE_WHOLE, 'There is a delicate, precious, ming vase here!'] - [VASE_RESTING, 'The vase is now resting, delicately, on a velvet pillow.'] - [VASE_BROKEN, 'The floor is littered with worthless shards of pottery.'] @@ -3470,7 +3554,7 @@ objects: !!omap inventory: 'Egg-sized emerald' locations: LOC_PLOVER treasure: true - longs: + descriptions: - 'There is an emerald here the size of a plover''s egg!' - 'There is an emerald resting in a small cavity in the rock!' - PYRAMID: @@ -3478,14 +3562,14 @@ objects: !!omap inventory: 'Platinum pyramid' locations: LOC_DARKROOM treasure: true - longs: + descriptions: - 'There is a platinum pyramid here, 8 inches on a side!' - PEARL: words: ['pearl'] inventory: 'Glistening pearl' locations: LOC_NOWHERE treasure: true - longs: + descriptions: - 'Off to one side lies a glistening pearl!' - RUG: words: ['rug', 'persi'] @@ -3493,7 +3577,7 @@ objects: !!omap locations: [LOC_SECRET4, LOC_SECRET6] immovable: true treasure: true - longs: + descriptions: - 'There is a persian rug spread out on the floor!' - 'The dragon is sprawled out on a persian rug!!' - 'There is a persian rug here, hovering in mid-air!' @@ -3502,7 +3586,7 @@ objects: !!omap inventory: 'Rare spices' locations: LOC_BOULDERS2 treasure: true - longs: + descriptions: - 'There are rare spices here!' - CHAIN: words: ['chain'] @@ -3510,7 +3594,7 @@ objects: !!omap locations: LOC_BARRENROOM immovable: true treasure: true - longs: + descriptions: - 'There is a golden chain lying in a heap on the floor!' - 'The bear is locked to the wall with a golden chain!' - 'There is a golden chain locked to the wall!' @@ -3519,7 +3603,7 @@ objects: !!omap inventory: 'Giant ruby' locations: LOC_STOREROOM treasure: true - longs: + descriptions: - 'There is an enormous ruby here!' - 'There is a ruby resting in a small cavity in the rock!' - JADE: @@ -3527,14 +3611,14 @@ objects: !!omap inventory: 'Jade necklace' locations: LOC_NOWHERE treasure: true - longs: + descriptions: - 'A precious jade necklace has been dropped here!' - AMBER: words: ['amber', 'gemst'] inventory: 'Amber gemstone' locations: LOC_NOWHERE treasure: true - longs: + descriptions: - 'There is a rare amber gemstone here!' - 'There is an amber gemstone resting in a small cavity in the rock!' - SAPPH: @@ -3542,7 +3626,7 @@ objects: !!omap inventory: 'Star sapphire' locations: LOC_LEDGE treasure: true - longs: + descriptions: - 'A brilliant blue star sapphire is here!' - 'There is a star sapphire resting in a small cavity in the rock!' - OBJ_69: @@ -3550,7 +3634,7 @@ objects: !!omap inventory: 'Ebony statuette' locations: LOC_REACHDEAD treasure: true - longs: + descriptions: - 'There is a richly-carved ebony statuette here!' obituaries: