# number of the hint. These values are stashed in the "hints"
# array.
#
-# locations: Each item contains a long and short description. Some
-# short descriptions are empty. Order of these locations is not significant.
-# Location conditions can be read as follows:
+# 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
-# The optional hints field is a list of YAML references to hints
-# that may be available at this location. (This is why locations
-# has to follow hints.) The "sound" attribute, if present, is s
-# label for a location sound. If there is a "loud" attribute and
-# it is 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.
#
# arbitrary_messages: These are arguments to rspeak(). Some spans of
# these messages need to be kept adjacent and ordered (for now).
#
# objects: Each item contains a description for use in the inventory command
# and one or more messages describing the object in different states.
-# If the inventory desription begins with "*" the object is dungeon
-# furniture that cannot be taken or 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.
#
# obituaries: Death messages and reincarnation queries. Order is
# significant, they're used in succession as the player racks up
- PIRATE_SPOTTED: 'There are faint rustling noises from the darkness behind you. As you\nturn toward them, the beam of your lamp falls across a bearded pirate.\nHe is carrying a large chest. "Shiver me timbers!" he cries, "I''ve\nbeen spotted! I''d best hie meself off to the maze to hide me chest!"\nWith that, he vanishes into the gloom.'
- GET_BATTERIES: 'Your lamp is getting dim. You''d best go back for those batteries.'
- REPLACE_BATTERIES: 'Your lamp is getting dim. I''m taking the liberty of replacing the\nbatteries.'
-- MISSING_BATTERYIES: 'Your lamp is getting dim, and you''re out of spare batteries. You''d\nbest start wrapping this up.'
+- MISSING_BATTERIES: 'Your lamp is getting dim, and you''re out of spare batteries. You''d\nbest start wrapping this up.'
- REMOVE_MESSAGE: 'You sift your fingers through the dust, but succeed only in\nobliterating the cryptic message.'
- OGRE_QUERY: 'Do you need help dealing with the ogre?'
- CLUE_QUERY: 'Hmmm, this looks like a clue, which means it''ll cost you 10 points to\nread it. Should I go ahead and read it anyway?'
- OBJ_2:
inventory: 'Brass lantern'
longs:
- - 'There is a shiny brass lamp nearby.'
- - 'There is a lamp shining nearby.'
+ - [LAMP_DARK, 'There is a shiny brass lamp nearby.']
+ - [LAMP_BRIGHT, 'There is a lamp shining nearby.']
- OBJ_3:
inventory: '*grate'
longs:
- - 'The grate is locked.'
- - 'The grate is open.'
+ - [GRATE_CLOSED, 'The grate is locked.']
+ - [GRATE_OPEN, 'The grate is open.']
- OBJ_4:
inventory: 'Wicker cage'
longs:
- OBJ_8:
inventory: 'Little bird in cage'
longs:
- - 'A cheerful little bird is sitting here singing.'
- - 'There is a little bird in the cage.'
- - 'A cheerful little bird is sitting here singing.'
+ - [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.']
- 'The bird''s singing is quite melodious.'
- 'The bird does not seem inclined to sing while in the cage.'
- 'It almost seems as though the bird is trying to tell you something.'
- OBJ_20:
inventory: 'Small bottle'
longs:
- - 'There is a bottle of water here.'
- - 'There is an empty bottle here.'
- - 'There is a bottle of oil here.'
+ - [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.']
- OBJ_21:
inventory: 'Water in the bottle'
longs: !!null
- OBJ_39:
inventory: 'Batteries'
longs:
- - 'There are fresh batteries here.'
- - 'Some worn-out batteries have been discarded nearby.'
+ - [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'
longs: !!null
- OBJ_58:
inventory: 'Ming vase'
longs:
- - 'There is a delicate, precious, ming vase here!'
- - 'The vase is now resting, delicately, on a velvet pillow.'
- - 'The floor is littered with worthless shards of pottery.'
- - 'The ming vase drops with a delicate crash.'
+ - [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.']
+ - [VASE_DROPS, 'The ming vase drops with a delicate crash.']
- OBJ_59:
inventory: 'Egg-sized emerald'
longs: