#
# objects: Objects have attributes as follows...
# inventory: A description for use in the inventory command.
+# states: A list of state labels for states from 0 up. Each
+# becomes a #define, and is also a state label that
+# can be used in travel-rule 'not' clauses.
# 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
+# Must correspond 1:1 with state labels if the latter exist.
+# changes: State-change messages to be emitted whenever the object
# *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
+# message in this array. Must correspond 1:1 with state
+# labels if the latter exist.
+# 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: An object may also be flagged
# immovable, meaning it cannot be carried.
-# locations: An object may have one or two start locations (the gate
+# 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).
#
# Message strings may include certain special character sequences to
# denote that the program must provide parameters to insert into a
# message when the message is printed. These sequences are:
-# %S = The letter 'S' or nothing (if a given value is exactly 1)
-# %W = A word (up to 10 characters)
-# %L = A word mapped to lower-case letters
-# %U = A word mapped to upper-case letters
-# %C = A word mapped to lower-case, first letter capitalised
-# %T = Several words of text, ending with a word of -1
-# %1 = A 1-digit number
-# %2 = A 2-digit number
-# ...
-# %9 = A 9-digit number
-# %B = Variable number of blanks
-# %! = The entire message should be suppressed
+# %d = an integer
+# %s = an ASCII string
+# %S = The letter 's' or nothing (if a previous %d value is exactly 1)
# %V = substitute program version string
motions: !!omap
words: ['east', 'e']
- WEST:
words: ['west', 'w']
-- MOT_45:
+- NORTH:
words: ['north', 'n']
-- MOT_46:
+- SOUTH:
words: ['south', 's']
- NE:
words: ['ne']
- FORWARD6:
words: ['main', 'offic']
-actions: !!omap
-- ACT_0:
- message: !!null
- words: !!null
-- CARRY:
- message: ALREADY_CARRYING
- words: ['g', 'carry', 'take', 'keep', 'catch',
- 'steal', 'captu', 'get', 'tote', 'snarf']
- oldstyle: false
-- DROP:
- message: ARENT_CARRYING
- words: ['drop', 'relea', 'free', 'disca', 'dump']
-- SAY:
- message: NO_MESSAGE
- words: ['say', 'chant', 'sing', 'utter', 'mumbl']
-- UNLOCK:
- message: NOT_LOCKABLE
- words: ['unloc', 'open']
-- NOTHING:
- message: NO_MESSAGE
- words: ['z', 'nothi']
- oldstyle: false
-- LOCK:
- message: NOT_LOCKABLE
- words: ['lock', 'close']
-- LIGHT:
- message: DONT_UNDERSTAND
- words: ['light', 'on']
-- EXTINGUISH:
- message: DONT_UNDERSTAND
- words: ['extin', 'off']
-- WAVE:
- message: NOTHING_HAPPENS
- words: ['wave', 'shake', 'swing']
-- TAME:
- message: AM_GAME
- words: ['calm', 'placa', 'tame']
-- GO:
- message: WHERE_QUERY
- words: ['walk', 'run', 'trave', 'go', 'proce',
- 'conti', 'explo', 'follo', 'turn']
-- ATTACK:
- message: RIDICULOUS_ATTEMPT
- words: ['attac', 'kill', 'fight', 'hit', 'strik', 'slay']
-- POUR:
- message: ARENT_CARRYING
- words: ['pour']
-- EAT:
- message: RIDICULOUS_ATTEMPT
- words: ['eat', 'devou']
-- DRINK:
- message: STREAM_WATER
- words: ['drink']
-- RUB:
- message: RUB_NOGO
- words: ['rub']
-- THROW:
- message: ARENT_CARRYING
- words: ['throw', 'toss']
-- QUIT:
- message: HUH_MAN
- words: ['quit']
-- FIND:
- message: NEARBY
- words: ['find', 'where']
-- INVENTORY:
- message: NEARBY
- words: ['i', 'inven']
- oldstyle: false
-- FEED:
- message: NO_EDIBLES
- words: ['feed']
-- FILL:
- message: CANT_FILL
- words: ['fill']
-- BLAST:
- message: REQUIRES_DYNAMITE
- words: ['blast', 'deton', 'ignit', 'blowu']
-- SCORE:
- message: HUH_MAN
- words: ['score']
-- GIANTWORDS:
- message: NOT_KNOWHOW
- words: ['fee', 'fie', 'foe', 'foo', 'fum']
-- BRIEF:
- message: ON_WHAT
- words: ['brief']
-- READ:
- message: DONT_UNDERSTAND
- words: ['read', 'perus']
-- BREAK:
- message: BEYOND_POWER
- words: ['break', 'shatt', 'smash']
-- WAKE:
- message: RIDICULOUS_ATTEMPT
- words: ['wake', 'distu']
-- SAVE:
- message: HUH_MAN
- words: ['suspe', 'pause', 'save']
-- RESUME:
- message: HUH_MAN
- words: ['resum', 'resta']
-- FLY:
- message: AM_GAME
- words: ['fly']
-- LISTEN:
- message: DONT_UNDERSTAND
- words: ['liste']
-- PART:
- message: NOTHING_HAPPENS
- words: ['z''zzz']
-- ACT_35:
- message: HUH_MAN
- words: !!null
-
hints:
- hint: &grate
name: CAVE
travel: [
{verbs: [ROAD, WEST, UPWAR], action: [goto, LOC_HILL]},
{verbs: [ENTER, BUILD, INWAR, EAST], action: [goto, LOC_BUILDING]},
- {verbs: [DOWNS, GULLY, STREA, SOUTH, D], action: [goto, LOC_VALLEY]},
+ {verbs: [DOWNS, GULLY, STREA, SOUTH, DOWN], action: [goto, LOC_VALLEY]},
{verbs: [FORES, NORTH], action: [goto, LOC_FOREST1]},
{verbs: [DEPRE], action: [goto, LOC_GRATE]},
]
{verbs: [UPSTR, BUILD, NORTH], action: [goto, LOC_START]},
{verbs: [EAST, FORES], action: [goto, LOC_FOREST6]},
{verbs: [WEST], action: [goto, LOC_FOREST12]},
- {verbs: [DOWNS, SOUTH, D], action: [goto, LOC_SLIT]},
+ {verbs: [DOWNS, SOUTH, DOWN], action: [goto, LOC_SLIT]},
{verbs: [DEPRE], action: [goto, LOC_GRATE]},
{verbs: [STREA], action: [speak, UPSTREAM_DOWNSTREAM]},
]
{verbs: [WEST], action: [goto, LOC_FOREST9]},
{verbs: [BUILD], action: [goto, LOC_START]},
{verbs: [UPSTR, GULLY, NORTH], action: [goto, LOC_SLIT]},
- {verbs: [ENTER, INWAR, D],
+ {verbs: [ENTER, INWAR, DOWN],
cond: [not, GRATE, GRATE_CLOSED],
action: [goto, LOC_BELOWGRATE]},
{verbs: [ENTER], action: [speak, GRATE_NOWAY]},
{verbs: [NORTH], action: [goto, LOC_ALIKE2]},
{verbs: [EAST], action: [goto, LOC_DEADEND1]},
{verbs: [SOUTH], action: [goto, LOC_DEADEND2]},
- {verbs: [UPWAR, D], action: [goto, LOC_ALIKE14]},
+ {verbs: [UPWAR, DOWN], action: [goto, LOC_ALIKE14]},
]
- LOC_DEADEND1:
description:
conditions: {DEEP: true, NOBACK: true}
hints: [*maze]
travel: [
- {verbs: [UPWAR, D], action: [goto, LOC_ALIKE4]},
+ {verbs: [UPWAR, DOWN], action: [goto, LOC_ALIKE4]},
]
- LOC_NARROW:
description:
conditions: {DEEP: true, NOBACK: true}
hints: [*witt]
travel: [
- {verbs: [EAST, NORTH, SOUTH, NE, SE, SW, NW, UPWAR, D],
+ {verbs: [EAST, NORTH, SOUTH, NE, SE, SW, NW, UPWAR, DOWN],
cond: [pct, 95], action: [speak, FUTILE_CRAWL]},
{verbs: [EAST], action: [goto, LOC_ANTEROOM]},
{verbs: [WEST], action: [speak, WAY_BLOCKED]},
travel: [
{verbs: [WEST], action: [goto, LOC_CORRIDOR]},
{verbs: [NE, LEFT], action: [goto, LOC_WARMWALLS]},
- {verbs: [SE, RIGHT, D], action: [goto, LOC_LIMESTONE]},
+ {verbs: [SE, RIGHT, DOWN], action: [goto, LOC_LIMESTONE]},
{verbs: [VIEW], action: [goto, LOC_BREATHTAKING]},
{verbs: [BARRE], action: [goto, LOC_BARRENFRONT]},
]
short: 'You''re at top of cliff.'
conditions: {DEEP: true}
travel: [
- {verbs: [CLIMB, D], action: [goto, LOC_CLIFFACE]},
+ {verbs: [CLIMB, DOWN], action: [goto, LOC_CLIFFACE]},
{verbs: [NE, CRAWL], action: [goto, LOC_REACHDEAD]},
]
- LOC_REACHDEAD:
I don't know in from out here. Use compass points or name something
in the general direction you want to go.
- CANT_APPLY: 'I don''t know how to apply that word here.'
-- AM_GAME: 'I''m game. Would you care to explain how?'
+- AM_GAME: &am_game 'I''m game. Would you care to explain how?'
- NO_MORE_DETAIL: |-
Sorry, but I am not allowed to give more detail. I will repeat the
long description of your location.
- W_IS_WEST: 'If you prefer, simply type w rather than west.'
- REALLY_QUIT: 'Do you really want to quit now?'
- PIT_FALL: 'You fell into a pit and broke every bone in your body!'
-- ALREADY_CARRYING: 'You are already carrying it!'
+- ALREADY_CARRYING: &already_carrying 'You are already carrying it!'
- YOU_JOKING: 'You can''t be serious!'
- BIRD_EVADES: |-
The bird seemed unafraid at first, but as you approach it becomes
disturbed and you cannot catch it.
- CANNOT_CARRY: 'You can catch the bird, but you cannot carry it.'
- NOTHING_LOCKED: 'There is nothing here with a lock!'
-- ARENT_CARRYING: 'You aren''t carrying it!'
+- ARENT_CARRYING: &arent_carrying 'You aren''t carrying it!'
- BIRD_ATTACKS: |-
The little bird attacks the green snake, and in an astounding flurry
drives the snake away.
- NO_KEYS: 'You have no keys!'
- NO_LOCK: 'It has no lock.'
-- NOT_LOCKABLE: 'I don''t know how to lock or unlock such a thing.'
+- NOT_LOCKABLE: ¬_lockable 'I don''t know how to lock or unlock such a thing.'
- ALREADY_LOCKED: 'It was already locked.'
- ALREADY_UNLOCKED: 'It was already unlocked.'
- BEAR_BLOCKS: |-
There is no way to get past the bear to unlock the chain, which is
probably just as well.
-- NOTHING_HAPPENS: 'Nothing happens.'
-- WHERE_QUERY: 'Where?'
+- NOTHING_HAPPENS: ¬hing_happens 'Nothing happens.'
+- WHERE_QUERY: &where_query 'Where?'
- NO_TARGET: 'There is nothing here to attack.'
- BIRD_DEAD: 'The little bird is now dead. Its body disappears.'
- SNAKE_WARNING: 'Attacking the snake both doesn''t work and is very dangerous.'
I don't know where the cave is, but hereabouts no stream can run on
the surface for long. I would try the stream.
- NEED_DETAIL: 'I need more detailed instructions to do that.'
-- NEARBY: |-
+- NEARBY: &nearby |-
I can only tell you what you see as you move about and manipulate
things. I cannot tell you where remote things are.
- OGRE_SNARL: 'The ogre snarls and shoves you back.'
-- HUH_MAN: 'Huh?'
+- HUH_MAN: &huh_man 'Huh?'
- WELCOME_YOU: 'Welcome to Adventure!! Would you like instructions?'
-- REQUIRES_DYNAMITE: 'Blasting requires dynamite.'
+- REQUIRES_DYNAMITE: &requires_dynamite 'Blasting requires dynamite.'
- FEET_WET: 'Your feet are now wet.'
- LOST_APPETITE: 'I think I just lost my appetite.'
- THANKS_DELICIOUS: 'Thank you, it was delicious!'
-- STREAM_WATER: |-
- You have taken a drink from the stream. The water tastes strongly of
- minerals, but is not unpleasant. It is extremely cold.
-- BOTTLE_EMPTY: 'The bottle of water is now empty.'
-- RUB_NOGO: |-
- Rubbing the electric lamp is not particularly rewarding. Anyway,
- nothing exciting happens.
- PECULIAR_NOTHING: 'Peculiar. Nothing unexpected happens.'
- GROUND_WET: 'Your bottle is empty and the ground is wet.'
- CANT_POUR: 'You can''t pour that.'
- NO_CONTAINER: 'You have nothing in which to carry it.'
- BOTTLE_FULL: 'Your bottle is already full.'
- NO_LIQUID: 'There is nothing here with which to fill the bottle.'
-- BOTTLED_WATER: 'Your bottle is now full of water.'
-- BOTTLED_OIL: 'Your bottle is now full of oil.'
-- CANT_FILL: 'You can''t fill that.'
-- RIDICULOUS_ATTEMPT: 'Don''t be ridiculous!'
+- RIDICULOUS_ATTEMPT: &ridiculous_attempt 'Don''t be ridiculous!'
- RUSTY_DOOR: 'The door is extremely rusty and refuses to open.'
- SHAKING_LEAVES: 'The plant indignantly shakes the oil off its leaves and asks, "Water?"'
- DEEP_ROOTS: 'The plant has exceptionally deep roots and cannot be pulled free.'
- WITHOUT_SUSPENDS: 'Now let''s see you do it without suspending in mid-Adventure.'
- FILL_INVALID: 'There is nothing here with which to fill it.'
- SHATTER_VASE: 'The sudden change in temperature has delicately shattered the vase.'
-- BEYOND_POWER: 'It is beyond your power to do that.'
+- BEYOND_POWER: &beyond_power 'It is beyond your power to do that.'
- NOT_KNOWHOW: ¬_knowhow 'I don''t know how.'
- TOO_FAR: 'It is too far up for you to reach.'
- DWARF_SMOKE: |-
black smoke.
- SHELL_IMPERVIOUS: 'The shell is very strong and is impervious to attack.'
- START_OVER: 'What''s the matter, can''t you read? Now you''d best start over.'
+- WELL_POINTLESS: 'Well, that was remarkably pointless.'
- DRAGON_SCALES: 'The axe bounces harmlessly off the dragon''s thick scales.'
- NASTY_DRAGON: 'The dragon looks rather nasty. You''d best not try to get by.'
- BIRD_BURNT: |-
The little bird attacks the green dragon, and in an astounding flurry
gets burnt to a cinder. The ashes blow away.
-- ON_WHAT: 'On what?'
- BRIEF_CONFIRM: |-
Okay, from now on I'll only describe a place in full the first time
you come to it. To get the full description, say "look".
- TROLL_SATISFIED: 'The troll catches your treasure and scurries away out of sight.'
- TROLL_BLOCKS: 'The troll refuses to let you cross.'
- BRIDGE_GONE: 'There is no longer any way across the chasm.'
-- BRIDGE_COLLAPSE: |-
- Just as you reach the other side, the bridge buckles beneath the
- weight of the bear, which was still following you around. You
- scrabble desperately for support, but as the bridge collapses you
- stumble back and fall into the chasm.
-- TROLL_SCAMPERS: |-
- The bear lumbers toward the troll, who lets out a startled shriek and
- scurries away. The bear soon gives up the pursuit and wanders back.
- BEAR_HANDS: 'With what? Your bare hands? Against *HIS* bear hands??'
- BEAR_CONFUSED: 'The bear is confused; he only wants to be your friend.'
- ALREADY_DEAD: 'For crying out loud, the poor thing is already dead!'
-- BEAR_TAMED: |-
- The bear eagerly wolfs down your food, after which he seems to calm
- down considerably and even becomes rather friendly.
- BEAR_CHAINED: 'The bear is still chained to the wall.'
- STILL_LOCKED: 'The chain is still locked.'
- CHAIN_UNLOCKED: 'The chain is now unlocked.'
- CHAIN_LOCKED: 'The chain is now locked.'
- NO_LOCKSITE: 'There is nothing here to which the chain can be locked.'
-- NO_EDIBLES: 'There is nothing here to eat.'
- WANT_HINT: 'Do you want the hint?'
- TROLL_VICES: 'Gluttony is not one of the troll''s vices. Avarice, however, is.'
- LAMP_DIM: |-
- WAYOUT_CLUE: |-
It says, "There is a way out of this place. Do you need any more
information to escape? Sorry, but this initial hint is all you get."
-- DONT_UNDERSTAND: 'I''m afraid I don''t understand.'
+- DONT_UNDERSTAND: &dont_understand 'I''m afraid I don''t understand.'
- HAND_PASSTHROUGH: 'Your hand passes through it as though it weren''t there.'
- BREAK_MIRROR: |-
You strike the mirror a resounding blow, whereupon it shatters into a
words: ['lamp', 'lante']
inventory: 'Brass lantern'
locations: LOC_BUILDING
+ states: [LAMP_DARK, LAMP_BRIGHT]
descriptions:
- - [LAMP_DARK, 'There is a shiny brass lamp nearby.']
- - [LAMP_BRIGHT, 'There is a lamp shining nearby.']
+ - 'There is a shiny brass lamp nearby.'
+ - 'There is a lamp shining nearby.'
changes:
- 'Your lamp is now off.'
- 'Your lamp is now on.'
inventory: '*grate'
locations: [LOC_GRATE, LOC_BELOWGRATE]
immovable: true
+ states: [GRATE_CLOSED, GRATE_OPEN]
descriptions:
- - [GRATE_CLOSED, 'The grate is locked.']
- - [GRATE_OPEN, 'The grate is open.']
+ - 'The grate is locked.'
+ - 'The grate is open.'
changes:
- 'The grate is now locked.'
- 'The grate is now unlocked.'
inventory: '*steps'
locations: [LOC_PITTOP, LOC_MISTHALL]
immovable: true
+ states: [STEPS_DOWN, STEPS_UP]
descriptions:
- 'Rough stone steps lead down the pit.'
- 'Rough stone steps lead up the dome.'
words: ['bird']
inventory: 'Little bird in cage'
locations: LOC_BIRD
+ states: [BIRD_UNCAGED, BIRD_CAGED, BIRD_FOREST_UNCAGED]
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.']
+ - 'A cheerful little bird is sitting here singing.'
+ - 'There is a little bird in the cage.'
+ - 'A cheerful little bird is sitting here singing.'
sounds:
- 'The bird''s singing is quite melodious.'
- 'The bird does not seem inclined to sing while in the cage.'
inventory: '*rusty door'
locations: LOC_IMMENSE
immovable: true
+ states: [DOOR_RUSTED, DOOR_UNRUSTED]
descriptions:
- - [DOOR_RUSTED, 'The way north is barred by a massive, rusty, iron door.']
- - [DOOR_UNRUSTED, 'The way north leads through a massive, rusty, iron door.']
+ - 'The way north is barred by a massive, rusty, iron door.'
+ - 'The way north leads through a massive, rusty, iron door.'
changes:
- 'The hinges are quite thoroughly rusted now and won''t budge.'
- |-
inventory: '*snake'
locations: LOC_KINGHALL
immovable: true
+ states: [SNAKE_BLOCKS, SNAKE_CHASED]
descriptions:
- - [SNAKE_BLOCKS, 'A huge green fierce snake bars the way!']
- - [SNAKE_CHASED, ''] # chased away
+ - 'A huge green fierce snake bars the way!'
+ - '' # chased away
sounds:
- 'The snake is hissing venomously.'
+ - ''
- FISSURE:
words: ['fissu']
inventory: '*fissure'
locations: [LOC_EASTBANK, LOC_WESTBANK]
immovable: true
+ states: [UNBRIDGED, BRIDGED]
descriptions:
- - [UNBRIDGED, '']
- - [BRIDGED, 'A crystal bridge now spans the fissure.']
- - [VANISHED, 'The crystal bridge has vanished!']
+ - ''
+ - 'A crystal bridge spans the fissure.'
+ changes:
+ - 'The crystal bridge has vanished!'
+ - 'A crystal bridge now spans the fissure.'
- OBJ_13:
words: ['table']
inventory: '*stone tablet'
words: ['bottl', 'jar']
inventory: 'Small bottle'
locations: LOC_BUILDING
- 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.']
+ states: [WATER_BOTTLE, EMPTY_BOTTLE, OIL_BOTTLE]
+ descriptions:
+ - 'There is a bottle of water here.'
+ - 'There is an empty bottle here.'
+ - 'There is a bottle of oil here.'
+ changes:
+ - 'Your bottle is now full of water.'
+ - 'The bottle of water is now empty.'
+ - 'Your bottle is now full of oil.'
- WATER:
words: ['water', 'h2o']
inventory: 'Water in the bottle'
inventory: '*plant'
locations: LOC_WESTPIT
immovable: true
+ states: [PLANT_THIRSTY, PLANT_BELLOWING, PLANT_GROWN]
descriptions:
- 'There is a tiny little plant in the pit, murmuring "water, water, ..."'
- - [PLANT_BELLOWING, 'There is a 12-foot-tall beanstalk stretching up out of the pit,\nbellowing "WATER!! WATER!!"']
- - [PLANT_GROWN, 'There is a gigantic beanstalk stretching all the way up to the hole.']
+ - '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.'
+ changes:
+ - 'You''ve over-watered the plant! It''s shriveling up! And now . . .'
- 'The plant spurts into furious growth for a few seconds.'
- 'The plant grows explosively, almost filling the bottom of the pit.'
- - 'You''ve over-watered the plant! It''s shriveling up! And now . . .'
sounds:
- 'The plant continues to ask plaintively for water.'
- 'The plant continues to demand water.'
words: ['axe']
inventory: 'Dwarf''s axe'
locations: LOC_NOWHERE
+ states: [AXE_HERE, AXE_LOST]
descriptions:
- - [AXE_HERE, 'There is a little axe here.']
- - [AXE_LOST, 'There is a little axe lying beside the bear.']
+ - 'There is a little axe here.'
+ - 'There is a little axe lying beside the bear.'
changes:
- ''
- 'The axe misses and lands near the bear where you can''t get at it.'
inventory: '*dragon'
locations: [LOC_SECRET4, LOC_SECRET6]
immovable: true
+ states: [DRAGON_BARS, DRAGON_DEAD, DRAGON_BLOODLESS]
descriptions:
- - [DRAGON_BARS, 'A huge green fierce dragon bars the way!']
- - [DRAGON_DEAD, 'The blood-specked body of a huge green dead dragon lies to one side.']
- - [DRAGON_BLOODLESS, 'The body of a huge green dead dragon is lying off to one side.']
+ - '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.'
changes:
- ''
- |-
inventory: '*chasm'
locations: [LOC_SWCHASM, LOC_NECHASM]
immovable: true
+ states: [TROLL_BRIDGE, BRIDGE_WRECKED]
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.']
+ - '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.'
+ changes:
+ - ''
+ - |-
+ Just as you reach the other side, the bridge buckles beneath the
+ weight of the bear, which was still following you around. You
+ scrabble desperately for support, but as the bridge collapses you
+ stumble back and fall into the chasm.
- TROLL:
words: ['troll']
inventory: '*troll'
locations: [LOC_SWCHASM, LOC_NECHASM]
immovable: true
- descriptions:
- - [TROLL_UNPAID, 'A burly troll stands by the bridge and insists you throw him a\ntreasure before you may cross.']
- - [TROLL_PAIDONCE, 'The troll steps out from beneath the bridge and blocks your way.']
- - [TROLL_GONE, ''] # chased away
+ states: [TROLL_UNPAID, TROLL_PAIDONCE, TROLL_GONE]
+ 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
+ changes:
+ - ''
+ - ''
+ - |-
+ The bear lumbers toward the troll, who lets out a startled shriek and
+ scurries away. The bear soon gives up the pursuit and wanders back.
sounds:
- 'The troll sounds quite adamant in his demand for a treasure.'
- 'The troll sounds quite adamant in his demand for a treasure.'
+ - ''
- TROLL2:
words: ['troll']
inventory: '*phony troll'
inventory: !!null # bear uses rtext 141
locations: LOC_BARRENROOM
immovable: true
+ states: [UNTAMED_BEAR, SITTING_BEAR, CONTENTED_BEAR, BEAR_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, '']
+ - '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.'
+ - ''
+ changes:
+ - ''
+ - 'The bear eagerly wolfs down your food, after which he seems to calm\ndown considerably and even becomes rather friendly.'
+ - ''
+ - ''
- MESSAG:
words: ['messa']
inventory: '*message in second maze'
inventory: '*vending machine'
locations: LOC_DEADEND13
immovable: true
+ states: [VEND_BLOCKS, VEND_UNBLOCKS]
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.']
+ - |-
+ There is a massive and somewhat battered vending machine here. The
+ instructions on it read: "Drop coins here to receive fresh batteries."
+ - |-
+ There is a massive vending machine here, swung back to reveal a
+ southward 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.'
words: ['batte']
inventory: 'Batteries'
locations: LOC_NOWHERE
+ states: [FRESH_BATTERIES, DEAD_BATTERIES]
descriptions:
- - [FRESH_BATTERIES, 'There are fresh batteries here.']
- - [DEAD_BATTERIES, 'Some worn-out batteries have been discarded nearby.']
+ - 'There are fresh batteries here.'
+ - 'Some worn-out batteries have been discarded nearby.'
- OBJ_40:
words: ['carpe', 'moss']
inventory: '*carpet and/or moss and/or curtains'
inventory: '*urn'
locations: LOC_CLIFF
immovable: true
+ states: [URN_EMPTY, URN_DARK, URN_LIT]
descriptions:
- - [URN_EMPTY, 'A small urn is embedded in the rock.']
- - [URN_DARK, 'A small urn full of oil is embedded in the rock.']
- - [URN_LIT, 'A small oil flame extrudes from an urn embedded in the rock.']
+ - '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.'
changes:
- 'The urn is empty and will not light.'
- 'The urn is now dark.'
inventory: '*cavity'
locations: LOC_NOWHERE
immovable: true
+ states: [CAVITY_FULL, CAVITY_EMPTY]
descriptions:
- - [CAVITY_FULL, ''] # something in it
- - [CAVITY_EMPTY, 'There is a small urn-shaped cavity in the rock.']
+ - '' # something in it
+ - 'There is a small urn-shaped cavity in the rock.'
- BLOOD:
words: ['blood']
inventory: '*blood'
inventory: '*reservoir'
locations: [LOC_RESERVOIR, LOC_RESNORTH]
immovable: true
+ states: [WATERS_UNPARTED, WATERS_PARTED]
descriptions:
- ''
- - [WATERS_PARTED, 'The waters have parted to form a narrow path across the reservoir.']
+ - 'The waters have parted to form a narrow path across the reservoir.'
+ changes:
- 'The waters crash together again.'
+ - 'The waters have parted to form a narrow path across the reservoir.'
- OBJ_46:
words: ['appen', 'lepor']
inventory: 'Leporine appendage'
inventory: '*sign'
locations: LOC_ANTEROOM
immovable: true
+ states: [INGAME_SIGN, ENDGAME_SIGN]
descriptions:
- - [INGAME_SIGN, '']
- - [ENDGAME_SIGN, '']
+ - ''
+ - ''
texts:
- |-
Cave under construction beyond this point.
inventory: 'Golden eggs'
locations: LOC_GIANTROOM
treasure: true
+ states: [EGGS_HERE, EGGS_VANISHED, EGGS_DONE]
descriptions:
- - [EGGS_HERE, 'There is a large nest here, full of golden eggs!']
- - [EGGS_VANISHED, 'The nest of golden eggs has vanished!']
- - [EGGS_DONE, 'Done!']
+ - 'There is a large nest here, full of golden eggs!'
+ - 'The nest of golden eggs has vanished!'
+ - 'Done!'
- TRIDENT:
words: ['tride']
inventory: 'Jeweled trident'
inventory: 'Ming vase'
locations: LOC_ORIENTAL
treasure: true
+ states: [VASE_WHOLE, VASE_DROPPED, VASE_BROKEN]
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.']
- - [VASE_DROPS, 'The ming vase drops with a delicate crash.']
+ - 'There is a delicate, precious, ming vase here!'
+ - 'The floor is littered with worthless shards of pottery.'
+ - 'The floor is littered with worthless shards of pottery.'
changes:
- - ''
- - ''
+ - 'The vase is now resting, delicately, on a velvet pillow.'
+ - 'The ming vase drops with a delicate crash.'
- 'You have taken the vase and hurled it delicately to the ground.'
- EMERALD:
words: ['emera']
locations: [LOC_SECRET4, LOC_SECRET6]
immovable: true
treasure: true
+ states: [RUG_FLOOR, RUG_DRAGON, RUG_HOVER]
descriptions:
- - [RUG_FLOOR, 'There is a persian rug spread out on the floor!']
- - [RUG_DRAGON, 'The dragon is sprawled out on a persian rug!!']
- - [RUG_HOVER, 'There is a persian rug here, hovering in mid-air!']
+ - '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!'
- OBJ_63:
words: ['spice']
inventory: 'Rare spices'
locations: LOC_BARRENROOM
immovable: true
treasure: true
+ states: [CHAIN_HEAP, CHAINING_BEAR, CHAIN_FIXED]
descriptions:
- - [CHAIN_HEAP, 'There is a golden chain lying in a heap on the floor!']
- - [CHAINING_BEAR, 'The bear is locked to the wall with a golden chain!']
- - [CHAIN_FIXED, 'There is a golden chain locked to the wall!']
+ - '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!'
- RUBY:
words: ['ruby']
inventory: 'Giant ruby'
inventory: 'Amber gemstone'
locations: LOC_NOWHERE
treasure: true
+ states: [AMBER_IN_URN, AMBER_IN_ROCK]
descriptions:
- - [AMBER_IN_URN, 'There is a rare amber gemstone here!']
- - [AMBER_IN_ROCK, 'There is an amber gemstone resting in a small cavity in the rock!']
+ - 'There is a rare amber gemstone here!'
+ - 'There is an amber gemstone resting in a small cavity in the rock!'
- SAPPH:
words: ['sapph']
inventory: 'Star sapphire'
me to do a decent reincarnation without any orange smoke, do you?
yes_response: 'Okay, if you''re so smart, do it yourself! I''m leaving!'
-specials: !!omap
-- SPC_0:
+actions: !!omap
+- ACT_0:
message: !!null
words: !!null
-- SPC_1:
- message: !!null
+- CARRY:
+ message: *already_carrying
+ words: ['g', 'carry', 'take', 'keep', 'catch',
+ 'steal', 'captu', 'get', 'tote', 'snarf']
+ oldstyle: false
+- DROP:
+ message: *arent_carrying
+ words: ['drop', 'relea', 'free', 'disca', 'dump']
+- SAY:
+ message: NO_MESSAGE
+ words: ['say', 'chant', 'sing', 'utter', 'mumbl']
+- UNLOCK:
+ message: *not_lockable
+ words: ['unloc', 'open']
+- NOTHING:
+ message: NO_MESSAGE
+ words: ['z', 'nothi']
+ oldstyle: false
+- LOCK:
+ message: *not_lockable
+ words: ['lock', 'close']
+- LIGHT:
+ message: *dont_understand
+ words: ['light', 'on']
+- EXTINGUISH:
+ message: *dont_understand
+ words: ['extin', 'off']
+- WAVE:
+ message: *nothing_happens
+ words: ['wave', 'shake', 'swing']
+- TAME:
+ message: *am_game
+ words: ['calm', 'placa', 'tame']
+- GO:
+ message: *where_query
+ words: ['walk', 'run', 'trave', 'go', 'proce',
+ 'conti', 'explo', 'follo', 'turn']
+- ATTACK:
+ message: *ridiculous_attempt
+ words: ['attac', 'kill', 'fight', 'hit', 'strik', 'slay']
+- POUR:
+ message: *arent_carrying
+ words: ['pour']
+- EAT:
+ message: *ridiculous_attempt
+ words: ['eat', 'devou']
+- DRINK:
+ message: |-
+ You have taken a drink from the stream. The water tastes strongly of
+ minerals, but is not unpleasant. It is extremely cold.
+ words: ['drink']
+- RUB:
+ message: |-
+ Rubbing the electric lamp is not particularly rewarding. Anyway,
+ nothing exciting happens.
+ words: ['rub']
+- THROW:
+ message: *arent_carrying
+ words: ['throw', 'toss']
+- QUIT:
+ message: *huh_man
+ words: ['quit']
+- FIND:
+ message: *nearby
+ words: ['find', 'where']
+- INVENTORY:
+ message: *nearby
+ words: ['i', 'inven']
+ oldstyle: false
+- FEED:
+ message: 'There is nothing here to eat.'
+ words: ['feed']
+- FILL:
+ message: 'You can''t fill that.'
+ words: ['fill']
+- BLAST:
+ message: *requires_dynamite
+ words: ['blast', 'deton', 'ignit', 'blowu']
+- SCORE:
+ message: *huh_man
+ words: ['score']
+- FEE:
+ message: *not_knowhow
words: ['fee']
-- SPC_2:
- message: !!null
+- FIE:
+ message: *not_knowhow
words: ['fie']
-- SPC_3:
- message: !!null
+- FOE:
+ message: *not_knowhow
words: ['foe']
-- SPC_4:
- message: !!null
+- FOO:
+ message: *not_knowhow
words: ['foo']
-- SPC_5:
- message: !!null
+- FUM:
+ message: *not_knowhow
words: ['fum']
+- BRIEF:
+ message: 'On what?'
+ words: ['brief']
+- READ:
+ message: *dont_understand
+ words: ['read', 'perus']
+- BREAK:
+ message: *beyond_power
+ words: ['break', 'shatt', 'smash']
+- WAKE:
+ message: *ridiculous_attempt
+ words: ['wake', 'distu']
+- SAVE:
+ message: *huh_man
+ words: ['suspe', 'pause', 'save']
+- RESUME:
+ message: *huh_man
+ words: ['resum', 'resta']
+- FLY:
+ message: *am_game
+ words: ['fly']
+- LISTEN:
+ message: *dont_understand
+ words: ['liste']
+- PART:
+ message: *nothing_happens
+ words: ['z''zzz']
+- ACT_35:
+ message: *huh_man
+ words: !!null
+
+specials: !!omap
+- SPC_0:
+ message: !!null
+ words: !!null
- SPC_13:
message: 'You''re quite welcome.'
words: ['thank']