# Order doesn't matter; the logic simply tests every threshold on
# the assumption that turn counts never decrease nor skip values.
#
-# objects: Each item contains a description for use in the
-# inventory command and one or more messages describing the object
-# 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 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.
+# 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
# %B = Variable number of blanks
# %! = The entire message should be suppressed
-# There are duplicate keys in this vocabulary, that's why it can't be a normal
-# map. You have to iterate through it looking for a match qualified by type.
-# 1 is not allocated because it's used as a sentinel value in motion-verb
-# lists.
-vocabulary: [
- {word: "ROAD", type: motion, value: 2},
- {word: "HILL", type: motion, value: 2},
- {word: "ENTER", type: motion, value: 3},
- {word: "UPSTR", type: motion, value: 4},
- {word: "DOWNS", type: motion, value: 5},
- {word: "FORES", type: motion, value: 6},
- {word: "FORWA", type: motion, value: 7},
- {word: "CONTI", type: motion, value: 7},
- {word: "ONWAR", type: motion, value: 7},
- {word: "BACK", type: motion, value: 8},
- {word: "RETUR", type: motion, value: 8},
- {word: "RETRE", type: motion, value: 8},
- {word: "VALLE", type: motion, value: 9},
- {word: "STAIR", type: motion, value: 10},
- {word: "OUT", type: motion, value: 11},
- {word: "OUTSI", type: motion, value: 11},
- {word: "EXIT", type: motion, value: 11},
- {word: "LEAVE", type: motion, value: 11},
- {word: "BUILD", type: motion, value: 12},
- {word: "HOUSE", type: motion, value: 12},
- {word: "GULLY", type: motion, value: 13},
- {word: "STREA", type: motion, value: 14},
- {word: "FORK", type: motion, value: 15},
- {word: "BED", type: motion, value: 16},
- {word: "CRAWL", type: motion, value: 17},
- {word: "COBBL", type: motion, value: 18},
- {word: "INWAR", type: motion, value: 19},
- {word: "INSID", type: motion, value: 19},
- {word: "IN", type: motion, value: 19},
- {word: "SURFA", type: motion, value: 20},
- {word: "NULL", type: motion, value: 21},
- {word: "NOWHE", type: motion, value: 21},
- {word: "DARK", type: motion, value: 22},
- {word: "PASSA", type: motion, value: 23},
- {word: "TUNNE", type: motion, value: 23},
- {word: "LOW", type: motion, value: 24},
- {word: "CANYO", type: motion, value: 25},
- {word: "AWKWA", type: motion, value: 26},
- {word: "GIANT", type: motion, value: 27},
- {word: "VIEW", type: motion, value: 28},
- {word: "UPWAR", type: motion, value: 29},
- {word: "UP", type: motion, value: 29},
- {word: "U", type: motion, value: 29},
- {word: "ABOVE", type: motion, value: 29},
- {word: "ASCEN", type: motion, value: 29},
- {word: "D", type: motion, value: 30},
- {word: "DOWNW", type: motion, value: 30},
- {word: "DOWN", type: motion, value: 30},
- {word: "DESCE", type: motion, value: 30},
- {word: "PIT", type: motion, value: 31},
- {word: "OUTDO", type: motion, value: 32},
- {word: "CRACK", type: motion, value: 33},
- {word: "STEPS", type: motion, value: 34},
- {word: "DOME", type: motion, value: 35},
- {word: "LEFT", type: motion, value: 36},
- {word: "RIGHT", type: motion, value: 37},
- {word: "HALL", type: motion, value: 38},
- {word: "JUMP", type: motion, value: 39},
- {word: "BARRE", type: motion, value: 40},
- {word: "OVER", type: motion, value: 41},
- {word: "ACROS", type: motion, value: 42},
- {word: "EAST", type: motion, value: 43},
- {word: "E", type: motion, value: 43},
- {word: "WEST", type: motion, value: 44},
- {word: "W", type: motion, value: 44},
- {word: "NORTH", type: motion, value: 45},
- {word: "N", type: motion, value: 45},
- {word: "SOUTH", type: motion, value: 46},
- {word: "S", type: motion, value: 46},
- {word: "NE", type: motion, value: 47},
- {word: "SE", type: motion, value: 48},
- {word: "SW", type: motion, value: 49},
- {word: "NW", type: motion, value: 50},
- {word: "DEBRI", type: motion, value: 51},
- {word: "HOLE", type: motion, value: 52},
- {word: "WALL", type: motion, value: 53},
- {word: "BROKE", type: motion, value: 54},
- {word: "Y2", type: motion, value: 55},
- {word: "CLIMB", type: motion, value: 56},
- {word: "LOOK", type: motion, value: 57},
- {word: "EXAMI", type: motion, value: 57},
- {word: "TOUCH", type: motion, value: 57},
- {word: "DESCR", type: motion, value: 57},
- {word: "FLOOR", type: motion, value: 58},
- {word: "ROOM", type: motion, value: 59},
- {word: "SLIT", type: motion, value: 60},
- {word: "SLAB", type: motion, value: 61},
- {word: "SLABR", type: motion, value: 61},
- {word: "XYZZY", type: motion, value: 62},
- {word: "DEPRE", type: motion, value: 63},
- {word: "ENTRA", type: motion, value: 64},
- {word: "PLUGH", type: motion, value: 65},
- {word: "SECRE", type: motion, value: 66},
- {word: "CAVE", type: motion, value: 67},
- {word: "CROSS", type: motion, value: 69},
- {word: "BEDQU", type: motion, value: 70},
- {word: "PLOVE", type: motion, value: 71},
- {word: "ORIEN", type: motion, value: 72},
- {word: "CAVER", type: motion, value: 73},
- {word: "SHELL", type: motion, value: 74},
- {word: "RESER", type: motion, value: 75},
- {word: "MAIN", type: motion, value: 76},
- {word: "OFFIC", type: motion, value: 76},
- {word: "CARRY", type: action, value: 1},
- {word: "TAKE", type: action, value: 1},
- {word: "KEEP", type: action, value: 1},
- {word: "CATCH", type: action, value: 1},
- {word: "STEAL", type: action, value: 1},
- {word: "CAPTU", type: action, value: 1},
- {word: "GET", type: action, value: 1},
- {word: "TOTE", type: action, value: 1},
- {word: "SNARF", type: action, value: 1},
- {word: "DROP", type: action, value: 2},
- {word: "RELEA", type: action, value: 2},
- {word: "FREE", type: action, value: 2},
- {word: "DISCA", type: action, value: 2},
- {word: "DUMP", type: action, value: 2},
- {word: "SAY", type: action, value: 3},
- {word: "CHANT", type: action, value: 3},
- {word: "SING", type: action, value: 3},
- {word: "UTTER", type: action, value: 3},
- {word: "MUMBL", type: action, value: 3},
- {word: "UNLOC", type: action, value: 4},
- {word: "OPEN", type: action, value: 4},
- {word: "NOTHI", type: action, value: 5},
- {word: "LOCK", type: action, value: 6},
- {word: "CLOSE", type: action, value: 6},
- {word: "LIGHT", type: action, value: 7},
- {word: "ON", type: action, value: 7},
- {word: "EXTIN", type: action, value: 8},
- {word: "OFF", type: action, value: 8},
- {word: "WAVE", type: action, value: 9},
- {word: "SHAKE", type: action, value: 9},
- {word: "SWING", type: action, value: 9},
- {word: "CALM", type: action, value: 10},
- {word: "PLACA", type: action, value: 10},
- {word: "TAME", type: action, value: 10},
- {word: "WALK", type: action, value: 11},
- {word: "RUN", type: action, value: 11},
- {word: "TRAVE", type: action, value: 11},
- {word: "GO", type: action, value: 11},
- {word: "PROCE", type: action, value: 11},
- {word: "CONTI", type: action, value: 11},
- {word: "EXPLO", type: action, value: 11},
- {word: "FOLLO", type: action, value: 11},
- {word: "TURN", type: action, value: 11},
- {word: "ATTAC", type: action, value: 12},
- {word: "KILL", type: action, value: 12},
- {word: "FIGHT", type: action, value: 12},
- {word: "HIT", type: action, value: 12},
- {word: "STRIK", type: action, value: 12},
- {word: "SLAY", type: action, value: 12},
- {word: "POUR", type: action, value: 13},
- {word: "EAT", type: action, value: 14},
- {word: "DEVOU", type: action, value: 14},
- {word: "DRINK", type: action, value: 15},
- {word: "RUB", type: action, value: 16},
- {word: "THROW", type: action, value: 17},
- {word: "TOSS", type: action, value: 17},
- {word: "QUIT", type: action, value: 18},
- {word: "FIND", type: action, value: 19},
- {word: "WHERE", type: action, value: 19},
- {word: "INVEN", type: action, value: 20},
- {word: "FEED", type: action, value: 21},
- {word: "FILL", type: action, value: 22},
- {word: "BLAST", type: action, value: 23},
- {word: "DETON", type: action, value: 23},
- {word: "IGNIT", type: action, value: 23},
- {word: "BLOWU", type: action, value: 23},
- {word: "SCORE", type: action, value: 24},
- {word: "FEE", type: action, value: 25},
- {word: "FIE", type: action, value: 25},
- {word: "FOE", type: action, value: 25},
- {word: "FOO", type: action, value: 25},
- {word: "FUM", type: action, value: 25},
- {word: "BRIEF", type: action, value: 26},
- {word: "READ", type: action, value: 27},
- {word: "PERUS", type: action, value: 27},
- {word: "BREAK", type: action, value: 28},
- {word: "SHATT", type: action, value: 28},
- {word: "SMASH", type: action, value: 28},
- {word: "WAKE", type: action, value: 29},
- {word: "DISTU", type: action, value: 29},
- {word: "SUSPE", type: action, value: 30},
- {word: "PAUSE", type: action, value: 30},
- {word: "SAVE", type: action, value: 30},
- {word: "RESUM", type: action, value: 31},
- {word: "RESTA", type: action, value: 31},
- {word: "FLY", type: action, value: 32},
- {word: "LISTE", type: action, value: 33},
- {word: "Z'ZZZ", type: action, value: 34}, # Gets replaced
- {word: "FEE", type: special, value: 1},
- {word: "FIE", type: special, value: 2},
- {word: "FOE", type: special, value: 3},
- {word: "FOO", type: special, value: 4},
- {word: "FUM", type: special, value: 5},
- {word: "THANK", type: special, value: 13},
- {word: "SESAM", type: special, value: 50},
- {word: "OPENS", type: special, value: 50},
- {word: "ABRA", type: special, value: 50},
- {word: "ABRAC", type: special, value: 50},
- {word: "SHAZA", type: special, value: 50},
- {word: "HOCUS", type: special, value: 50},
- {word: "POCUS", type: special, value: 50},
- {word: "HELP", type: special, value: 51},
- {word: "?", type: special, value: 51},
- {word: "NO", type: special, value: 54},
- {word: "TREE", type: special, value: 64},
- {word: "TREES", type: special, value: 64},
- {word: "DIG", type: special, value: 66},
- {word: "EXCAV", type: special, value: 66},
- {word: "LOST", type: special, value: 68},
- {word: "MIST", type: special, value: 69},
- {word: "FUCK", type: special, value: 79},
- {word: "STOP", type: special, value: 139},
- {word: "INFO", type: special, value: 142},
- {word: "INFOR", type: special, value: 142},
- {word: "SWIM", type: special, value: 147},
- {word: "WIZAR", type: special, value: 246},
- {word: "YES", type: special, value: 271},
- {word: "NEWS", type: special, value: 275},
-]
-
motions: !!omap
- MOT_0:
words: !!null
- MOT_56:
words: ['climb']
- LOOK:
- words: ['look', 'exami', 'touch', 'descr']
+ words: ['l', 'x', 'look', 'exami', 'touch', 'descr']
- MOT_58:
words: ['floor']
- MOT_59:
words: !!null
- CARRY:
message: ALREADY_CARRYING
- words: ['carry', 'take', 'keep', 'catch', 'steal', 'captu', 'get', 'tote', 'snarf']
+ words: ['g', 'carry', 'take', 'keep', 'catch', 'steal', 'captu', 'get', 'tote', 'snarf']
- DROP:
message: ARENT_CARRYING
words: ['drop', 'relea', 'free', 'disca', 'dump']
words: ['unloc', 'open']
- NOTHING:
message: NO_MESSAGE
- words: ['nothi']
+ words: ['z', 'nothi']
- LOCK:
message: NOT_LOCKABLE
words: ['lock', 'close']
words: ['find', 'where']
- INVENTORY:
message: NEARBY
- words: ['inven']
+ words: ['i', 'inven']
- FEED:
message: NO_EDIBLES
words: ['feed']
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
- 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?'
- 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
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.']
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:
+ descriptions:
- [SNAKE_BLOCKS, 'A huge green fierce snake bars the way!']
- [SNAKE_CHASED, ''] # chased away
sounds:
inventory: '*fissure'
locations: [LOC_EASTBANK, LOC_WESTBANK]
immovable: true
- longs:
+ descriptions:
- [UNBRIDGED, '']
- [BRIDGED, 'A crystal bridge now spans the fissure.']
- [VANISHED, 'The crystal bridge has vanished!']
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!"'
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.'
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."'
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.']
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.'
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.'
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:
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:
+ 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.'
inventory: '*chasm'
locations: [LOC_SWCHASM, LOC_NECHASM]
immovable: true
- longs:
+ 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:
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
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."'
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."'
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:
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.'
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.'
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:
- ''
- [WATERS_PARTED, 'The waters have parted to form a narrow path across the reservoir.']
- 'The waters crash together again.'
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"'
inventory: '*note'
locations: LOC_NUGGET
immovable: true
- longs:
+ descriptions:
- ''
texts:
- '"You won''t get it up the steps"'
inventory: '*sign'
locations: LOC_ANTEROOM
immovable: true
- longs:
+ descriptions:
- [INGAME_SIGN, '']
- [ENDGAME_SIGN, '']
texts:
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!'
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.']
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:
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']
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!'
inventory: 'Rare spices'
locations: LOC_BOULDERS2
treasure: true
- longs:
+ descriptions:
- 'There are rare spices here!'
- CHAIN:
words: ['chain']
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!'
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:
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:
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:
inventory: 'Ebony statuette'
locations: LOC_REACHDEAD
treasure: true
- longs:
+ descriptions:
- 'There is a richly-carved ebony statuette here!'
obituaries: