wishbringer-gold/east.zil

873 lines
22 KiB
Plaintext

"EAST for WISHBRINGER: (C)1985 Infocom, Inc. All rights reserved."
"*** PLEASURE WHARF ***"
<ROUTINE ENTER-PLEASURE-WHARF ()
<COND (<AND ,SKEWED?
<NOT ,BOX-SEEN?>>
<SETG BOX-SEEN? T>
<ENABLE <QUEUE I-WAKE-BOX -1>>)>
<RETURN ,PLEASURE-WHARF>>
<OBJECT PLEASURE-WHARF
(IN ROOMS)
(DESC "Pleasure Wharf")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY ARCADE SIGN SAND)
(NORTH PER ENTER-POOL?)
(EAST PER ENTER-WHARF)
(SOUTH TO VIDEO-ARCADE)
(WEST TO ROTARY-EAST)
(IN TO VIDEO-ARCADE)
(ACTION PLEASURE-WHARF-F)
(PSEUDO "WHARF" HERE-F)>
<ROUTINE PLEASURE-WHARF-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<STANDING>
<TELL "near the ">
<COND (,SKEWED?
<TELL "remains of">)
(T
<TELL D ,ENTRANCE " to">)>
<TELL " the " D ,PLEASURE-WHARF>
<COND (<NOT ,SKEWED?>
<TELL ", the town's most popular tourist attraction">)>
<TELL ". The Wharf extends eastward into">
<WHICH-TOWN "Bay">
<COND (<NOT ,SKEWED?>
<TELL
", and a tidal beach curves north along the shore">)>
<TELL ".|
|
To the south stands a ramshackle old building. Colorful lights, curious electronic sounds and a neon sign beckon you through the open " D ,ENTRANCE "." CR>)>>
<ROUTINE ENTER-POOL? ()
<COND (<NOT ,SKEWED?>
<RETURN ,TIDAL-POOL>)
(T
<TELL ,CANT " go that way now. The tide is in." CR>
<RFALSE>)>>
"*** WHARF ***"
<OBJECT WHARF
(IN ROOMS)
(DESC "Wharf's End")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY)
(NORTH PER FALL-OFF-WHARF)
(EAST PER FALL-OFF-WHARF)
(SOUTH PER FALL-OFF-WHARF)
(WEST PER ENTER-PLEASURE-WHARF)
(ACTION WHARF-F)
(PSEUDO "PLANKS" HERE-F "WHARF" HERE-F)>
<ROUTINE WHARF-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "The sea-worn planks of the">
<WHICH-TOWN>
<TELL " " D ,PLEASURE-WHARF
" end abruptly a few feet " <TO-E> ". You're surrounded by the ">
<COND (,SKEWED?
<TELL "dark, shark-infested">)
(T
<TELL "blue, sparkling">)>
<TELL " waters of">
<WHICH-TOWN "Bay">
<TELL "." CR>)>>
<ROUTINE ENTER-WHARF ()
<COND (<AND <NOT ,SKEWED?>
<NOT <FSET? ,HORSE ,TOUCHBIT>>>
<ENABLE <QUEUE I-HORSE-DEATH -1>>)>
<RETURN ,WHARF>>
<ROUTINE FALL-OFF-WHARF ()
<COND (,SKEWED?
<SAY-THE ,SHARKS>
<TELL " would gobble you up">
<IF-YOU-TRIED>)
(T
<PROBABLY-DROWN>)>
<RFALSE>>
<OBJECT SHARKS
(DESC "sharks")
(SYNONYM SHARK SHARKS FIN FINS)
(ADJECTIVE BLACK)
(FLAGS NDESCBIT)
(ACTION SHARKS-F)>
<ROUTINE SHARKS-F ()
<COND (<VERB? EXAMINE LOOK-ON>
<TELL ,YOU-SEE
"their black fins circling in the water nearby." CR>
<RTRUE>)
(T
<YOU-DONT-NEED ,SHARKS>
<RFATAL>)>>
<OBJECT BAY
(IN LOCAL-GLOBALS)
(DESC "bay")
(SYNONYM BAY SEA OCEAN WATER)
(ADJECTIVE FESTERON)
(FLAGS NDESCBIT TRYTAKEBIT CONTBIT OPENBIT)
(ACTION BAY-F)>
<ROUTINE BAY-F ()
<COND (<VERB? EXAMINE>
<TELL "The waters of the bay ">
<COND (,SKEWED?
<TELL "swell ominously in the moon">)
(T
<TELL "twinkle merrily in the sun">)>
<TELL "light." CR>
<RTRUE>)
(<HANDLE-WATER?>
<RTRUE>)
(T
<RFALSE>)>>
"*** VIDEO ARCADE ***"
<OBJECT VIDEO-ARCADE
(IN ROOMS)
(DESC "Video Arcade")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL ARCADE SIGN CORNER)
(NORTH PER EXIT-ARCADE)
(OUT PER EXIT-ARCADE)
(ACTION VIDEO-ARCADE-F)>
<ROUTINE EXIT-ARCADE ()
<COND (<FSET? ,MACHINE ,TOOLBIT>
<ENABLE <QUEUE I-SMOKE -1>>
<FCLEAR ,MACHINE ,TOOLBIT>
<TELL "One of the " D ,HUMANOIDS " eagerly takes over your "
D ,MACHINE " as you walk away." CR CR>)>
<RETURN ,PLEASURE-WHARF>>
<ROUTINE VIDEO-ARCADE-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This old building is the home of a sleazy " D ,ARCADE
", lined with coin-op video games. The machines are ">
<COND (,SKEWED?
<THIS-IS-IT ,HUMANOIDS>
<TELL
"crowded with half-crazed, " D ,HUMANOIDS ", who pay no attention to you as they satisfy their thirst for electric violence.|
|
One machine in the " D ,CORNER " appears to be deserted">)
(T
<THIS-IS-IT ,MACHINE>
<TELL "all deserted and quiet">
<COND (<NOT <FSET? ,MACHINE ,RMUNGBIT>>
<TELL ", except for one in the " D ,CORNER
" that emits a feeble \"wokka-wokka\" sound">)>)>
<TELL "." CR CR>
<ARCADE-SIGN>)>>
<ROUTINE ARCADE-SIGN ()
<TELL
"A sign on the wall says, \"All Games One Token.\"" CR>>
<OBJECT ARCADE
(IN LOCAL-GLOBALS)
(DESC "arcade")
(SYNONYM ARCADE BUILDING ENTRANCE ENTRY)
(ADJECTIVE VIDEO OLD RAMSHACKLE)
(ACTION ARCADE-F)>
<ROUTINE ARCADE-F ()
<COND (<ENTER-FROM? ,PLEASURE-WHARF ,VIDEO-ARCADE ,ARCADE>
<RTRUE>)
(<VERB? LOOK-ON EXAMINE LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,PLEASURE-WHARF>
<GO-INSIDE>)
(T
<V-LOOK>)>
<RTRUE>)
(<VERB? OPEN>
<ALREADY-OPEN>
<RTRUE>)
(<VERB? CLOSE>
<TELL ,CANT " close the " D ,ARCADE
" (though many have tried)." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT HUMANOIDS
(DESC "stunted humanoids")
(SYNONYM HUMANOIDS)
(ADJECTIVE STUNTED)
(FLAGS NDESCBIT NARTICLEBIT ACTORBIT)
(ACTION HUMANOIDS-F)>
<ROUTINE HUMANOIDS-F ("OPTIONAL" (CONTEXT <>))
<COND (<VERB? EXAMINE>
<TELL
"They have extraordinarily supple wrists, fast reflexes and tiny brains." CR>
<RTRUE>)
(<OR <TALKING-TO? ,HUMANOIDS>
<VERB? GIVE FEED YELL>>
<SAY-THE ,HUMANOIDS>
<TELL " pay no attention." CR>
<RFATAL>)
(<HURT? ,HUMANOIDS>
<TELL "Why bother? The " D ,HUMANOIDS
" will soon be extinct anyway." CR>
<RTRUE>)
(T
<YOU-DONT-NEED ,HUMANOIDS>
<RFATAL>)>>
<OBJECT MACHINE
(IN VIDEO-ARCADE)
(DESC "game machine")
(SYNONYM MACHINE UNIT GAME LOGO)
(ADJECTIVE GAME ARCADE VIDEO SIDES BROKEN)
(FLAGS NDESCBIT CONTBIT OPENBIT READBIT)
(CAPACITY 1)
(ACTION MACHINE-F)>
; "TOOLBIT = MACHINE ON, RMUNGBIT = MACHINE BROKEN"
<ROUTINE MACHINE-F ()
<COND (<VERB? EXAMINE READ LOOK-ON>
<SAY-THE ,MACHINE>
<TELL " is equipped with a video screen, a joystick, a big red button and a narrow slot for tokens. A lurid logo (\"">
<COND (,SKEWED?
<TELL "TRANSMATTER">)
(T
<TELL "LEATHER GODDESSES OF PHOBOS">)>
<TELL "!\") is painted on the side." CR>
<RTRUE>)
(<VERB? LISTEN KICK>
<COND (<FSET? ,MACHINE ,RMUNGBIT>
<NOTHING-EXCITING>
<RTRUE>)
(,SKEWED?
<SAY-THE ,MACHINE>
<TELL " emits a familiar electronic dirge.">)
(T
<TELL "\"Wokka.\"">)>
<CRLF>
<RTRUE>)
(<PUT-THING-IN-SLOT?>
<RTRUE>)
(<VERB? OPEN CLOSE LOOK-INSIDE>
<TELL "Only an authorized service representative of the ">
<FROBOZZ "Arcade Game">
<TELL " could do that." CR>
<RTRUE>)
(<BREAK-MACHINE?>
<RTRUE>)
(<VERB? PLAY>
<HOW?>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT VIDEO-SCREEN
(IN VIDEO-ARCADE)
(DESC "video screen")
(SYNONYM SCREEN GRID MAP MESSAGE)
(ADJECTIVE VIDEO FLASHING DIAMOND)
(FLAGS NDESCBIT READBIT)
(ACTION VIDEO-SCREEN-F)>
<ROUTINE VIDEO-SCREEN-F ()
<COND (<VERB? EXAMINE READ>
<SAY-THE ,VIDEO-SCREEN>
<COND (<OR <NOT ,SKEWED?>
<FSET? ,MACHINE ,RMUNGBIT>>
<TELL " is dark.">)
(T
<TELL " displays a map of">
<WHICH-TOWN "Village">
<TELL ". A grid divides the map into 13 squares">
<COND (<FSET? ,MACHINE ,TOOLBIT>
<TELL
", and a " D ,STAR " is centered over one of the squares">)
(T
<TELL ". The words \"Insert Token To Play\" are scrolling across the top of the screen">)>
<TELL "." CR CR>
<FIND-IN-PACKAGE "map">
<RTRUE>)>
<CRLF>
<RTRUE>)
(<BREAK-MACHINE?>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE BREAK-MACHINE? ()
<COND (<NOT <FSET? ,MACHINE ,RMUNGBIT>>
<COND (<AND <VERB? PUSH MOVE SHAKE>
<FSET? ,MACHINE ,TOOLBIT>>
<TELL "An electric alarm shrieks, \"Tilt!\"" CR>
<GAME-OVER>
<RTRUE>)
(<AND <VERB? THROW>
<EQUAL? ,PRSI ,MACHINE>>
<MOVE ,PRSO ,HERE>
<MUNG-MACHINE>
<RTRUE>)
(<HURT? ,MACHINE>
<MUNG-MACHINE>
<RTRUE>)
(T
<RFALSE>)>)
(T
<RFALSE>)>>
<ROUTINE MUNG-MACHINE ()
<FCLEAR ,MACHINE ,TOOLBIT>
<FSET ,MACHINE ,RMUNGBIT>
<TELL "A shower of sparks erupts from the back of the " D ,MACHINE
", and the " D ,VIDEO-SCREEN " goes black." CR>>
<OBJECT STAR
(IN VIDEO-ARCADE)
(DESC "blinking star")
(SYNONYM STAR CURSOR)
(ADJECTIVE BLINKING)
(FLAGS NDESCBIT READBIT)
(ACTION STAR-F)>
<ROUTINE STAR-F ()
<COND (<NOT <FSET? ,MACHINE ,TOOLBIT>>
<CANT-SEE-ANY>
<RFATAL>)
(<VERB? EXAMINE READ>
<SAY-THE ,STAR>
<TELL " is now centered over square "
<GET ,H-NAMES ,HORZ> "-" N ,VERT " on the map." CR>
<RTRUE>)
(<VERB? MOVE PULL PUSH>
<HOW?>
<RTRUE>)
(<VERB? PUSH-TO>
<TELL "(with the " D ,JOYSTICK ")" CR>
<PERFORM ,V?PUSH-TO ,JOYSTICK ,PRSI>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL H-NAMES <PLTABLE "A" "B" "C" "D" "E">>
<OBJECT SLOT
(IN VIDEO-ARCADE)
(DESC "slot")
(SYNONYM SLOT)
(ADJECTIVE NARROW)
(FLAGS NDESCBIT CONTBIT OPENBIT READBIT)
(CAPACITY 1)
(ACTION SLOT-F)>
<ROUTINE SLOT-F ()
<COND (<VERB? EXAMINE READ LOOK-ON>
<TELL "The narrow slot is marked \"Tokens Only!\"" CR>
<RTRUE>)
(<OR <PUT-THING-IN-SLOT?>
<BREAK-MACHINE?>>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<VERB? LOOK-INSIDE LOOK-BEHIND>
<TOO-DARK>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE PUT-THING-IN-SLOT? ()
<COND (<OR <VERB? REACH-IN>
<AND <VERB? PUT>
<NOT <EQUAL? ,PRSO ,TOKEN>>>>
<SAY-THE ,SLOT>
<TELL " is too narrow." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT JOYSTICK
(IN VIDEO-ARCADE)
(DESC "joystick")
(SYNONYM JOYSTICK STICK)
(ADJECTIVE JOY CONTROL)
(FLAGS NDESCBIT ; TRYTAKEBIT)
(ACTION JOYSTICK-F)>
<GLOBAL VERT 3>
<GLOBAL HORZ 5>
<ROUTINE JOYSTICK-F ()
<COND (<AND <VERB? PUSH-TO>
<EQUAL? ,PRSI ,INTDIR>>
<COND (<NOT <FSET? ,MACHINE ,TOOLBIT>>
<NOTHING-EXCITING>)
(<EQUAL? ,P-DIRECTION ,P?NORTH ,P?UP>
<COND (<OR <EQUAL? ,HORZ 1 5>
<EQUAL? ,VERT 1>
<AND <EQUAL? ,HORZ 2 4>
<EQUAL? ,VERT 2>>>
<JOYBUZZ>)
(T
<SETG VERT <- ,VERT 1>>
<MOVE-STAR "upward">)>)
(<EQUAL? ,P-DIRECTION ,P?SOUTH ,P?DOWN>
<COND (<OR <EQUAL? ,HORZ 1 5>
<EQUAL? ,VERT 5>
<AND <EQUAL? ,HORZ 2 4>
<EQUAL? ,VERT 4>>>
<JOYBUZZ>)
(T
<SETG VERT <+ ,VERT 1>>
<MOVE-STAR "downward">)>)
(<EQUAL? ,P-DIRECTION ,P?EAST>
<COND (<OR <EQUAL? ,VERT 1 5>
<EQUAL? ,HORZ 5>
<AND <EQUAL? ,VERT 2 4>
<EQUAL? ,HORZ 4>>>
<JOYBUZZ>)
(T
<SETG HORZ <+ ,HORZ 1>>
<MOVE-STAR "to the right">)>)
(<EQUAL? ,P-DIRECTION ,P?WEST>
<COND (<OR <EQUAL? ,VERT 1 5>
<EQUAL? ,HORZ 1>
<AND <EQUAL? ,VERT 2 4>
<EQUAL? ,HORZ 2>>>
<JOYBUZZ>)
(T
<SETG HORZ <- ,HORZ 1>>
<MOVE-STAR "to the left">)>)
(T
<RFALSE>)>
<RTRUE>)
(<VERB? EXAMINE>
<SAY-THE ,JOYSTICK>
<TELL
" can be moved north, south, east or west." CR>
<RTRUE>)
(<VERB? PUSH MOVE PULL USE PLAY>
<TELL "(To use the " D ,JOYSTICK ", you must indicate a compass direction as well as an action. For example, try MOVE THE JOYSTICK TO THE WEST or PUSH STICK NORTH.)" CR>
<RFATAL>)
(<BREAK-MACHINE?>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE JOYBUZZ ()
<TELL "Buzz! A synthetic voice growls, \"Keep the " D ,STAR
" inside the grid!\"" CR>>
<ROUTINE MOVE-STAR (STR)
<TELL "Bing! You moved the " D ,STAR " one square " .STR "." CR>>
<OBJECT BUTTON
(IN VIDEO-ARCADE)
(DESC "big red button")
(SYNONYM BUTTON SWITCH)
(ADJECTIVE BIG RED LARGE CRIMSON)
(FLAGS NDESCBIT)
(ACTION BUTTON-F)>
<ROUTINE BUTTON-F ()
<COND (<VERB? PUSH>
<COND (<NOT <EQUAL? ,HERE ,VIDEO-ARCADE>>
<CANT-SEE-ANY ,BUTTON>
<RTRUE>)>
<SAY-SURE>
<TELL "push the " D ,BUTTON "?">
<COND (<YES?>
<CRLF>
<COND (,SKEWED?
<SAY-THE ,HUMANOIDS>
<TELL " in the " D ,ARCADE " "
<PICK-ONE ,POSSIBILITIES>
" as " D ,HANDS " touches the ">
<COND (<FSET? ,MACHINE ,TOOLBIT>
<TELL "flashing ">)>
<TELL "button. This might be a trap">)
(T
<TELL "You don't know what this "
D ,MACHINE " might do">)>
<TELL "! You don't really want to press that "
D ,BUTTON ", do you?">
<COND (<YES?>
<PRESS-BUTTON>
<RTRUE>)>)>
<THAT-WAS-CLOSE>
<RTRUE>)
(<AND <VERB? EXAMINE>
<FSET? ,MACHINE ,TOOLBIT>>
<TELL "It's flashing on and off rapidly." CR>
<RTRUE>)
(<BREAK-MACHINE?>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL POSSIBILITIES
<LTABLE 0
"snicker behind your back"
"watch you carefully"
"hold their breath">>
<ROUTINE PRESS-BUTTON ("AUX" WHERE)
<TELL CR "(">
<COND (<FSET? ,MACHINE ,TOOLBIT>
<SET WHERE <GET <GET ,DESTINATIONS ,HORZ> ,VERT>>
<ENABLE <QUEUE I-SMOKE -1>>
<TELL "Hope you saved your story position.)|
|
A sudden power drain makes all the other games in the " D ,ARCADE " go dim. Blue sheets of energy leap from the " D ,MACHINE ", surrounding you in an incandescent aura.">
<COND (<NOT <EQUAL? .WHERE ,VIDEO-ARCADE>>
<COND (<EQUAL? .WHERE ,INSIDE-GRAVE>
<MOVE-ALL ,OPEN-GRAVE ,INSIDE-GRAVE>)>
<MOVE ,PROTAGONIST .WHERE>
<SETG HERE .WHERE>
<TELL " You can feel your molecules being taken apart one at a time, analyzed, modulated and broadcast through space. It is not a pleasant sensation.">
<CARRIAGE-RETURNS>
<V-LOOK>)
(T ; "Handle the dummy corner"
<CRLF>
<CRLF>
<MUNG-MACHINE>)>
<GAME-OVER>
<COND (<EQUAL? .WHERE ,HILLTOP>
<CRLF>
<UPDATE-SCORE 5>)>)
(T
<TELL ,OKAY "just testing you.)" CR CR>
<NOTHING-EXCITING>)>>
<ROUTINE GAME-OVER ()
<FCLEAR ,MACHINE ,TOOLBIT>
<TELL CR
"A synthetic voice says, \"Game Over. Insert Token To Play Again.\"" CR>>
<OBJECT TOKEN
(DESC "brass token")
(SYNONYM TOKEN)
(ADJECTIVE BRASS)
(FLAGS NDESCBIT TAKEBIT READBIT)
(VALUE 3)
(SIZE 1)
(ACTION TOKEN-F)>
<ROUTINE TOKEN-F ()
<COND (<VERB? EXAMINE READ>
<TELL
"The words \"Good For One Play\" are etched into the " D ,TOKEN "." CR>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,MACHINE ,SLOT>>
<REMOVE ,TOKEN>
<SAY-THE ,TOKEN>
<TELL " disappears into the slot">
<COND (<FSET? ,MACHINE ,RMUNGBIT>
<TELL ", but the broken " D ,MACHINE
" doesn't respond." CR>)
(T
<FSET ,MACHINE ,TOOLBIT>
<TELL ".|
|
Ding! You hear a pleasant electric chime, and a " D ,STAR
" appears on the " D ,VIDEO-SCREEN "." CR CR>
<UPDATE-SCORE 1>
<GOOD-PLACE-TO-SAVE>)>
<RTRUE>)
(T
<RFALSE>)>>
"*** TIDAL POOL ***"
<OBJECT TIDAL-POOL
(IN ROOMS)
(DESC "Tidal Pool")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY SAND)
(NORTH TO FESTERON-POINT)
(EAST PER PROBABLY-DROWN)
(SOUTH TO PLEASURE-WHARF)
(WEST "There's nothing but sand that way.")
(DOWN "There's nothing but sand that way.")
(ACTION TIDAL-POOL-F)>
<ROUTINE TIDAL-POOL-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're on a damp stretch of sand that extends north towards Festeron Point, and south to the " D ,PLEASURE-WHARF "." CR>)>>
<OBJECT CONCH-SHELL
(IN TIDAL-POOL)
(DESC "conch shell")
(FDESC "A large conch shell is lying in the sand at your feet.")
(SYNONYM SHELL)
(ADJECTIVE CONCH ADVICE)
(FLAGS TAKEBIT CONTBIT OPENBIT RMUNGBIT)
(ACTION CONCH-SHELL-F)
(CAPACITY 1)
(SIZE 5)
(VALUE 0)>
<ROUTINE CONCH-SHELL-F ()
<COND (<VERB? LISTEN>
<COND (<DONT-HAVE? ,CONCH-SHELL>
<RTRUE>)>
<COND (<AND <NOT ,WOMAN-SEEN-ENVELOPE?>
<FSET? ,CONCH-SHELL ,RMUNGBIT>>
<FCLEAR ,CONCH-SHELL ,RMUNGBIT>
<TINY-VOICE>
<TELL " that sounds just like">
<BOSS>
<TELL ", " <PICK-ONE ,YELL-TYPES> ", \"">
<COND (<HELD? ,ENVELOPE>
<TELL "Don't just stand there! DELIVER">)
(T
<TELL "You " <PICK-ONE ,INSULTS>>)>
<TELL "!\"">)
(<AND <ENABLED? ,I-SHELL-TALK>
<L? ,SHELL-SCRIPT 5>>
<FCLEAR ,CONCH-SHELL ,RMUNGBIT>
<SETG SHELL-SCRIPT 1>
<TINY-VOICE>
<TELL " says, \"" <GET ,WISE-SAYINGS ,WISDOM> ".\"">)
(T
<TELL ,YOU-HEAR "the rush of ocean surf.">)>
<CRLF>
<RTRUE>)
(<VERB? BLOW-INTO>
<COND (<DONT-HAVE? ,CONCH-SHELL>
<RTRUE>)>
<SAY-THE ,CONCH-SHELL>
<TELL " makes an embarrassing sound." CR>
<RTRUE>)
(<VERB? SHAKE LOOK-INSIDE>
<COND (<DONT-HAVE? ,CONCH-SHELL>
<RTRUE>)>
<TELL "A few grains of sand fall out." CR>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,CONCH-SHELL>>
<COND (<G? <GETP ,PRSO ,P?SIZE> 1>
<TOO-LARGE ,PRSO>)
(T
<TELL "It immediately drops out">
<AND-DROPS-OUT ,PRSO>)>
<RTRUE>)
(<VERB? EXAMINE>
<SAY-THE ,CONCH-SHELL>
<TELL " is smooth and shiny. It">
<TV-SET>
<TELL "." CR>
<RTRUE>)
(<AND <VERB? TAKE>
<EQUAL? ,PRSO ,CONCH-SHELL>>
<COND (<AND <V-TAKE>
<IN? ,WISHBRINGER ,PROTAGONIST>
<FSET? ,ADVICE ,TOUCHBIT>>
<START-BUZZ>)>
<RTRUE>)
(<VERB? CLOSE OPEN>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<HURT? ,CONCH-SHELL>
<RUIN ,CONCH-SHELL>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE TV-SET ("OPTIONAL" (MY? <>))
<TELL "'ll look great on ">
<COND (.MY?
<TELL "my">)
(T
<TELL "your">)>
<TELL " TV set back home">>
<ROUTINE TINY-VOICE ()
<TELL "A tiny voice in the " D ,CONCH-SHELL>>
<GLOBAL WISDOM 1>
<GLOBAL WISE-SAYINGS
<PTABLE 0
; (0) ; "Get thee to yonder Tower, for therein lies thy Fate"
; (1) "If ye hath not kept a Map, only patience or Magick can help thee"
; (2) "Magick may help thee cross the Bridge"
; (3) "Release a prisoner, and be Rewarded"
; (4) "Learn the Word of Power, else never gain the Tower"
; (5) "One path Magick, one path Science; both lead to thy Goal"
; (6) "Many wonders await thee in the Halls of Knowledge"
; (7) "Fit the pieces together, and the Puzzle is complete">>
<ROUTINE START-BUZZ ("OPTIONAL" (SAYING <>))
<COND (.SAYING
<SETG WISDOM .SAYING>)>
<COND (<AND <FSET? ,ADVICE ,TOUCHBIT>
<IN? ,CONCH-SHELL ,PROTAGONIST>
<IN? ,WISHBRINGER ,PROTAGONIST>
<NOT <ENABLED? ,I-SHELL-TALK>>>
<SETG SHELL-SCRIPT 7>
<ENABLE <QUEUE I-SHELL-TALK -1>>)>>
<OBJECT SAND
(IN LOCAL-GLOBALS)
(DESC "sand")
(SYNONYM SAND BEACH BANK)
(FLAGS TRYTAKEBIT NDESCBIT)
(ACTION SAND-F)
(VALUE 0)>
<ROUTINE SAND-F ()
<COND (<VERB? SEARCH EXAMINE DIG LOOK-UNDER LOOK-INSIDE LOOK-ON>
<NOTHING-INTERESTING>
<RTRUE>)
(<VERB? TAKE>
<SAY-THE ,SAND>
<TELL " slips away between your fingers." CR>
<RTRUE>)
(<VERB? FOLLOW WALK-TO CROSS THROUGH ENTER EXIT>
<COND (<EQUAL? ,HERE ,PLEASURE-WHARF>
<DO-WALK ,P?NORTH>)
(<EQUAL? ,HERE ,FESTERON-POINT>
<DO-WALK ,P?SOUTH>)
(T
<V-WALK-AROUND>)>
<RTRUE>)
(<AND <VERB? PUT PUT-ON THROW>
<EQUAL? ,PRSI ,SAND>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<VERB? KICK>
<RFALSE>)
(T
<YOU-DONT-NEED ,SAND>
<RFATAL>)>>
"*** OUTSIDE LIGHTHOUSE ***"
<OBJECT FESTERON-POINT
(IN ROOMS)
(DESC "Lighthouse")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY RIVER SAND)
(NORTH PER PROBABLY-DROWN-IN-RIVER)
(EAST PER PROBABLY-DROWN)
(SOUTH PER ENTER-POOL?)
(WEST TO ROCKY-PATH)
(ACTION FESTERON-POINT-F)>
<ROUTINE FESTERON-POINT-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This is where the river empties into">
<WHICH-TOWN "Bay">
<TELL ". A">
<COND (<NOT ,SKEWED?>
<TELL
" beach follows the shore of the bay " <TO-S> ", and a">)>
<TELL " path leads west along the riverbank.|
|
A ">
<COND (,SKEWED?
<TELL "broken-down old ">)
(T
<TELL "miniature ">)>
<TELL D ,LIGHTHOUSE
", barely ten feet high, stands ">
<COND (<NOT ,SKEWED?>
<TELL "blinking ">)>
<TELL "on the shore nearby." CR>
<COND (<IN? ,PELICAN ,FESTERON-POINT>
<CRLF>
<NOTE-PELICAN>)>)>>
<ROUTINE NOTE-PELICAN ()
<TELL "Perched on top of the " D ,LIGHTHOUSE
" is a " D ,PELICAN ", ">
<COND (<IN? ,HAT ,PELICAN>
<A-WIZARDS-HAT>)
(T
<TELL "watching you through half-closed eyelids.">)>
<CRLF>>
<ROUTINE A-WIZARDS-HAT ()
<TELL "a " D ,HAT " balanced on its head." CR>>
<OBJECT LIGHTHOUSE
(IN FESTERON-POINT)
(DESC "lighthouse")
(SYNONYM LIGHTHOUSE HOUSE BEACON)
(ADJECTIVE MINIATURE MINI AUTOMATIC AUTO BROKEN)
(FLAGS SURFACEBIT NDESCBIT)
(ACTION LIGHTHOUSE-F)
(CAPACITY 10)>
<ROUTINE LIGHTHOUSE-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL "It's really just an automated beacon, erected by the town to impress tourists. ">
<NO-ENTRIES>
<COND (<IN? ,PELICAN ,FESTERON-POINT>
<CRLF>
<NOTE-PELICAN>)>
<RTRUE>)
(<AND <VERB? LOOK-ON>
<IN? ,PELICAN ,FESTERON-POINT>>
<NOTE-PELICAN>
<RTRUE>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,LIGHTHOUSE>>
<COND (<NOT <IN? ,PELICAN ,FESTERON-POINT>>
<MOVE ,PRSO ,FESTERON-POINT>
<TELL "It slides off the " D ,LIGHTHOUSE
" and lands at your feet." CR>)
(<OR <EQUAL? ,PRSO ,DHORSE ,WORM ,HAT>
<EQUAL? ,PRSO ,WISHBRINGER ,CHOCOLATE ,MILK>>
<PERFORM ,V?GIVE ,PRSO ,PELICAN>)
(T
<MOVE ,PRSO ,FESTERON-POINT>
<SAY-THE ,PELICAN>
<TELL " pushes ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO " off the " D ,LIGHTHOUSE
" with its beak and glares at you." CR>)>
<RTRUE>)
(<AND <VERB? WALK-TO ENTER THROUGH PUT>
<EQUAL? ,PRSO ,LIGHTHOUSE>>
<NO-ENTRIES>
<RTRUE>)
(<VERB? SIT LIE-DOWN STAND-ON CLIMB-ON CLIMB-UP>
<COND (<IN? ,PELICAN ,FESTERON-POINT>
<THIS-IS-IT ,PELICAN>
<SAY-THE ,PELICAN>
<TELL " rudely nudges you off with its foot">)
(T
<TELL "There isn't enough room">)>
<TELL "." CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE NO-ENTRIES ()
<TELL "There aren't any " D ,ENTRANCE "s or openings." CR>>