wishbringer-gold/cemetery.zil
2019-04-18 21:34:52 -04:00

832 lines
21 KiB
Plaintext

"CEMETERY for WISHBRINGER: (C)1985 Infocom, Inc. All rights reserved."
<OBJECT CREEPY-CORNER
(IN ROOMS)
(DESC "Creepy Corner")
(FLAGS ONBIT RLANDBIT)
(GLOBAL MONUMENTS TREE VAPORS SOUTH-GATE CORNER CEMETERY)
(NORTH PER ENTER-SPOOKY-COPSE)
(EAST PER EXIT-TO-OUTSIDE)
(SOUTH PER TOMBS-BLOCK)
(WEST PER TOMBS-BLOCK)
(OUT PER EXIT-TO-OUTSIDE)
(PSEUDO "LANE" HERE-F)
(ACTION CREEPY-CORNER-F)>
<ROUTINE TOMBS-BLOCK ()
<THIS-IS-IT ,MONUMENTS>
<SAY-THE ,MONUMENTS>
<TELL "s block your path." CR>
<RFALSE>>
<ROUTINE CREEPY-CORNER-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're in a creepy " D ,CORNER " of the">
<WHICH-TOWN "Cemetery">
<TELL ", surrounded by silent " D ,MONUMENTS "s. A">
<COND (<FSET? ,SOUTH-GATE ,OPENBIT>
<TELL "n iron gate opens">)
(T
<TELL " closed iron gate stands">)>
<TELL
" " <TO-E> ", and a narrow lane wanders north." CR>)>>
<ROUTINE EXIT-TO-OUTSIDE ()
<COND (<FSET? ,SOUTH-GATE ,OPENBIT>
<COND (,SKEWED?
<SLAM-THE-GATE>
<RFALSE>)
(T
<SURE-IS-SPOOKY>
<RETURN ,OUTSIDE-CEMETERY>)>)
(T
<ITS-CLOSED ,SOUTH-GATE>
<RFALSE>)>>
<ROUTINE SURE-IS-SPOOKY ()
<TELL "Whew! That " D ,CEMETERY " sure is spooky." CR CR>>
<OBJECT SPOOKY-COPSE
(IN ROOMS)
(DESC "Spooky Copse")
(FLAGS ONBIT RLANDBIT)
(GLOBAL MONUMENTS VAPORS CEMETERY)
(NORTH PER TOMBS-BLOCK)
(EAST PER TOMBS-BLOCK)
(SOUTH PER COPSE-TO-CORNER)
(WEST PER COPSE-TO-GLEN)
(DOWN PER ENTER-GRAVE)
(IN PER ENTER-GRAVE)
(PSEUDO "LANE" HERE-F)
(ACTION SPOOKY-COPSE-F)>
<ROUTINE SPOOKY-COPSE-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A copse of " D ,WILLOWS "s makes this part of the " D ,CEMETERY " look really spooky. Narrow lanes wander south and west.|
|
There's an " D ,OPEN-GRAVE " nearby, freshly dug, with a " D ,MONUMENTS " erected next to it.">
<COND (<IN? ,GRAVEDIGGER ,SPOOKY-COPSE>
<TELL CR CR
"An old " D ,GRAVEDIGGER " is resting under a " D ,WILLOWS ".">)>
<CRLF>)>>
<OBJECT TWILIGHT-GLEN
(IN ROOMS)
(DESC "Twilight Glen")
(FLAGS ONBIT RLANDBIT)
(GLOBAL MONUMENTS TREE VAPORS NORTH-GATE CEMETERY)
(NORTH PER EXIT-TO-LAKE)
(EAST PER RETURN-TO-COPSE)
(SOUTH PER TOMBS-BLOCK)
(WEST PER TOMBS-BLOCK)
(OUT PER EXIT-TO-LAKE)
(PSEUDO "LANE" HERE-F)
(ACTION TWILIGHT-GLEN-F)>
<ROUTINE EXIT-TO-LAKE ()
<COND (<FSET? ,NORTH-GATE ,OPENBIT>
<COND (,SKEWED?
<ESCAPE-VAPORS>)
(T
<SURE-IS-SPOOKY>)>
<RETURN ,EDGE-OF-LAKE>)
(T
<ITS-CLOSED ,NORTH-GATE>
<RFALSE>)>>
<ROUTINE RETURN-TO-COPSE ()
<COND (<IN? ,GRAVEDIGGER ,EDGE-OF-LAKE>
<REMOVE ,GRAVEDIGGER>)>
<RETURN ,SPOOKY-COPSE>>
<ROUTINE TWILIGHT-GLEN-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The trees here are so thick, it's almost too dark to see! You can make out a">
<OPEN-CLOSED ,NORTH-GATE T>
<TELL D ,NORTH-GATE " " <TO-N> ", and a narrow lane between the " D ,MONUMENTS "s winds off " <TO-E> "." CR>)>>
<OBJECT NORTH-GATE
(IN LOCAL-GLOBALS)
(DESC "iron gate")
(SYNONYM GATE GATES LOCK BARS)
(ADJECTIVE IRON TALL)
(FLAGS NDESCBIT VOWELBIT DOORBIT LOCKEDBIT OPENBIT RMUNGBIT)
(ACTION NORTH-GATE-F)>
; "RMUNGBIT = skewed gate not opened"
<ROUTINE NORTH-GATE-F ()
<THIS-IS-IT ,NORTH-GATE>
<COND (<VERB? ENTER THROUGH WALK-TO USE>
<COND (<EQUAL? ,HERE ,TWILIGHT-GLEN>
<DO-WALK ,P?NORTH>)
(T
<DO-WALK ,P?SOUTH>)>
<RTRUE>)
(<GENERIC-GATE? ,NORTH-GATE>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT INSIDE-GRAVE
(IN ROOMS)
(DESC "Open Grave")
(FLAGS ONBIT RLANDBIT)
(GLOBAL HOLE VAPORS)
(NORTH PER ENTER-HOLE?)
(EAST PER WALL-OF-DIRT)
(SOUTH PER WALL-OF-DIRT)
(WEST PER WALL-OF-DIRT)
(UP PER GRAVE-TO-COPSE)
(IN PER ENTER-HOLE?)
(OUT PER GRAVE-TO-COPSE)
(DOWN PER ENTER-HOLE?)
(ACTION INSIDE-GRAVE-F)
(PSEUDO "DIRT" WALLS-F)>
<ROUTINE WALL-OF-DIRT ()
<TELL "You just walked into a wall of dirt." CR>
<RFALSE>>
<ROUTINE ENTER-HOLE? ()
<COND (<NOT ,SKEWED?>
<CANT-GO>
<RFALSE>)
(<CANT-FIT-INTO? "hole">
<RFALSE>)
(T
<MOVE-ALL ,INSIDE-GRAVE ,OPEN-GRAVE>
<MOVE ,GRAVE ,INSIDE-GRAVE>
<RETURN ,TUNNEL-FORK>)>>
<ROUTINE ENTER-GRAVE ()
<COND (<CANT-FIT-INTO? "grave">
<RFALSE>)
(,SKEWED?
<ESCAPE-VAPORS>)
(<IN? ,GRAVEDIGGER ,SPOOKY-COPSE>
<SAY-THE ,GRAVEDIGGER>
<TELL
" reaches into the " D ,OPEN-GRAVE " and pulls you out. \"Don't go in there!\" he cries. \"You might get buried alive!\"" CR>
<RFALSE>)>
<MOVE-ALL ,OPEN-GRAVE ,INSIDE-GRAVE>
<RETURN ,INSIDE-GRAVE>>
<ROUTINE ESCAPE-VAPORS ()
<DISABLE <INT I-VAPORS>>
<FCLEAR ,VAPORS ,RMUNGBIT>
<COND (<AND <EQUAL? ,DIGGER-SCRIPT 1 0>
<NOT <EQUAL? ,HERE ,SPOOKY-COPSE>>>
<SURE-IS-SPOOKY>)
(T
<SAY-THE ,VAPORS>
<TELL "s " <PICK-ONE ,VAPOR-YELLS>
" as you escape their misty clutches." CR CR>)>>
<GLOBAL VAPOR-YELLS
<LTABLE 0
"moan with disappointment"
"howl with anguish"
"wail with dismay">>
<ROUTINE GRAVE-TO-COPSE ()
<COND (<IN? ,BRANCH ,PROTAGONIST>
<NEVER-GET-OUT-WITH "that branch">
<RFALSE>)
(<AND <IN? ,UMBRELLA ,PROTAGONIST>
<FSET? ,UMBRELLA ,OPENBIT>>
<NEVER-GET-OUT-WITH "that open umbrella">
<RFALSE>)
(<G? <WEIGHT ,PROTAGONIST> 18>
<NEVER-GET-OUT-WITH "all those things">
<RFALSE>)
(T
<TELL
"With great difficulty, you manage to climb out of the "
D ,OPEN-GRAVE "." CR CR>
<COND (,SKEWED?
<SETG DIGGER-SCRIPT 0>
<ENABLE <QUEUE I-VAPORS -1>>)>
<MOVE-ALL ,INSIDE-GRAVE ,OPEN-GRAVE>
<MOVE ,GRAVE ,INSIDE-GRAVE>
<RETURN ,SPOOKY-COPSE>)>>
<ROUTINE NEVER-GET-OUT-WITH (STR)
<TELL
"You'll never climb out of the " D ,OPEN-GRAVE " holding " .STR "!" CR>>
<ROUTINE ARE-YOU-SURE? ()
<COND (<EQUAL? ,HERE ,OUTSIDE-CEMETERY>
<COND (<FSET? ,SOUTH-GATE ,OPENBIT>
<COND (<BE-SURE>
<COND (,SKEWED?
<SLAM-THE-GATE>
<RFALSE>)
(T
<RETURN ,CREEPY-CORNER>)>)
(T
<RFALSE>)>)
(T
<ITS-CLOSED ,SOUTH-GATE>
<RFALSE>)>)
(<EQUAL? ,HERE ,EDGE-OF-LAKE>
<COND (<FSET? ,NORTH-GATE ,OPENBIT>
<COND (<BE-SURE>
<RETURN ,TWILIGHT-GLEN>)
(T
<RFALSE>)>)
(T
<ITS-CLOSED ,NORTH-GATE>
<RFALSE>)>)>>
<ROUTINE BE-SURE ()
<SAY-THE ,CEMETERY>
<TELL " is a " <PICK-ONE ,FRIGHTS> " place">
<COND (,SKEWED?
<TELL ", especially at night">)>
<TELL ". ">
<SAY-SURE>
<TELL "go in there?">
<COND (<YES?>
<COND (,SKEWED?
<SETG DIGGER-SCRIPT 0>
<ENABLE <QUEUE I-VAPORS -1>>)>
<TELL CR "You have been warned." CR CR>
<RTRUE>)
(T
<THAT-WAS-CLOSE>
<RFALSE>)>>
<GLOBAL FRIGHTS
<LTABLE 0 "spooky" "fearful" "creepy">>
<ROUTINE SLAM-THE-GATE ()
<FCLEAR ,SOUTH-GATE ,OPENBIT>
<FSET ,SOUTH-GATE ,LOCKEDBIT>
<TELL "Clang! ">
<SUDDEN-GUST>
<TELL "blows the " D ,SOUTH-GATE " shut in your face."
CR CR ,YOU-HEAR "misty voices giggling ">
<COND (<EQUAL? ,HERE ,OUTSIDE-CEMETERY>
<TELL "on the other side">)
(T
<TELL "all around you">)>
<TELL ", and a loud \"click\" as the gate locks." CR>>
<OBJECT CEMETERY
(IN LOCAL-GLOBALS)
(DESC "cemetery")
(SYNONYM CEMETERY GRAVEYARD)
(ADJECTIVE FESTERON)
(FLAGS NDESCBIT)
(ACTION CEMETERY-F)>
<ROUTINE CEMETERY-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE FIND>
<COND (<IN-CEMETERY?>
<RTRUE>)
(<EQUAL? ,HERE ,OUTSIDE-CEMETERY>
<SEE-IT "west">)
(<EQUAL? ,HERE ,EDGE-OF-LAKE>
<SEE-IT "south">)
(T
<REFER-TO-MAP>)>
<RTRUE>)
(<VERB? WALK-TO THROUGH ENTER>
<COND (<IN-CEMETERY?>
<RTRUE>)
(<EQUAL? ,HERE ,OUTSIDE-CEMETERY>
<DO-WALK ,P?WEST>)
(<EQUAL? ,HERE ,EDGE-OF-LAKE>
<DO-WALK ,P?SOUTH>)
(T
<REFER-TO-MAP>)>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE IN-CEMETERY? ()
<COND (<EQUAL? ,HERE ,CREEPY-CORNER ,SPOOKY-COPSE ,TWILIGHT-GLEN>
<TELL "It's all around you!" CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE SEE-IT (STR)
<TELL ,YOU-SEE "it to the " .STR "." CR>>
<OBJECT MONUMENTS
(IN LOCAL-GLOBALS)
(DESC "tombstone")
(SYNONYM STONES STONE TOMBSTONES MONUMENTS)
(ADJECTIVE TOMB TOMBS)
(FLAGS READBIT)
(ACTION MONUMENTS-F)>
<ROUTINE MONUMENTS-F ()
<COND (<VERB? READ EXAMINE>
<COND (<EQUAL? ,HERE ,SPOOKY-COPSE>
<SAY-THE ,MONUMENTS>
<TELL " next to the " D ,OPEN-GRAVE>
<COND (,SKEWED?
<HAS-YOUR-NAME>)
(T
<TELL " is blank." CR>)>)
(T
<TELL "The lettering">
<TOO-FADED>)>
<RTRUE>)
(<MOVING? ,MONUMENTS>
<TOO-LARGE ,MONUMENTS>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE TOO-FADED ()
<TELL " is too faded to read clearly." CR>>
<OBJECT OPEN-GRAVE
(IN SPOOKY-COPSE)
(DESC "open grave")
(SYNONYM GRAVE HOLE)
(ADJECTIVE OPEN)
(FLAGS NDESCBIT VOWELBIT CONTBIT OPENBIT TRANSBIT)
(CAPACITY 50)
(CONTFCN IN-OPEN-GRAVE)
(ACTION OPEN-GRAVE-F)>
<ROUTINE IN-OPEN-GRAVE (CONTEXT)
<COND (<AND <EQUAL? .CONTEXT ,M-CONT>
<TOUCHING? ,PRSO>>
<TELL ,CANT " reach ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO " from here. The " D ,OPEN-GRAVE
" is too deep." CR>
<RFATAL>)
(T
<RFALSE>)>>
<ROUTINE OPEN-GRAVE-F ()
<COND (<VERB? WALK-TO ENTER THROUGH CLIMB-DOWN CLIMB-ON>
<DO-WALK ,P?DOWN>
<RTRUE>)
(<VERB? EXIT CLIMB-UP>
<ALREADY-IN ,OPEN-GRAVE T>
<RTRUE>)
(<VERB? EXAMINE SEARCH LOOK-DOWN LOOK-INSIDE>
<TELL "It's six feet deep and freshly dug.">
<COND (<FIRST? ,OPEN-GRAVE>
<TELL " " ,YOU-SEE>
<PRINT-CONTENTS ,OPEN-GRAVE>
<TELL " inside.">)>
<CRLF>
<RTRUE>)
(<AND <VERB? PUT THROW>
<EQUAL? ,PRSI ,OPEN-GRAVE>>
<COND (<EQUAL? ,PRSO ,HANDS>
<NOTHING-EXCITING>
<RTRUE>)
; (<G? <GETP ,PRSO ,P?SIZE> 10>
<TOO-LARGE ,PRSO>
<RTRUE>)
(<AND <EQUAL? ,PRSO ,UMBRELLA>
<FSET? ,UMBRELLA ,OPENBIT>>
<YOUD-HAVE-TO "close" ,UMBRELLA>
<RTRUE>)
(T
<RFALSE>)>)
(<GENERIC-GRAVE?>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE GENERIC-GRAVE? ()
<COND (<VERB? DIG>
<TELL "It's deep enough already." CR>
<RTRUE>)
(<VERB? CLOSE>
<HOW?>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT GRAVE
(IN INSIDE-GRAVE)
(DESC "open grave")
(SYNONYM GRAVE HOLE)
(ADJECTIVE OPEN)
(FLAGS NDESCBIT VOWELBIT CONTBIT OPENBIT TRANSBIT)
(CAPACITY 50)
(ACTION GRAVE-F)>
<ROUTINE GRAVE-F ()
<COND (<VERB? ENTER WALK-TO THROUGH CLIMB-DOWN>
<COND (,SKEWED?
<DO-WALK ,P?NORTH>)
(T
<ALREADY-AT ,GRAVE>)>
<RTRUE>)
(<VERB? EXIT CLIMB-UP CLIMB-ON>
<DO-WALK ,P?OUT>
<RTRUE>)
(<VERB? LOOK-DOWN EXAMINE SEARCH LOOK-INSIDE>
<V-LOOK>
<RTRUE>)
(<AND <VERB? TAKE>
<EQUAL? ,PRSI ,GRAVE>>
<PERFORM ,V?TAKE ,PRSO>
<RTRUE>)
(<AND <VERB? PUT THROW>
<EQUAL? ,PRSI ,GRAVE>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<GENERIC-GRAVE?>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE ENTER-SPOOKY-COPSE ()
<COND (<AND <NOT ,SKEWED?>
<ZERO? ,DIGGER-SCRIPT>>
<ENABLE <QUEUE I-DIGGER-TALK -1>>)>
<RETURN ,SPOOKY-COPSE>>
<ROUTINE COPSE-TO-GLEN ()
<COND (<IN? ,GRAVEDIGGER ,TWILIGHT-GLEN>
<ENABLE <QUEUE I-BYE-DIGGER -1>>)
(<IN? ,GRAVEDIGGER ,SPOOKY-COPSE>
<DISABLE <INT I-DIGGER-TALK>>
<ENABLE <QUEUE I-DIGGER-FOLLOWS -1>>)>
<RETURN ,TWILIGHT-GLEN>>
<ROUTINE I-BYE-DIGGER ()
<DISABLE <INT I-BYE-DIGGER>>
<CRLF>
<SAY-THE ,GRAVEDIGGER>
<TELL " is locking the " D ,NORTH-GATE
" from the outside as you approach.">
<OUT-OF-TROUBLE>>
<ROUTINE OUT-OF-TROUBLE ()
<THIS-IS-IT ,GRAVEDIGGER>
<THIS-IS-IT ,NORTH-GATE>
<MOVE ,GRAVEDIGGER ,EDGE-OF-LAKE>
<FCLEAR ,NORTH-GATE ,OPENBIT>
<FSET ,NORTH-GATE ,LOCKEDBIT>
<TELL " \"Keep out of the " D ,CEMETERY
" after Dark,\" he tells you with a sly wink."
CR CR ,YOU-HEAR "him chuckling as he disappears "
<TO-N> "." CR>>
<ROUTINE I-DIGGER-FOLLOWS ()
<DISABLE <INT I-DIGGER-FOLLOWS>>
<CRLF>
<SAY-THE ,GRAVEDIGGER>
<TELL " follows behind you. ">
<COND (<OR <IN? ,ENVELOPE ,GRAVEDIGGER>
<IN? ,ENVELOPE ,SPOOKY-COPSE>>
<MOVE ,ENVELOPE ,PROTAGONIST>
<FORGOT>
<TELL " he says, handing it back to you.">
<YOU-ARE-HOLDING ,ENVELOPE T>)
(T
<TELL
"\"What's your hurry?\" he complains.">)>
<TELL CR CR
"Throwing a shovel over his shoulder, the " D ,GRAVEDIGGER
" ambles through the " D ,NORTH-GATE " and locks it.">
<OUT-OF-TROUBLE>>
<ROUTINE FORGOT ()
<TELL "\"Hey! You forgot your envelope!\"">>
<ROUTINE COPSE-TO-CORNER ()
<COND (<AND <IN? ,GRAVEDIGGER ,SPOOKY-COPSE>
<OR <IN? ,ENVELOPE ,GRAVEDIGGER>
<IN? ,ENVELOPE ,SPOOKY-COPSE>>>
<SAY-THE ,GRAVEDIGGER>
<TELL " yells, ">
<FORGOT>
<CRLF>
<CRLF>)>
<RETURN ,CREEPY-CORNER>>
<OBJECT WILLOWS
(IN SPOOKY-COPSE)
(DESC "willow tree")
(SYNONYM TREE TREES BOUGH BOUGHS)
(ADJECTIVE WILLOW)
(FLAGS NDESCBIT)
(ACTION WILLOWS-F)>
<ROUTINE WILLOWS-F ()
<COND (<VERB? EXAMINE>
<TELL "The droopy boughs sway eerily in the breeze." CR>
<RTRUE>)
(<GETTING-INTO?>
<NO-FOOTHOLDS>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE NO-FOOTHOLDS ()
<TELL ,CANT ". There aren't any good footholds." CR>>
<OBJECT VAPORS
(IN LOCAL-GLOBALS)
(DESC "eldritch vapor")
(SYNONYM VAPOR VAPORS MIST MISTS)
(ADJECTIVE ELDRITCH RIBBON GHOSTLY)
(FLAGS VOWELBIT NDESCBIT NARTICLEBIT)
(ACTION VAPORS-F)>
; "RMUNGBIT = Vapors have stolen a possession"
<ROUTINE VAPORS-F ("OPTIONAL" (CONTEXT <>))
<COND (<NOT ,SKEWED?>
<CANT-SEE-ANY ,VAPORS>
<RFATAL>)
(<VERB? EXAMINE>
<SAY-THE ,VAPORS>
<TELL
"s stare back at you with translucent curiosity." CR>
<RTRUE>)
(<TOUCHING? ,VAPORS>
<TELL ,CANT " touch an " D ,VAPORS "!" CR>
<RTRUE>)
(<TALKING-TO? ,VAPORS>
<SAY-THE ,VAPORS>
<TELL "s pay no heed." CR>
<RTRUE>)
(<VERB? LISTEN>
<SAY-THE ,VAPORS>
<TELL "s' voices are hard to hear, but sinister." CR>
<RTRUE>)
(<AND <VERB? GIVE FEED THROW>
<EQUAL? ,PRSI ,VAPORS>>
<REMOVE ,PRSO>
<TELL "Silently, ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO " disappears into the ghostly mist." CR>
<COND (<EQUAL? ,PRSO ,WISHBRINGER ,SHOE>
<I-LUCK>)>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE I-VAPORS ("AUX" OBJ NXT (DO-LUCK? <>))
<COND (<OR ,FUZZY? ,ECLIPSE?>
<RTRUE>)
(<EQUAL? ,HERE ,TWILIGHT-GLEN ,SPOOKY-COPSE ,CREEPY-CORNER>
<SETG DIGGER-SCRIPT <+ ,DIGGER-SCRIPT 1>>
<CRLF>
<COND (<EQUAL? ,DIGGER-SCRIPT 1>
<TELL
"As you glance around you notice luminous ribbons of mist darting among the "
D ,MONUMENTS "s. The air is filled with sinister voices." CR>)
(<EQUAL? ,DIGGER-SCRIPT 2>
<COND (<FSET? ,VAPORS ,RMUNGBIT>
<SET OBJ <FIRST? ,PROTAGONIST>>
<SAY-THE ,VAPORS>
<COND (.OBJ
<TELL "s are eyeing ">
<ARTICLE .OBJ T>
<TELL D .OBJ>
<COND (<FSET? .OBJ ,WORNBIT>
<TELL " you're wearing">)
(T
<TELL " in " D ,HANDS "s">)>)
(T
<TELL "s are hovering around you">)>
<TELL " fiendishly">)
(T
<COND (,LUCKY?
<FSET ,VAPORS ,RMUNGBIT>
<SETG DIGGER-SCRIPT 1>)>
<TELL "The luminous mists suddenly condense into a cloud of " D ,VAPORS "s! Circling like " D ,SHARKS ", they stroke your face with ghostly fingers and whisper dreadful secrets into your ears">)>
<TELL "." CR>)
(T
<SET OBJ <FIRST? ,PROTAGONIST>>
<TELL
"Giggling with mischievous Glee, the " D ,VAPORS "s ">
<COND (<OR <NOT ,LUCKY?>
<NOT .OBJ>>
<FCLEAR ,VAPORS ,RMUNGBIT>
<DISABLE <INT I-VAPORS>>
<TELL
"clutch your legs and cover your eyes with their luminous hands. ">
<SAY-THE ,GROUND>
<BENEATH-FEET>
<TELL
" as the foggy fiends lift you high above the treetops">
<COND (.OBJ
<TELL ", scatter your possessions">)>
<TELL " and carry you screaming">
<INTO-NIGHT>
; "Move player somewhere else"
<SETG HERE <PICK-ONE ,DROP-OFFS>>
<MOVE ,PROTAGONIST ,HERE>
; "Scatter player's possessions"
<REPEAT ()
<COND (.OBJ
<SET NXT <NEXT? .OBJ>>
<FCLEAR .OBJ ,WORNBIT>
<MOVE .OBJ <PICK-ONE ,DROP-OFFS>>
<COND (<EQUAL? .OBJ ,WISHBRINGER
,SHOE>
<SET DO-LUCK? T>)>
<SET OBJ .NXT>)
(T
<RETURN>)>>
<COME-TO-SENSES>
<COND (.DO-LUCK?
<I-LUCK>
<I-GLOW>)>)
; "Steal one of player's possessions"
(T
<SETG DIGGER-SCRIPT 1>
<FCLEAR .OBJ ,WORNBIT>
<MOVE .OBJ <PICK-ONE ,DROP-OFFS>>
<FSET ,VAPORS ,RMUNGBIT>
<TELL "snatch ">
<ARTICLE .OBJ T>
<TELL D .OBJ
" out of " D ,HANDS "s and carry it away">
<INTO-NIGHT>
<CRLF>
<COND (<EQUAL? .OBJ ,BROOM>
<SETG BROOM-SIT? <>>)
(<EQUAL? .OBJ ,WISHBRINGER ,SHOE>
<I-LUCK>
<I-GLOW>)>)>)>)>>
<GLOBAL DROP-OFFS
<LTABLE 0
LOOKOUT-HILL PARK FESTERON-POINT
SOUTH-OF-BRIDGE EDGE-OF-LAKE ROCKY-PATH WHARF
CLIFF-BOTTOM RIVER-OUTLET>>
<ROUTINE INSIDE-GRAVE-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're at the bottom of an " D ,OPEN-GRAVE
", surrounded by six-foot walls of dirt.">
<COND (,SKEWED?
<COND (<ZERO? ,DIGGER-SCRIPT>
<TELL " A">)
(T
<TELL
" Luminous ribbons of mist are swarming overhead, and a">)>
<TELL " dark hole is visible in the north wall.">)>
<CRLF>)>>
<OBJECT HOLE
(IN LOCAL-GLOBALS)
(DESC "hole")
(SYNONYM HOLE OPENING)
(ADJECTIVE DARK)
(ACTION HOLE-F)>
<ROUTINE HOLE-F ()
<COND (<OR <NOT ,SKEWED?>
<AND <EQUAL? ,HERE ,LOOKOUT-HILL ,UNDER-HILL>
<NOT <FSET? ,STUMP ,OPENBIT>>>>
<CANT-SEE-ANY ,HOLE>
<RFATAL>)
(<VERB? WALK-TO ENTER THROUGH>
<COND (<EQUAL? ,HERE ,INSIDE-GRAVE ,LOOKOUT-HILL>
<DO-WALK ,P?IN>)
(<EQUAL? ,HERE ,TUNNEL-FORK>
<DO-WALK ,P?SOUTH>)
(T
<DO-WALK ,P?OUT>)>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<CANT-MAKE-OUT-ANYTHING>
<RTRUE>)
(T
<YOU-DONT-NEED ,HOLE>
<RFATAL>)>>
<OBJECT UMBRELLA
(IN TWILIGHT-GLEN)
(DESC "umbrella")
(FDESC "There must have been a burial here recently. Somebody left their umbrella leaning up against a tombstone.")
(SYNONYM UMBRELLA HANDLE HEAD)
(ADJECTIVE PARROT)
(FLAGS VOWELBIT CONTBIT TAKEBIT)
(SIZE 10)
(CAPACITY 10)
(VALUE 0)
(ACTION UMBRELLA-F)>
<ROUTINE UMBRELLA-F ()
<COND (<VERB? EXAMINE>
<TELL "The handle of the">
<OPEN-CLOSED ,UMBRELLA>
<TELL D ,UMBRELLA " is carved like a parrot's head." CR>
<RTRUE>)
(<VERB? LOOK-INSIDE LOOK-ON LOOK-DOWN>
<COND (<FSET? ,UMBRELLA ,OPENBIT>
<NOTHING-INTERESTING T>)
(T
<ITS-CLOSED ,UMBRELLA>)>
<RTRUE>)
(<AND <VERB? OPEN RAISE>
<EQUAL? ,PRSO ,UMBRELLA>>
<COND (<FSET? ,UMBRELLA ,OPENBIT>
<ALREADY-OPEN>
<RTRUE>)
(<NOT <IN? ,UMBRELLA ,PROTAGONIST>>
<YOUD-HAVE-TO "be holding" ,UMBRELLA>
<RTRUE>)
(<EQUAL? ,HERE ,INSIDE-GRAVE>
<TELL "There's no room here!" CR>
<RTRUE>)>
<PUTP ,UMBRELLA ,P?SIZE 20>
<FSET ,UMBRELLA ,SURFACEBIT>
<NOW-CLOSED-OR-OPEN ,UMBRELLA T>
<COND (<FSET? ,HERE ,INDOORSBIT>
<BAD-LUCK "open an umbrella indoors">)>
<RTRUE>)
(<AND <VERB? CLOSE LOWER>
<FSET? ,UMBRELLA ,OPENBIT>>
<COND (<NOT <IN? ,UMBRELLA ,PROTAGONIST>>
<YOUD-HAVE-TO "be holding" ,UMBRELLA>
<RTRUE>)>
<PUTP ,UMBRELLA ,P?SIZE 10>
<FCLEAR ,UMBRELLA ,SURFACEBIT>
<RFALSE>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,UMBRELLA>>
<COND (<EQUAL? ,PRSO ,UMBRELLA>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<NOT <IN? ,UMBRELLA ,PROTAGONIST>>
<YOUD-HAVE-TO "be holding" ,UMBRELLA>)
(<EQUAL? ,PRSO ,HAT ,COAT ,SNAKE-CAN>
<TELL "That would look silly." CR>)
(<AND <EQUAL? ,PRSA ,V?PUT>
<NOT <FSET? ,UMBRELLA ,OPENBIT>>>
<ITS-CLOSED ,UMBRELLA>)
(<G? <GETP ,PRSO ,P?SIZE> 5>
<TOO-LARGE ,PRSO>)
(T
<TELL "It immediately slides ">
<COND (<EQUAL? ,PRSA ,V?PUT-ON>
<TELL "off">)
(T
<TELL "out">)>
<AND-DROPS-OUT ,PRSO>)>
<RTRUE>)
(<VERB? STAND-UNDER RAISE>
<COND (<DONT-HAVE? ,UMBRELLA>
<RTRUE>)
(<NOT <FSET? ,UMBRELLA ,OPENBIT>>
<YOUD-HAVE-TO "open" ,UMBRELLA>)
(T
<TELL ,OKAY "you look very cosmopolitan." CR>)>
<RTRUE>)
(<AND <VERB? SIT STAND-ON LIE-DOWN MUNG BURN>
<EQUAL? ,PRSO ,UMBRELLA>>
<RUIN ,UMBRELLA>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE PUTTING-OPEN-UMBRELLA? ()
<COND (<AND <EQUAL? ,PRSO ,UMBRELLA>
<FSET? ,UMBRELLA ,OPENBIT>>
<YOUD-HAVE-TO "close" ,UMBRELLA>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT TREE
(IN LOCAL-GLOBALS)
(DESC "tree")
(SYNONYM TREE TREES)
(FLAGS NDESCBIT)
(ACTION TREE-F)>
<ROUTINE TREE-F ()
<COND (<VERB? EXAMINE>
<TELL "This is no time for botanizing." CR>
<RTRUE>)
(<GETTING-INTO?>
<NO-FOOTHOLDS>
<RTRUE>)
(T
<RFALSE>)>>