wishbringer/bridge.zil

678 lines
18 KiB
Plaintext

"BRIDGE for WISHBRINGER: (C)1985 Infocom, Inc. All rights reserved."
"*** ON BRIDGE ***"
<OBJECT ON-BRIDGE
(IN ROOMS)
(DESC "Bridge")
(FLAGS ONBIT RLANDBIT INDOORSBIT WETBIT)
(GLOBAL RIVER BRIDGE)
(NORTH PER OFF-BRIDGE)
(EAST PER PROBABLY-DROWN)
(SOUTH TO SOUTH-OF-BRIDGE)
(WEST PER PROBABLY-DROWN)
(DOWN PER PROBABLY-DROWN)
(ACTION ON-BRIDGE-F)>
<ROUTINE ON-BRIDGE-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"You're on a " D ,BRIDGE " that spans the">
<WHICH-TOWN "River">
<TELL ". A sign hangs on an arch overhead." CR>)>>
<ROUTINE OFF-BRIDGE ()
<COND (<AND ,SKEWED?
<IN? ,TROLL ,NORTH-OF-BRIDGE>>
; <START-BUZZ 2>
<FCLEAR ,TOLL-GATE ,OPENBIT>
<ENABLE <QUEUE I-SHUT-GATE -1>>)>
<RETURN ,NORTH-OF-BRIDGE>>
<ROUTINE I-SHUT-GATE ()
<DISABLE <INT I-SHUT-GATE>>
<CRLF>
<SAY-THE ,TROLL>
<TELL " lowers the " D ,TOLL-GATE " after you pass." CR>>
<OBJECT BRIDGE
(IN LOCAL-GLOBALS)
(DESC "covered bridge")
(SYNONYM BRIDGE)
(ADJECTIVE COVERED)
(FLAGS NDESCBIT)
(ACTION BRIDGE-F)>
<ROUTINE BRIDGE-F ()
<COND (<VERB? CROSS WALK-TO THROUGH ENTER>
<COND (<EQUAL? ,HERE ,SOUTH-OF-BRIDGE>
<DO-WALK ,P?NORTH>)
(<EQUAL? ,HERE ,NORTH-OF-BRIDGE>
<DO-WALK ,P?SOUTH>)
(<EQUAL? ,HERE ,ON-BRIDGE>
<V-WALK-AROUND>)
(T
<RFALSE>)>
<RTRUE>)
(<VERB? LEAP>
<COND (<EQUAL? ,HERE ,ON-BRIDGE>
<PERFORM ,V?KILL ,ME>)
(T
<ALREADY-ON ,BRIDGE T>)>
<RTRUE>)
(<VERB? LOOK-UNDER>
<PERFORM ,V?EXAMINE ,RIVER>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT BRIDGE-SIGN
(IN ON-BRIDGE)
(DESC "sign")
(SYNONYM SIGN ARCH)
(ADJECTIVE BIG)
(FLAGS NDESCBIT READBIT)
(ACTION BRIDGE-SIGN-F)>
<ROUTINE BRIDGE-SIGN-F ()
<COND (<VERB? READ EXAMINE>
<CRLF>
<FIXED-FONT-ON>
<TELL " ">
<COND (<EQUAL? ,WHERE-FROM ,SOUTH-OF-BRIDGE>
<TELL "LEAV">)
(T
<TELL "ENTER">)>
<TELL "ING ">
<COND (,SKEWED?
<TELL "WITCHVILLE">)
(T
<TELL "FESTERON">)>
<TELL CR CR>
<COND (,SKEWED?
<TELL
" Curfew Begins At 6 PM|
Boot Patrol On Duty|
Violators Will Be Jailed!">)
(T
<COND (<EQUAL? ,WHERE-FROM ,SOUTH-OF-BRIDGE>
<TELL "Next Time You're In Town" CR>)>
<TELL
" Visit Our Fun-Filled" CR " " D ,PLEASURE-WHARF>)>
<CRLF>
<FIXED-FONT-OFF>
<RTRUE>)
(T
<RFALSE>)>>
"*** NORTH OF BRIDGE ***"
<OBJECT NORTH-OF-BRIDGE
(IN ROOMS)
(DESC "North of Bridge")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BRIDGE RIVER CLIFF SIGN)
(NORTH PER BUMP-CLIFF)
(EAST TO CLIFF-BOTTOM)
(SOUTH PER ENTER-BRIDGE?)
(WEST PER BUMP-CLIFF)
(UP "The cliff is much too steep to climb.")
(IN PER ENTER-BRIDGE?)
(ACTION NORTH-OF-BRIDGE-F)
(PSEUDO "SHORE" HERE-F)>
<ROUTINE NORTH-OF-BRIDGE-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This is the north side of the">
<WHICH-TOWN "Bridge">
<TELL ". Sheer cliff walls rise abruptly " <TO-N> " and west. A path wanders east along the shore of the river.">
<COND (,SKEWED?
<TELL CR CR
"A rickety " D ,TOLL-GATE " has been thrown up across the " D ,ENTRANCE
" to the " D ,BRIDGE ". A handpainted sign is nailed to the middle of the">
<OPEN-CLOSED ,TOLL-GATE>
<TELL "gate.">
<COND (<IN? ,TROLL ,NORTH-OF-BRIDGE>
<THIS-IS-IT ,TROLL>
<TELL CR CR
"Standing near the " D ,TOLL-GATE " is an ugly, gnomelike creature. A less original story would probably refer to it as a troll.">)>)>
<CRLF>)>>
<ROUTINE ENTER-BRIDGE? ()
<SETG WHERE-FROM ,NORTH-OF-BRIDGE>
<COND (<NOT ,SKEWED?>
<RETURN ,ON-BRIDGE>)
(<FSET? ,TOLL-GATE ,OPENBIT>
<COND (<L? ,WISDOM 3>
<COND (<FSET? ,LAKE-SAND ,TOOLBIT>
<START-BUZZ 4>)
(T
<START-BUZZ 3>)>)>
<FSET ,TROLL ,RMUNGBIT>
<RETURN ,ON-BRIDGE>)
(T
<COND (<IN? ,TROLL ,NORTH-OF-BRIDGE>
<THIS-IS-IT ,TROLL>
<TELL
"\"" <PICK-ONE ,TOLL-DEMANDS> "\" croaks the troll, palm outstretched." CR>)
(T
<ITS-CLOSED ,TOLL-GATE>)>
<RFALSE>)>>
<GLOBAL TOLL-DEMANDS
<LTABLE 0
"The sign says 'One Gold Coin,'"
"Show me first a gold coin,"
"Ask not for whom the troll tolls,">>
<OBJECT TROLL
(DESC "troll")
(SYNONYM TROLL CREATURE)
(ADJECTIVE UGLY GNOMELIKE)
(FLAGS ACTORBIT NDESCBIT RMUNGBIT TOOLBIT)
(ACTION TROLL-F)>
; "RMUNGBIT = troll has not accepted the coin,
TOOLBIT = troll has not been given the can"
<ROUTINE TROLL-F ("OPTIONAL" (CONTEXT <>))
<COND (<VERB? EXAMINE>
<SAY-THE ,TROLL>
<TELL " is staring ">
<COND (,ECLIPSE?
<TELL "fearfully upward">)
(T
<TELL "back at you stupidly">)>
<TELL "." CR>
<RTRUE>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,TROLL>>
<COND (,ECLIPSE?
<TROLL-NOT-INTERESTED>
<RTRUE>)
(<EQUAL? ,PRSO ,COIN>
<COND (,COIN-OFFERED?
<REMOVE ,COIN>
<SAY-THE ,TROLL>
<TELL
" angrily tosses your " D ,COIN " into the river and mutters something indelicate about counterfeiters." CR>
<RTRUE>)>
<SETG COIN-OFFERED? T>
<SAY-THE ,TROLL>
<TELL
" snatches away your " D ,COIN " with a grunt">
<COND (,LUCKY?
<MOVE ,COIN ,TROLL>
<FSET ,TOLL-GATE ,OPENBIT>
<FCLEAR ,TROLL ,RMUNGBIT>
<THIS-IS-IT ,BRIDGE>
<START-BUZZ 3>
<TELL
". Luckily, he hides it away without looking at it and opens the "
D ,TOLL-GATE ". \"Pass.\"" CR>
<RTRUE>)
(T
<MOVE ,COIN ,NORTH-OF-BRIDGE>
<THIS-IS-IT ,COIN>
<TELL " and squints at it suspiciously. \"Ugh!\" he cries, holding it up to the moonlight. \"This is a fake!\" He points accusingly at the familiar">
<SAY-PROFILE>
<TELL ", throws your coin to the " D ,GROUND
" and pulls out another. \"This is what an OFFICIAL " D ,COIN " looks like!\"|
|
The " D ,TROLL " proudly exhibits his coin. It shows the profile of an evil-looking " D ,OLD-WOMAN>)>
<TELL "." CR>
<RFATAL>)
(<AND <EQUAL? ,PRSO ,SNAKE-CAN>
<NOT <FSET? ,SNAKE-CAN ,OPENBIT>>>
<SAY-THE ,SNAKE-CAN>
<TELL
" rattles as you hand it to the " D ,TROLL ". ">
<COND (<FSET? ,TROLL ,TOOLBIT>
<FCLEAR ,TROLL ,TOOLBIT>
<FSET ,SNAKE-CAN ,OPENBIT>
<TELL "\"Mmm, yummy!\" he exclaims, peering at the label and then greedily opening the lid..." CR CR>)>
<COND (,SNAKE-GONE?
<MOVE ,SNAKE-CAN ,HERE>
<TELL
"\"Hurumph!\" he growls, pitching the can to the " D ,GROUND ". \"Not funny!\""
CR>)
(T
<TELL "Yow! As he opens">
<SNAKE-LEAPS-OUT-AT "the troll">
<CAN-FALLS>
<FRIGHTEN-TROLL>
<CRLF>
<UPDATE-SCORE 3>)>
<RFATAL>)
(T
<MOVE ,PRSO ,NORTH-OF-BRIDGE>
<SAY-THE ,TROLL>
<TELL " studies ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO
" closely to see if it resembles a " D ,COIN ", and pitches it to the "
D ,GROUND " when he decides that it doesn't." CR>
<RTRUE>)>)
(<ASKING? ,TROLL>
<COND (,ECLIPSE?
<TROLL-NOT-INTERESTED>)
(T
<TELL
"\"No time for questions,\" " <PICK-ONE ,YELL-TYPES> " the idle troll." CR>)>
<RFATAL>)
(<VERB? FEED TELL YELL REPLY HELLO WAVE-AT ; GOODBYE>
<COND (,ECLIPSE?
<TROLL-NOT-INTERESTED>)
(T
<SAY-THE ,TROLL>
<TELL " " <PICK-ONE ,YELL-TYPES>
" something awful and ignores you." CR>)>
<RFATAL>)
(<AND <VERB? FOLLOW>
,TROLL-SCARED?
<EQUAL? ,HERE ,NORTH-OF-BRIDGE ,ON-BRIDGE>>
<DO-WALK ,P?SOUTH>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE TROLL-NOT-INTERESTED ()
<SAY-THE ,TROLL>
<TELL " is too busy watching the sky to notice." CR>>
<GLOBAL COIN-OFFERED? <>>
<OBJECT TOLL-GATE
(DESC "toll gate")
(SYNONYM GATE)
(ADJECTIVE TOLL)
(FLAGS NDESCBIT DOORBIT)
(ACTION TOLL-GATE-F)>
<ROUTINE TOLL-GATE-F ()
<COND (<NOT ,SKEWED?>
<CANT-SEE-ANY ,TOLL-GATE>
<RFATAL>)
(<VERB? OPEN RAISE>
<COND (<FSET? ,TOLL-GATE ,OPENBIT>
<ALREADY-OPEN>)
(T
<NOW-CLOSED-OR-OPEN ,TOLL-GATE T>
<COND (<AND <IN? ,TROLL ,NORTH-OF-BRIDGE>
<FSET? ,TROLL ,RMUNGBIT>>
<FCLEAR ,TOLL-GATE ,OPENBIT>
<CRLF>
<SAY-THE ,TROLL>
<TELL " slams the " D ,TOLL-GATE " shut. \""
<PICK-ONE ,TOLL-DEMANDS>
"\" he " <PICK-ONE ,YELL-TYPES> "." CR>)>)>
<RTRUE>)
(<VERB? WALK-TO ENTER EXIT THROUGH>
<COND (<FSET? ,TOLL-GATE ,OPENBIT>
<DO-WALK ,P?SOUTH>)
(T
<ITS-CLOSED ,TOLL-GATE>)>
<RTRUE>)
(<VERB? LEAP CROSS CLIMB-ON CLIMB-UP>
<TOO-HIGH ,TOLL-GATE>
<RTRUE>)
(<AND <HURT? ,TOLL-GATE>
<IN? ,TROLL ,NORTH-OF-BRIDGE>>
<SAY-THE ,TROLL>
<MIGHT-NOT-LIKE>
<RTRUE>)
(<VERB? CLOSE LOWER>
<COND (<NOT <FSET? ,TOLL-GATE ,OPENBIT>>
<ALREADY-CLOSED>)
(<IN? ,TROLL ,NORTH-OF-BRIDGE>
<TELL "\"That's MY job,\" snaps the " D ,TROLL "." CR>)
(T
; <FCLEAR ,TOLL-GATE ,OPENBIT>
; <TELL "Closed." CR>
<NOW-CLOSED-OR-OPEN ,TOLL-GATE>)>
<RTRUE>)
(<VERB? EXAMINE READ LOOK-ON>
<PERFORM ,V?EXAMINE ,SIGN>
<RTRUE>)
(T
<RFALSE>)>>
"*** CLIFF BOTTOM ***"
<OBJECT CLIFF-BOTTOM
(IN ROOMS)
(DESC "Cliff Bottom")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL RIVER SAND CLIFF TRAIL)
(NORTH PER BUMP-CLIFF)
(EAST PER BUMP-CLIFF)
(SOUTH PER PROBABLY-DROWN)
(WEST PER LIFT-VULTURE)
(UP PER ENTER-TRAIL?)
(IN PER BUMP-CLIFF)
(ACTION CLIFF-BOTTOM-F)>
<ROUTINE CLIFF-BOTTOM-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're at the bottom of a cliff that rises up from the north bank of the river.">
<COND (<NOT ,SKEWED?>
<TELL " ">
<TRAIL-WINDS-UP>)>
<CRLF>)>>
<ROUTINE ENTER-TRAIL? ()
<COND (,SKEWED?
<TRAIL-MISPLACED>
<RFALSE>)
(T
<COND (<FSET? ,STEEP-TRAIL ,RMUNGBIT>
<FCLEAR ,STEEP-TRAIL ,RMUNGBIT>
<TELL "(The " D ,TRAIL " you're climbing is narrow and twisty. It's a good idea to draw a map as you go up.)" CR CR>)>
<SETG TLOC 1>
<RETURN ,STEEP-TRAIL>)>>
<ROUTINE TRAIL-MISPLACED ()
<TELL
"The steep " D ,TRAIL " seems to have disappeared with the fog." CR>>
<ROUTINE TRAIL-WINDS-UP ()
<TELL "A steep " D ,TRAIL " winds upward.">>
<ROUTINE FEATURELESS-WALL ()
<TELL "It's a sheer, featureless wall, a hundred feet high." CR>>
<OBJECT CLIFF
(IN LOCAL-GLOBALS)
(DESC "cliff")
(SYNONYM CLIFF WALL FACE)
(ADJECTIVE SHEER ROCK ROCKY STEEP FEATURELESS)
(FLAGS NDESCBIT)
(ACTION CLIFF-F)>
<ROUTINE CLIFF-F ()
<COND (<VERB? EXAMINE LOOK-UP>
<COND (<AND <EQUAL? ,HERE ,CLIFF-BOTTOM>
<NOT ,SKEWED?>>
<TRAIL-WINDS-UP>
<CRLF>)
(T
<FEATURELESS-WALL>)>
<RTRUE>)
(<VERB? LEAP>
<COND (<EQUAL? ,HERE ,CLIFF-EDGE ,STEEP-TRAIL ,FOG>
<PERFORM ,V?KILL ,ME>)
(T
<ALREADY-ON ,CLIFF T>)>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT BRANCH
(IN GNARLED-TREE)
(DESC "dead branch")
(SYNONYM BRANCH)
(ADJECTIVE LONE HORIZONTAL DEAD)
(FLAGS BURNBIT TAKEBIT)
(ACTION BRANCH-F)
(DESCFCN DESCRIBE-BRANCH)
(VALUE 0)
(SIZE 23)>
<ROUTINE DESCRIBE-BRANCH (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-OBJDESC>
<TELL "A " D ,BRANCH " is ">
<COND (<IN? ,BRANCH ,PIT>
<STICKUP>)
(T
<TELL "lying on the " D ,GROUND>)>
<TELL ".">)>>
<ROUTINE STICKUP ()
<TELL "sticking up out of the pit">>
<ROUTINE BRANCH-F ()
<COND (<VERB? EXAMINE>
<SAY-THE ,BRANCH>
<TELL " is ">
<COND (<IN? ,BRANCH ,PIT>
<STICKUP>
<COND (<FSET? ,PLATYPUS ,TOOLBIT>
<TELL ". A " D ,PLATYPUS
" is holding on to the bottom end, and looking up at you expectantly">)>)
(T
<TELL "about six feet long">)>
<TELL "." CR>
<RTRUE>)
(<AND <VERB? TAKE MOVE PULL RAISE>
<EQUAL? ,PRSO ,BRANCH>>
<COND (<NOT <FSET? ,GNARLED-TREE ,RMUNGBIT>>
<BRANCH-BREAKS>)
(<AND <IN? ,BRANCH ,PIT>
<FSET? ,PLATYPUS ,TOOLBIT>>
<COND (<V-TAKE>
<CRLF>
<UPDATE-SCORE 5>
<CRLF>
<SAY-THE ,PLATYPUS>
<TELL " hangs on to the " D ,BRANCH " as you pull it out of the pit. It lets go when the branch clears the edge and waddles joyfully around on the ">
<COND (,PIT-FULL?
<TELL "wet ">)>
<TELL "sand." CR CR>
<DRAW-X>)>
<RTRUE>)
(T
<RFALSE>)>
<RTRUE>)
(<AND <VERB? CLIMB-UP CLIMB-ON SIT MUNG>
<EQUAL? ,PRSO ,BRANCH>
<NOT <FSET? ,GNARLED-TREE ,RMUNGBIT>>>
<BRANCH-BREAKS>
<RTRUE>)
(T
<RFALSE>)>>
"*** VULTURE ***"
<OBJECT VULTURE
(DESC "vulture")
(SYNONYM VULTURE BIRD)
(FLAGS ACTORBIT TRYTAKEBIT NDESCBIT)
(ACTION VULTURE-F)>
; "RMUNGBIT = force vulture sighting"
<ROUTINE VULTURE-F ("OPTIONAL" (CONTEXT <>))
<COND (<VERB? EXAMINE LOOK-UP>
<TELL "Its steady gaze makes you uneasy." CR>
<RTRUE>)
(<IMAGE? ,VULTURE>
<RFATAL>)
(<OR <TALKING-TO? ,VULTURE>
<VERB? YELL>>
<SAY-THE ,VULTURE>
<TELL " " <PICK-ONE ,IGNORANCE> "." CR>
<RFATAL>)
(<AND <VERB? THROW>
<EQUAL? ,PRSI ,VULTURE>>
<SAY-THE ,VULTURE>
<COND (<EQUAL? ,PRSO ,WISHBRINGER>
<COND (<ENABLED? ,I-VULTURE>
<DISABLE <INT I-VULTURE>>)>
<REMOVE ,VULTURE>
<REMOVE ,WISHBRINGER>
<TELL " eagerly snatches up the " D ,WISHBRINGER
" in its beak,">
<SOARS-AWAY-OVER>
<TELL "your head with a croak of delight." CR CR>
<UPDATE-SCORE -10>)
(T
<TELL " ignores you." CR>)>
<RTRUE>)
(<IN? ,VULTURE ,HERE>
<TOO-HIGH ,VULTURE>
<RTRUE>)
(<AND <VERB? FEED GIVE>
<EQUAL? ,PRSI ,VULTURE>>
<PERFORM ,V?THROW ,PRSO ,VULTURE>
<RTRUE>)
(<OR <HURT? ,VULTURE>
<VERB? KISS EAT PLAY SQUEEZE RUB>>
<REMOVE ,VULTURE>
<SAY-THE ,VULTURE>
<TELL
" sees your thought. Before you can do anything, it makes a haughty little croak and flies serenely away." CR>
<RFATAL>)
(T
<RFALSE>)>>
<ROUTINE LIFT-VULTURE ()
<COND (<IN? ,VULTURE ,GNARLED-TREE>
<FCLEAR ,VULTURE ,RMUNGBIT>
<REMOVE ,VULTURE>
<ENABLE <QUEUE I-VULTURE -1>>
<SAY-THE ,VULTURE>
<SOARS-AWAY-OVER>
<TELL "your head." CR CR>)>
<RETURN ,NORTH-OF-BRIDGE>>
<ROUTINE SOARS-AWAY-OVER ()
<TELL " spreads its wings and soars away over ">>
<ROUTINE SEE-VULTURE ()
<SAY-THE ,VULTURE>
<TELL " " <PICK-ONE ,SIGHTINGS> " high overhead." CR>>
<GLOBAL SIGHTINGS
<LTABLE 0
"appears" "is circling" "begins to hover" "can be seen circling"
"is watching you from" "hovers in the sky" "hovers"
"eyes you suspiciously from">>
<OBJECT GNARLED-TREE
(IN CLIFF-BOTTOM)
(DESC "gnarled tree trunk")
(SYNONYM TRUNK TREE)
(ADJECTIVE GNARLED OLD DEAD)
(FLAGS ; NDESCBIT SURFACEBIT ; BURNBIT)
(DESCFCN DESCRIBE-TREE)
(ACTION GNARLED-TREE-F)>
<ROUTINE DESCRIBE-TREE (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-OBJDESC>
<TELL "A " D ,GNARLED-TREE>
<COND (<IN? ,BRANCH ,GNARLED-TREE>
<TELL
" stands nearby, a lone branch its only adornment.">)
(T
<TELL
", stripped of all its branches, stands nearby.">)>
<COND (<IN? ,VULTURE ,GNARLED-TREE>
<TELL " A " D ,VULTURE " perched on top is watching every move you make.">)>)>>
<ROUTINE GNARLED-TREE-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<SAY-THE ,GNARLED-TREE>
<TELL " is rotten to the core." CR>
<RTRUE>)
(<VERB? CLIMB-ON CLIMB-UP SIT>
<COND (<FSET? ,GNARLED-TREE ,RMUNGBIT>
<NO-FOOTHOLDS>)
(T
<TELL
"Done. You're sitting on the rotten, creaking branch..." CR CR>
<BRANCH-BREAKS>
<TELL CR
"You're now sitting on the " D ,GROUND ". Painfully." CR>)>
<RTRUE>)
(<AND <VERB? PUT PUT-ON THROW>
<EQUAL? ,PRSI ,GNARLED-TREE>>
<WASTE-OF-TIME>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE BRANCH-BREAKS ()
<FCLEAR ,BRANCH ,NDESCBIT>
<FSET ,GNARLED-TREE ,RMUNGBIT>
<MOVE ,BRANCH ,CLIFF-BOTTOM>
<TELL "Crack! ">
<SAY-THE ,BRANCH>
<TELL " snaps off the " D ,GNARLED-TREE " and falls to the "
D ,GROUND " with a thud. ">
<VULTURE-IN-TREE>
<CRLF>>
<ROUTINE VULTURE-IN-TREE ()
<COND (<IN? ,VULTURE ,GNARLED-TREE>
<FCLEAR ,VULTURE ,RMUNGBIT>
<REMOVE ,VULTURE>
<ENABLE <QUEUE I-VULTURE -1>>
<TELL "Visibly annoyed, the " D ,VULTURE>
<SOARS-AWAY-OVER>
<TELL "the river.">)>>
<ROUTINE CAN-FALLS ()
<MOVE ,SNAKE-CAN ,NORTH-OF-BRIDGE>
<CLATTERS ,SNAKE-CAN>>
<ROUTINE CLATTERS (THING)
<CRLF>
<SAY-THE .THING>
<TELL " clatters to the " D ,GROUND "." CR>>
<GLOBAL SNAKE-GONE? <>>
<ROUTINE SNAKE-LEAPS-OUT-AT (STR)
<SETG SNAKE-GONE? T>
<TELL " the can a ">
<COND (,SKEWED?
<THIS-IS-IT ,SNAKE-CAN>
<FSET ,SNAKE-CAN ,OPENBIT>
<TELL
"real, live rattlesnake leaps out! It squirms about angrily for a few moments, turns to hiss at " .STR " and slithers out of sight">)
(T
<TELL
"three-foot plastic snake springs out! It hits you in the nose and lands harmlessly at your feet.|
|
\"Oldest trick in the book,\" remarks the " D ,OLD-WOMAN ", chuckling despite herself. \"Try it next time you want to get rid of somebody.\" She stuffs the snake back into the " D ,SNAKE-CAN ", closes the lid and hands it back to you">)>
<TELL "." CR>>
<GLOBAL TROLL-SCARED? <>>
<ROUTINE FRIGHTEN-TROLL ()
<SETG TROLL-SCARED? T>
<COND (<EQUAL? ,WISDOM 2>
<START-BUZZ 3>)>
<MOVE ,TROLL ,STEEP-TRAIL>
<COND (<AND <IN? ,COIN ,TROLL>
,LUCKY?>
<FCLEAR ,COIN ,TOUCHBIT>
<FCLEAR ,ON-BRIDGE ,TOUCHBIT>
<MOVE ,COIN ,ON-BRIDGE>
<PUTP ,COIN ,P?FDESC "Lucky you! Your gold coin is lying here on the bridge. The troll must have dropped it when he ran away.">)>
<TELL CR
"A scream of terror echoes off the cliffs as the " D ,TROLL
" runs away across the " D ,BRIDGE "." CR>>
<ROUTINE INTO-NIGHT ()
<TELL " into the night.">>