mirror of
https://github.com/historicalsource/zorkzero
synced 2024-04-26 22:29:29 +03:00
2231 lines
64 KiB
Plaintext
2231 lines
64 KiB
Plaintext
"LAKE for
|
|
|
|
ZORK ZERO
|
|
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
|
|
|
|
<BEGIN-SEGMENT LAKE>
|
|
|
|
<ROOM WEST-SHORE
|
|
(LOC ROOMS)
|
|
(DESC "West Shore")
|
|
(REGION "Flatheadia")
|
|
(EAST SORRY "These waters are known for their hungry denizens.")
|
|
(WEST TO ROYAL-ZOO)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD STAIRS)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-3>)
|
|
(ICON WEST-SHORE-ICON)
|
|
(ACTION WEST-SHORE-F)>
|
|
|
|
<ROUTINE WEST-SHORE-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"What's a castle without a lake? Dimwit loved lakes, but hated to go outside,
|
|
so he had one constructed in his extensive cellars. Once a lovely lake, teeming
|
|
with life, its waters have grown stagnant. The scummy surface stretches off to
|
|
the east, and a tunnel leads west.">)>>
|
|
|
|
<OBJECT WEST-DOCK
|
|
(LOC WEST-SHORE)
|
|
(DESC "yellow dock")
|
|
(SYNONYM DOCK)
|
|
(ADJECTIVE YELLOW WEST)
|
|
(CAPACITY 200)
|
|
(FLAGS NDESCBIT VEHBIT DROPBIT OPENBIT SEARCHBIT CONTBIT SURFACEBIT)
|
|
(ACTION DOCK-F)>
|
|
|
|
<ROOM NORTH-SHORE
|
|
(LOC ROOMS)
|
|
(DESC "North Shore")
|
|
(REGION "Flatheadia")
|
|
(SOUTH SORRY "These waters are known for their hungry denizens.")
|
|
(NORTH TO PHIL-HALL)
|
|
(NE TO THEATRE)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD STAIRS)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-4>)
|
|
(ICON NORTH-SHORE-ICON)
|
|
(ACTION NORTH-SHORE-F)>
|
|
|
|
<ROUTINE NORTH-SHORE-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"Stretching off to the south is an impressive sight: a large lake, completely
|
|
contained within the castle. A red dock protrudes into the lake">
|
|
<COND (<IN? ,YACHT ,HERE>
|
|
<TELL ,YACHT-MOORED>)>
|
|
<TELL ". Tunnels lead north and northeast.">)>>
|
|
|
|
<OBJECT NORTH-DOCK
|
|
(LOC NORTH-SHORE)
|
|
(DESC "red dock")
|
|
(SYNONYM DOCK)
|
|
(ADJECTIVE RED NORTH)
|
|
(CAPACITY 200)
|
|
(FLAGS NDESCBIT VEHBIT DROPBIT OPENBIT SEARCHBIT CONTBIT SURFACEBIT)
|
|
(ACTION DOCK-F)>
|
|
|
|
<ROOM EAST-SHORE
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "East Shore")
|
|
(WEST SORRY "These waters are known for their hungry denizens.")
|
|
(EAST TO BASE-OF-MOUNTAIN)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD STAIRS G-U-MOUNTAIN)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-5>)
|
|
(ICON EAST-SHORE-ICON)
|
|
(ACTION EAST-SHORE-F)>
|
|
|
|
<ROUTINE EAST-SHORE-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"A narrow beach lies between the lake, to the west, and a tall mountain,
|
|
to the east. It's hard to remember that you're still within the castle.
|
|
A blue dock juts out into the lake">
|
|
<COND (<IN? ,YACHT ,HERE>
|
|
<TELL ,YACHT-MOORED>)>
|
|
<TELL ".">)>>
|
|
|
|
<OBJECT EAST-DOCK
|
|
(LOC EAST-SHORE)
|
|
(DESC "blue dock")
|
|
(SYNONYM DOCK)
|
|
(ADJECTIVE BLUE EAST)
|
|
(CAPACITY 200)
|
|
(FLAGS NDESCBIT VEHBIT DROPBIT OPENBIT SEARCHBIT CONTBIT SURFACEBIT)
|
|
(ACTION DOCK-F)>
|
|
|
|
<ROOM SOUTH-SHORE
|
|
(LOC ROOMS)
|
|
(DESC "South Shore")
|
|
(REGION "Flatheadia")
|
|
(NORTH SORRY "These waters are known for their hungry denizens.")
|
|
(SOUTH TO EDGE-OF-DESERT)
|
|
(WEST TO STREAM)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD STAIRS)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-4>)
|
|
(ICON SOUTH-SHORE-ICON)
|
|
(ACTION SOUTH-SHORE-F)>
|
|
|
|
<ROUTINE SOUTH-SHORE-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"The sandy beach on the south side of the lake is very wide -- in fact, it
|
|
simply blends into a wide desert to the south. To the north, a green dock
|
|
extends into the lake">
|
|
<COND (<IN? ,YACHT ,HERE>
|
|
<TELL ,YACHT-MOORED>)>
|
|
<TELL ". The shore curves around toward the west.">)
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
<IN? ,PROTAGONIST ,CAMEL>
|
|
<NOT <FSET? ,CAMEL ,TOUCHBIT>>
|
|
,CAMEL-THIRSTY>
|
|
<FSET ,CAMEL ,TOUCHBIT>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
" The camel takes one look at the scummy water and wheezes mournfully through
|
|
parched lips." CR>)>>
|
|
|
|
<OBJECT SOUTH-DOCK
|
|
(LOC SOUTH-SHORE)
|
|
(DESC "green dock")
|
|
(SYNONYM DOCK)
|
|
(ADJECTIVE GREEN SOUTH)
|
|
(CAPACITY 200)
|
|
(FLAGS NDESCBIT VEHBIT DROPBIT OPENBIT SEARCHBIT CONTBIT SURFACEBIT)
|
|
(ACTION DOCK-F)>
|
|
|
|
<ROUTINE DOCK-F ("OPTIONAL" (VARG <>))
|
|
<COND (<AND <VERB? ENTER>
|
|
<IN? ,BEDBUG ,HERE>
|
|
<NOT ,TIME-STOPPED>>
|
|
<DO-WALK ,P?NORTH>)>>
|
|
|
|
<OBJECT YACHT
|
|
(LOC WEST-SHORE)
|
|
(DESC "royal yacht")
|
|
(LDESC
|
|
"The royal yacht sits by the dock, bobbing gently in the swell of the lake.")
|
|
(SYNONYM YACHT BOAT)
|
|
(ADJECTIVE ROYAL)
|
|
(CAPACITY 200)
|
|
(FLAGS VEHBIT DROPBIT OPENBIT SEARCHBIT CONTBIT SURFACEBIT)
|
|
(ACTION YACHT-F)>
|
|
|
|
<ROUTINE YACHT-F ("OPTIONAL" (VARG <>))
|
|
<COND (.VARG
|
|
<COND (<NOT <EQUAL? .VARG ,M-ENTER>>
|
|
<RFALSE>)
|
|
(<FSET? ,PRSO ,TOUCHBIT>
|
|
<SETG COMPASS-CHANGED T>
|
|
<RFALSE>)
|
|
(T
|
|
<SETG COMPASS-CHANGED T>
|
|
<TELL
|
|
" The controls seem worthy of closer
|
|
examination. A gangway leads belowdecks." CR>)>)
|
|
(<AND <VERB? ENTER>
|
|
<IN? ,PROTAGONIST ,HERE>>
|
|
<TELL "You can only board the yacht from the dock." CR>)
|
|
(<VERB? EXIT>
|
|
<COND (<EQUAL? ,HERE ,LAKE-FLATHEAD>
|
|
<PERFORM ,V?ENTER ,LAKE-FLATHEAD>
|
|
<RTRUE>)>
|
|
<MOVE ,PROTAGONIST
|
|
<COND (<EQUAL? ,HERE ,WEST-SHORE> ,WEST-DOCK)
|
|
(<EQUAL? ,HERE ,NORTH-SHORE> ,NORTH-DOCK)
|
|
(<EQUAL? ,HERE ,EAST-SHORE> ,EAST-DOCK)
|
|
(T ,SOUTH-DOCK)>>
|
|
<SETG OLD-HERE <>>
|
|
<SETG COMPASS-CHANGED T>
|
|
<TELL "You step off the boat, onto the dock." CR>
|
|
<COND (<EQUAL? ,VERBOSITY 1>
|
|
<CRLF> <SAY-HERE> <CRLF>)
|
|
(<EQUAL? ,VERBOSITY 2>
|
|
<CRLF> <V-LOOK>)>
|
|
<RTRUE>)
|
|
(<VERB? SINK>
|
|
<SETG AWAITING-REPLY 1>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL "You have a torpedo, maybe?" CR>)
|
|
(<AND <VERB? SET>
|
|
<EQUAL? ,P-PRSA-WORD ,W?STEER>>
|
|
<TELL "There's no wheel." CR>)
|
|
(<AND <VERB? THROW-FROM>
|
|
<PRSI? ,YACHT>>
|
|
<PERFORM ,V?PUT ,PRSO ,WATER>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT YACHT-CONTROLS
|
|
(LOC YACHT)
|
|
(DESC "controls")
|
|
(SYNONYM CONTROL CONTROLS ROSE COMPASS)
|
|
(ADJECTIVE COMPASS)
|
|
(FLAGS NDESCBIT NARTICLEBIT PLURALBIT)
|
|
(ACTION YACHT-CONTROLS-F)>
|
|
|
|
<ROUTINE YACHT-CONTROLS-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The controls are quite simple, consisting of a small brass plaque and an
|
|
ornate compass rose. There are buttons on the four cardinal points of the
|
|
rose: a red button at the north point, blue at the east, green south, and
|
|
yellow west. A fifth button, white, is at the center of the rose." CR>)>>
|
|
|
|
<OBJECT YACHT-PLAQUE
|
|
(LOC YACHT)
|
|
(DESC "brass plaque")
|
|
(SYNONYM PLAQUE)
|
|
(ADJECTIVE SMALL BRASS)
|
|
(FLAGS READBIT NDESCBIT)
|
|
(TEXT "\"Made by the Frobozz Magic Royal Yacht Company.\"")>
|
|
|
|
<OBJECT RED-BUTTON
|
|
(LOC YACHT)
|
|
(DESC "red button")
|
|
(SYNONYM BUTTON)
|
|
(ADJECTIVE RED)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION YACHT-BUTTON-F)>
|
|
|
|
<OBJECT BLUE-BUTTON
|
|
(LOC YACHT)
|
|
(DESC "blue button")
|
|
(SYNONYM BUTTON)
|
|
(ADJECTIVE BLUE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION YACHT-BUTTON-F)>
|
|
|
|
<OBJECT GREEN-BUTTON
|
|
(LOC YACHT)
|
|
(DESC "green button")
|
|
(SYNONYM BUTTON)
|
|
(ADJECTIVE GREEN)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION YACHT-BUTTON-F)>
|
|
|
|
<OBJECT YELLOW-BUTTON
|
|
(LOC YACHT)
|
|
(DESC "yellow button")
|
|
(SYNONYM BUTTON)
|
|
(ADJECTIVE YELLOW)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION YACHT-BUTTON-F)>
|
|
|
|
<OBJECT WHITE-BUTTON
|
|
(LOC YACHT)
|
|
(DESC "white button")
|
|
(SYNONYM BUTTON)
|
|
(ADJECTIVE WHITE FIFTH CENTER MIDDLE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION YACHT-BUTTON-F)>
|
|
|
|
<ROUTINE YACHT-BUTTON-F ()
|
|
<COND (<VERB? PUSH>
|
|
<COND (<OR <FSET? ,OUTER-GATE ,OPENBIT>
|
|
,TIME-STOPPED>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(<NOT <FSET? ,SEAMANS-CAP ,WORNBIT>>
|
|
<TELL
|
|
"You meet an invisible resistance. A peal of laughter from behind turns out
|
|
to be the jester. \"The button may seem like a demon, telling landlubber from
|
|
seaman; but the truth's not so queer -- you need nautical gear!\"">
|
|
<J-EXITS>)
|
|
(<PRSO? ,WHITE-BUTTON>
|
|
<COND (<EQUAL? ,HERE ,LAKE-FLATHEAD>
|
|
<DEQUEUE I-YACHT>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(T
|
|
<SETG YACHT-DESTINATION ,LAKE-FLATHEAD>
|
|
<I-YACHT T>)>)
|
|
(<NOT <IN? ,DB ,HOLD>>
|
|
<TELL
|
|
"A message flashes: \"Warning -- diving bell lowered!\"" CR>)
|
|
(<PRSO? ,RED-BUTTON>
|
|
<COND (<EQUAL? ,HERE ,NORTH-SHORE>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(T
|
|
<SETG YACHT-DESTINATION ,NORTH-SHORE>
|
|
<I-YACHT T>)>)
|
|
(<PRSO? ,GREEN-BUTTON>
|
|
<COND (<EQUAL? ,HERE ,SOUTH-SHORE>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(T
|
|
<SETG YACHT-DESTINATION ,SOUTH-SHORE>
|
|
<I-YACHT T>)>)
|
|
(<PRSO? ,BLUE-BUTTON>
|
|
<COND (<EQUAL? ,HERE ,EAST-SHORE>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(T
|
|
<SETG YACHT-DESTINATION ,EAST-SHORE>
|
|
<I-YACHT T>)>)
|
|
(T
|
|
<COND (<EQUAL? ,HERE ,WEST-SHORE>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(T
|
|
<SETG YACHT-DESTINATION ,WEST-SHORE>
|
|
<I-YACHT T>)>)>
|
|
<RTRUE>)>>
|
|
|
|
<GLOBAL YACHT-DESTINATION <>>
|
|
|
|
<ROUTINE I-YACHT ("OPTIONAL" (CALLED-BY-BUTTON-F <>))
|
|
<COND (.CALLED-BY-BUTTON-F
|
|
<QUEUE I-YACHT 2>
|
|
<COND (<AND <EQUAL? ,HERE ,LAKE-FLATHEAD>
|
|
<NOT <EQUAL? ,YACHT-DESTINATION ,LAKE-FLATHEAD>>>
|
|
<TELL
|
|
"The boat heads for the " D ,YACHT-DESTINATION ,PERIOD-CR>)
|
|
(T
|
|
<TELL
|
|
"The yacht moves away from the dock, toward the middle of the lake." CR CR>)>)>
|
|
<COND (<IN? ,YACHT ,LAKE-FLATHEAD>
|
|
<MOVE ,YACHT ,YACHT-DESTINATION>
|
|
<RETURN-FROM-MAP>
|
|
<COND (<IN? ,PROTAGONIST ,YACHT> ;"not in Hold"
|
|
<TELL
|
|
" The yacht reaches the " D ,YACHT-DESTINATION " and docks magically." CR CR>
|
|
<GOTO ,YACHT>)>)
|
|
(T
|
|
<MOVE ,YACHT ,LAKE-FLATHEAD>
|
|
<COND (<IN? ,PROTAGONIST ,YACHT> ;"not in Hold"
|
|
<RETURN-FROM-MAP>
|
|
<GOTO ,YACHT>
|
|
<TELL " The boat reaches the middle of the lake">
|
|
<COND (<EQUAL? ,YACHT-DESTINATION ,LAKE-FLATHEAD>
|
|
<TELL ", slows, and stops">)
|
|
(T
|
|
<TELL
|
|
" and heads straight for the dock on the " D ,YACHT-DESTINATION>)>
|
|
<TELL ,PERIOD-CR>)>)>
|
|
<COND (<IN? ,YACHT ,YACHT-DESTINATION>
|
|
<DEQUEUE I-YACHT>)>
|
|
<RTRUE>>
|
|
|
|
<ROOM HOLD
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Hold")
|
|
(LDESC
|
|
"You are in a cabin under the deck of the royal yacht. A steep gangway leads
|
|
upward.")
|
|
(UP PER YACHT-ENTER-F)
|
|
(IN PER DB-ENTER-F)
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(GLOBAL STAIRS)
|
|
(SYNONYM HOLD)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-1>)
|
|
(ICON HOLD-ICON)>
|
|
|
|
<ROUTINE YACHT-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (.RARG
|
|
<RFALSE>)>
|
|
<GOTO ,YACHT>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE DB-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (.RARG
|
|
<RFALSE>)
|
|
(<FSET? ,DB ,OPENBIT>
|
|
<PERFORM ,V?ENTER ,DB>)
|
|
(T
|
|
<RETURN-FROM-MAP>
|
|
<THIS-IS-IT ,DB>
|
|
<DO-FIRST "open the bathysphere">)>
|
|
<RFALSE>>
|
|
|
|
<OBJECT DB
|
|
(LOC HOLD)
|
|
(DESC "bathysphere")
|
|
(SYNONYM SPHERE BATHYSPHERE DOOR HATCH BELL)
|
|
(ADJECTIVE DIVING)
|
|
(CAPACITY 200)
|
|
(FLAGS VEHBIT INBIT DROPBIT CONTBIT SEARCHBIT TRANSBIT)
|
|
(ACTION DB-F)>
|
|
|
|
<GLOBAL DB-CONTROLS-DESCRIBED <>>
|
|
|
|
<ROUTINE DB-F ("OPTIONAL" (VARG <>))
|
|
<COND (<AND .VARG
|
|
<NOT <EQUAL? .VARG ,M-ENTER>>>
|
|
<RFALSE>)
|
|
(.VARG
|
|
<COND (,DB-CONTROLS-DESCRIBED
|
|
<RFALSE>)
|
|
(T
|
|
<SETG DB-CONTROLS-DESCRIBED T>
|
|
<TELL " ">
|
|
<PERFORM ,V?EXAMINE ,DB>
|
|
<RTRUE>)>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<IN? ,PROTAGONIST ,DB>
|
|
<TELL "This is a cramped diving bell. The door is ">
|
|
<OPEN-CLOSED ,DB>
|
|
<TELL
|
|
". A brass plaque is mounted next to a small porthole. You may want to
|
|
examine the controls." CR>)
|
|
(T
|
|
<TELL "The diving bell is ">
|
|
<OPEN-CLOSED ,DB>
|
|
<TELL
|
|
". Mounted on the outside of it is a claw-like waldo." CR>)>)
|
|
(<AND <VERB? ENTER>
|
|
<NOT <IN? ,PROTAGONIST ,DB>>
|
|
<NOT <FSET? ,DB ,OPENBIT>>>
|
|
<DO-WALK ,P?IN>)
|
|
(<AND <VERB? EXIT>
|
|
<IN? ,PROTAGONIST ,DB>>
|
|
<COND (,HAND-IN-WALDO
|
|
<DO-FIRST "remove your hand from the waldo">)
|
|
(<NOT <FSET? ,DB ,OPENBIT>>
|
|
<THIS-IS-IT ,DB>
|
|
<DO-FIRST "open the bathysphere">)
|
|
(<IN? ,RUBY ,WALDO>
|
|
<FCLEAR ,RUBY ,TRYTAKEBIT>
|
|
<RFALSE>)>)
|
|
(<VERB? RAISE LOWER>
|
|
<COND (<IN? ,PROTAGONIST ,DB>
|
|
<TELL ,YOULL-HAVE-TO "use the controls." CR>)
|
|
(T
|
|
<TELL "You can't do that from out here." CR>)>)
|
|
(<AND <VERB? OPEN>
|
|
<NOT <EQUAL? ,HERE ,HOLD>>>
|
|
<JIGS-UP "Having thus flooded the bathysphere, you drown.">)>>
|
|
|
|
<OBJECT DB-CONTROLS
|
|
(LOC DB)
|
|
(DESC "controls")
|
|
(SYNONYM CONTROL CONTROLS)
|
|
(FLAGS NDESCBIT NARTICLEBIT PLURALBIT)
|
|
(GENERIC G-DB-HOLE-F)
|
|
(ACTION DB-CONTROLS-F)>
|
|
|
|
<ROUTINE DB-CONTROLS-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The controls seem simple enough: an up-down lever, an exterior light,
|
|
and a hand-hole for controlling the exterior waldo." CR>)>>
|
|
|
|
<OBJECT DB-PLAQUE
|
|
(LOC DB)
|
|
(DESC "brass plaque")
|
|
(SYNONYM PLAQUE)
|
|
(ADJECTIVE SMALL BRASS)
|
|
(FLAGS READBIT NDESCBIT)
|
|
(TEXT
|
|
"\"A product of the Frobozz Magic Bathysphere Company, designed by
|
|
Jacques Yves Flathead.\"")>
|
|
|
|
<ROUTINE G-DB-HOLE-F (TBL F)
|
|
<COND (<EQUAL? <FIND-NOUN .F> ,W?CONTROL>
|
|
;"confusion is between hand-hole and controls"
|
|
,DB-CONTROLS)
|
|
(T ;"confusion is between hand-hole and porthole"
|
|
,HAND-HOLE)>>
|
|
|
|
<OBJECT PORTHOLE
|
|
(LOC DB)
|
|
(DESC "porthole")
|
|
(SYNONYM PORTHOLE PORT HOLE)
|
|
(ADJECTIVE PORT)
|
|
(FLAGS NDESCBIT)
|
|
(GENERIC G-DB-HOLE-F)
|
|
(ACTION PORTHOLE-F)>
|
|
|
|
<ROUTINE PORTHOLE-F ()
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<V-LOOK>)>>
|
|
|
|
<OBJECT RUBY
|
|
(LOC LAKE-BOTTOM)
|
|
(DESC "moby ruby")
|
|
(PLURAL "rubies")
|
|
(FDESC "A ruby of incredible size and beauty is buried in the sand.")
|
|
(SYNONYM RUBY JEWEL)
|
|
(ADJECTIVE RED MOBY LARGE BEAUTIFUL)
|
|
(FLAGS TRYTAKEBIT TAKEBIT READBIT)
|
|
(VALUE 25)
|
|
(SIZE 3)
|
|
(TEXT "This ruby must surely be the largest jewel in the land.")>
|
|
|
|
<OBJECT EXTERIOR-LIGHT
|
|
(LOC DB)
|
|
(DESC "exterior light")
|
|
(SYNONYM LIGHT LIGHTS)
|
|
(ADJECTIVE EXTERIOR)
|
|
(FLAGS LIGHTBIT NDESCBIT VOWELBIT)>
|
|
|
|
<OBJECT WALDO
|
|
(LOC HOLD)
|
|
(DESC "waldo")
|
|
(SYNONYM WALDO)
|
|
(ADJECTIVE EXTERIOR)
|
|
(FLAGS NDESCBIT CONTBIT SEARCHBIT OPENBIT)
|
|
(ACTION WALDO-F)>
|
|
|
|
<ROUTINE WALDO-F ()
|
|
<COND (<AND <NOT <FSET? ,EXTERIOR-LIGHT ,ONBIT>>
|
|
<NOT <EQUAL? ,HERE ,HOLD>>
|
|
<HANDLE ,WALDO>>
|
|
<CANT-SEE ,WALDO>)
|
|
(<AND <VERB? REACH-IN>
|
|
<IN? ,PROTAGONIST ,DB>>
|
|
<PERFORM ,V?REACH-IN ,HAND-HOLE>
|
|
<RTRUE>)
|
|
(<VERB? DROP> ;"IDROP lets it pass if your hand is in the hole"
|
|
<TELL
|
|
"Although you can manipulate the waldo, you aren't holding it. [If you want
|
|
to remove your hand, try REMOVE HAND.]" CR>)
|
|
(<VERB? PUT>
|
|
<MOVE ,PRSO ,HERE>
|
|
<TELL
|
|
,YOU-CANT "budge the waldo's claw, so" T ,PRSO " falls right out." CR>)
|
|
(<VERB? OPEN CLOSE>
|
|
<COND (,HAND-IN-WALDO
|
|
<COND (<FIRST? ,WALDO>
|
|
<COND (<VERB? OPEN>
|
|
<PERFORM ,V?DROP <FIRST? ,WALDO>>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"The waldo IS closed! It's holding" AR <FIRST? ,WALDO>>)>)
|
|
(T
|
|
<TELL
|
|
"The claws of the waldo open and close." CR>)>)
|
|
(T
|
|
<TELL "The claws of the waldo won't budge." CR>)>)
|
|
(<AND <VERB? TAKE-WITH>
|
|
<PRSI? ,WALDO>>
|
|
<COND (<PRSO? ,DB ,WALDO>
|
|
<IMPOSSIBLES>)
|
|
(,HAND-IN-WALDO
|
|
<SETG PRSI <>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "Your hand isn't in the hand-hole!" CR>)>)>>
|
|
|
|
<GLOBAL HAND-IN-WALDO <>>
|
|
|
|
<OBJECT HAND-HOLE
|
|
(LOC DB)
|
|
(DESC "hand-hole")
|
|
(SYNONYM HOLE HAND-HOLE CONTROL)
|
|
(ADJECTIVE HAND WALDO)
|
|
(FLAGS NDESCBIT)
|
|
(GENERIC G-DB-HOLE-F)
|
|
(ACTION HAND-HOLE-F)>
|
|
|
|
<ROUTINE HAND-HOLE-F ()
|
|
<COND (<NOT <IN? ,PROTAGONIST ,DB>>
|
|
<CANT-REACH ,HAND-HOLE>)
|
|
(<VERB? REACH-IN>
|
|
<TELL "Your hand is ">
|
|
<COND (,HAND-IN-WALDO
|
|
<TELL "already in the hand-hole!" CR>)
|
|
(T
|
|
<SETG HAND-IN-WALDO T>
|
|
<TELL "now in the hand-hole">
|
|
<COND (<NOT <FSET? ,WALDO ,TOUCHBIT>>
|
|
<FSET ,WALDO ,TOUCHBIT>
|
|
<TELL
|
|
". The waldo feels like an extension of your own hand.
|
|
You flex your fingers a few times">
|
|
<COND (<OR <FSET? ,EXTERIOR-LIGHT ,ONBIT>
|
|
<EQUAL? ,HERE ,HOLD>>
|
|
<TELL
|
|
", and through the viewport, you see the waldo flex correspondingly">)>)>
|
|
<TELL ,PERIOD-CR>)>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<COND (,HAND-IN-WALDO
|
|
<TELL "Your hand is in the hole." CR>)
|
|
(T
|
|
<TELL ,ONLY-BLACKNESS>)>)>>
|
|
|
|
<ROUTINE WALDO-TAKE ()
|
|
<COND (<PRSI? ,WALDO>
|
|
<COND (<EQUAL? ,P-PRSA-WORD ,W?REMOVE>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-REACH ,PRSO>)>)
|
|
(<FIRST? ,WALDO>
|
|
<TELL
|
|
"There's already" A <FIRST? ,WALDO> " in the waldo." CR>)
|
|
(<AND <EQUAL? ,HERE ,LAKE-BOTTOM>
|
|
<NOT <IN? ,SQUID-REPELLENT ,LAKE-BOTTOM>>>
|
|
<TELL
|
|
"Before the waldo can grab" T ,PRSO ", a baby squid swims into view and
|
|
snatches" T ,PRSO ". The squid playfully squirts black ink toward the
|
|
porthole, and by the time the view clears, the squid is gone">
|
|
<COND (<FSET? ,PRSO ,TAKEBIT>
|
|
<TELL
|
|
" and" T ,PRSO " is lying right where it was before">)>
|
|
<TELL ,PERIOD-CR>)
|
|
(<FSET? ,PRSO ,TAKEBIT>
|
|
<MOVE ,PRSO ,WALDO>
|
|
<FSET ,PRSO ,TOUCHBIT>
|
|
<TELL "You pick up" T ,PRSO " in the waldo." CR>)
|
|
(<PRSO? ,SPENSEWEED>
|
|
<TELL ,DEEPLY-ROOTED>)
|
|
(<PRSO? ,JESTER ,J-HAT ,J-POCKET ,J-SHOE>
|
|
<TELL
|
|
"Your attempt ends up giving the jester a pinch with the waldo. \"Please!\" he
|
|
exclaims. \"I'm not that sort of jester!\"" CR>)
|
|
(T
|
|
<YUKS>)>>
|
|
|
|
<OBJECT LEVER
|
|
(LOC DB)
|
|
(DESC "up-down lever")
|
|
(SYNONYM LEVER)
|
|
(ADJECTIVE UP-DOWN)
|
|
(FLAGS NDESCBIT VOWELBIT)
|
|
(ACTION LEVER-F)>
|
|
|
|
<GLOBAL DB-DIRECTION 0> ;"1 = ascending, -1 = descending"
|
|
|
|
<GLOBAL DB-DEPTH 0>
|
|
|
|
<GLOBAL PIECE-DROWNED 0>
|
|
|
|
<ROUTINE LEVER-F ("AUX" X)
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "The lever is in the ">
|
|
<COND (<EQUAL? ,DB-DIRECTION 1>
|
|
<TELL "up">)
|
|
(<EQUAL? ,DB-DIRECTION -1>
|
|
<TELL "down">)
|
|
(T
|
|
<TELL "neutral">)>
|
|
<TELL " position">
|
|
<COND (<EQUAL? ,DB-DIRECTION 0>
|
|
<TELL ", from which it can be raised or lowered." CR>)
|
|
(T
|
|
<TELL ,PERIOD-CR>)>)
|
|
(<VERB? RAISE>
|
|
<COND (<EQUAL? ,DB-DIRECTION 1>
|
|
<TELL "The lever is already raised." CR>)
|
|
(<EQUAL? ,HERE ,HOLD>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(T
|
|
<SETG DB-DIRECTION 1>
|
|
<QUEUE I-DB 2>
|
|
<TELL "The bathysphere ascends.">
|
|
<COND (<EQUAL? ,HERE ,LAKE-BOTTOM>
|
|
<SETG DB-DEPTH 4>
|
|
<MOVE ,DB ,UNDERWATER>
|
|
<MOVE ,WALDO ,UNDERWATER>
|
|
<GLANCE>)
|
|
(T
|
|
<CRLF>)>)>)
|
|
(<VERB? LOWER>
|
|
<COND (<EQUAL? ,DB-DIRECTION -1>
|
|
<TELL "The lever is already lowered." CR>)
|
|
(<OR <EQUAL? ,DB-DEPTH 4>
|
|
<NOT <IN? ,YACHT ,LAKE-FLATHEAD>>>
|
|
<TELL ,NOTHING-HAPPENS>)
|
|
(<AND <SET X <FIRST? ,WALDO>>
|
|
<EQUAL? .X ,FOX ,FLAMINGO ,ROOSTER ,SNAKE>>
|
|
<TELL "You'd drown the poor ">
|
|
<PRINTD .X>
|
|
<TELL "!" CR>)
|
|
(<FSET? ,DB ,OPENBIT>
|
|
<JIGS-UP
|
|
"The bathysphere descends, filling with water through its open door.
|
|
As you are not a fish, this is fatal.">)
|
|
(T
|
|
<SETG DB-DIRECTION -1>
|
|
<QUEUE I-DB 2>
|
|
<TELL
|
|
"The bathysphere descends into the waters of the lake">
|
|
<COND (<SET X <FIND-IN ,WALDO ,FLAMEBIT>>
|
|
<FCLEAR .X ,ONBIT>
|
|
<FCLEAR .X ,FLAMEBIT>
|
|
<COND (<VISIBLE? .X>
|
|
<TELL ", extinguishing" T .X>)>)>
|
|
<TELL ".">
|
|
<COND (<EQUAL? ,HERE ,HOLD>
|
|
<SETG DB-DEPTH 0>
|
|
<MOVE ,DB ,UNDERWATER>
|
|
<MOVE ,WALDO ,UNDERWATER>
|
|
<GLANCE>)
|
|
(T
|
|
<CRLF>)>)>)>>
|
|
|
|
<ROUTINE GLANCE ()
|
|
<TELL " You glance out the porthole" ,ELLIPSIS>
|
|
<GOTO ,DB>>
|
|
|
|
<ROUTINE I-DB ()
|
|
<QUEUE I-DB -1>
|
|
<SETG DB-DEPTH <- ,DB-DEPTH ,DB-DIRECTION>>
|
|
<COND (<IN? ,PROTAGONIST ,DB>
|
|
<RETURN-FROM-MAP>
|
|
<TELL " The bathysphere ">)>
|
|
<COND (<L? ,DB-DEPTH 1>
|
|
<DEQUEUE I-DB>
|
|
<SETG DB-DIRECTION 0>
|
|
<MOVE ,DB ,HOLD>
|
|
<MOVE ,WALDO ,HOLD>
|
|
<COND (<IN? ,PROTAGONIST ,DB>
|
|
<TELL "rises into the yacht's hold and stops.">
|
|
<GLANCE>)
|
|
(<EQUAL? ,HERE ,HOLD>
|
|
<RETURN-FROM-MAP>
|
|
<TELL " A diving bell rises into the Hold." CR>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<G? ,DB-DEPTH 3>
|
|
<DEQUEUE I-DB>
|
|
<SETG DB-DIRECTION 0>
|
|
<MOVE ,DB ,LAKE-BOTTOM>
|
|
<MOVE ,WALDO ,LAKE-BOTTOM>
|
|
<COND (<IN? ,PROTAGONIST ,DB>
|
|
<TELL "bumps against the bottom of the lake.">
|
|
<GLANCE>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<NOT <IN? ,PROTAGONIST ,DB>>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "continues to ">
|
|
<COND (<EQUAL? ,DB-DIRECTION -1>
|
|
<TELL "de">)
|
|
(<EQUAL? ,DB-DIRECTION 1>
|
|
<TELL "a">)>
|
|
<TELL "scend." CR>
|
|
<COND (<G? ,PIECE-DROWNED 0>
|
|
<COND (<PROB ,PIECE-DROWNED>
|
|
<SETG PIECE-DROWNED 1>
|
|
<TELL
|
|
" The drowned carcass of a chess piece drifts momentarily through the
|
|
beam of the exterior light." CR>)
|
|
(T
|
|
<SETG PIECE-DROWNED <+ ,PIECE-DROWNED 10>>)>)>)>
|
|
<RTRUE>>
|
|
|
|
<ROOM LAKE-FLATHEAD
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Lake Flathead")
|
|
(LDESC
|
|
"You are in the center of a once-handsome lake, lit from the roof high
|
|
overhead. On the distant shores, you can spot docks in all four
|
|
cardinal directions.")
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT NARTICLEBIT WATERBIT)
|
|
(SYNONYM LAKE FLATHEAD)
|
|
(ADJECTIVE FLATHEAD LAKE PLACID CLEAR CRYSTAL)
|
|
(VALUE 18)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-4>)
|
|
(GLOBAL STAIRS)
|
|
(ICON LAKE-FLATHEAD-ICON)
|
|
(RESEARCH
|
|
"\"This large and handsome lake lies entirely within the royal castle at
|
|
Flatheadia.\"")
|
|
(ACTION LAKE-FLATHEAD-F)>
|
|
|
|
<ROUTINE LAKE-FLATHEAD-F ("OPTIONAL" (RARG <>))
|
|
<COND (.RARG
|
|
<RFALSE>)
|
|
(<VERB? DRINK DRINK-FROM ENTER LOOK-UNDER REACH-IN>
|
|
<PERFORM-PRSA ,WATER ,PRSI>)
|
|
(<AND <VERB? FILL PUT>
|
|
<PRSI? ,GLOBAL-HERE>>
|
|
<PERFORM-PRSA ,PRSO ,WATER>)
|
|
(<VERB? EXAMINE LOOK-INSIDE>
|
|
<TELL "The water is scummy and murky." CR>)>>
|
|
|
|
<ROOM UNDERWATER
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Underwater")
|
|
(LDESC
|
|
"Here, between the surface and floor of Lake Flathead, the water is somewhat
|
|
clearer.")
|
|
;(UP SORRY "Use the bathysphere controls.")
|
|
;(DOWN SORRY "Use the bathysphere controls.")
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-1>)
|
|
(ICON UNDERWATER-ICON)>
|
|
|
|
<ROOM LAKE-BOTTOM
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Lake Bottom")
|
|
(LDESC
|
|
"You have reached the sandy bottom at the deepest point of Lake Flathead.
|
|
Beautiful freshwater fish swim among slowly waving spenseweeds.")
|
|
;(UP SORRY "Use the bathysphere controls.")
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-7 MAP-GEN-X-1>)
|
|
(ICON LAKE-BOTTOM-ICON)
|
|
(ACTION LAKE-BOTTOM-F)>
|
|
|
|
<ROUTINE LAKE-BOTTOM-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-ENTER>
|
|
<MOVE ,SPENSEWEED ,HERE>
|
|
<FSET ,SPENSEWEED ,NDESCBIT>)
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
<IN? ,WORM ,WALDO>>
|
|
<REMOVE ,WORM>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
" A fish snatches the worm from the waldo and swims away with it." CR>)>>
|
|
|
|
<OBJECT LAKE-BOTTOM-FISH
|
|
(LOC LAKE-BOTTOM)
|
|
(DESC "freshwater fish")
|
|
(SYNONYM FISH)
|
|
(ADJECTIVE BEAUTIFUL FRESHWATER)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION LAKE-BOTTOM-FISH-F)>
|
|
|
|
<ROUTINE LAKE-BOTTOM-FISH-F ()
|
|
<COND (<TOUCHING? ,LAKE-BOTTOM-FISH>
|
|
<CANT-REACH ,LAKE-BOTTOM-FISH>)>>
|
|
|
|
<ROOM BASE-OF-MOUNTAIN
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Base of Mountain")
|
|
(LDESC
|
|
"In a rare moment of restraint, Dimwit scaled back his plans for putting
|
|
an entire mountain range in the castle, settling for merely a single mountain.
|
|
A difficult trail leads east up the mountain; easier paths head north, west,
|
|
and south.")
|
|
(NORTH TO STABLE)
|
|
(SOUTH TO G-U-WOODS)
|
|
(WEST TO EAST-SHORE)
|
|
(EAST PER G-U-MOUNTAIN-ENTER-F)
|
|
(UP PER G-U-MOUNTAIN-ENTER-F)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-MOUNTAIN)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-6>)
|
|
(ICON BASE-OF-MT-ICON)>
|
|
|
|
<ROUTINE G-U-MOUNTAIN-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (<IN? ,PROTAGONIST ,CAMEL>
|
|
<COND (<NOT .RARG>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
"Like most camels, this one isn't very good at mountain climbing." CR>)>
|
|
<RFALSE>)
|
|
(T
|
|
,G-U-MOUNTAIN)>>
|
|
|
|
<ROOM STABLE
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Stable")
|
|
(LDESC
|
|
"The stalls here once held thousands of royal mounts. The only exit is south.")
|
|
(SOUTH TO BASE-OF-MOUNTAIN)
|
|
(OUT TO BASE-OF-MOUNTAIN)
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(SYNONYM STABLE)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-6>)
|
|
(ICON STABLE-ICON)
|
|
(THINGS <> STALL STALL-PS)
|
|
(ACTION STABLE-F)>
|
|
|
|
<ROUTINE STABLE-F ("OPT" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
<NOT <FSET? ,STABLE ,TOUCHBIT>>>
|
|
<QUEUE I-ROOSTER -1>)>>
|
|
|
|
<ROUTINE STALL-PS ()
|
|
<COND (<VERB? EXAMINE ENTER>
|
|
<TELL "The stalls are all empty." CR>)>>
|
|
|
|
<OBJECT SADDLE
|
|
(LOC STABLE)
|
|
(DESC "saddle")
|
|
(FDESC
|
|
"A well-worn unicorn saddle, of military style, is hanging at the far
|
|
end of the stable.")
|
|
(SYNONYM SADDLE)
|
|
(ADJECTIVE WELL-WORN UNICORN MILITARY)
|
|
(FLAGS TAKEBIT MAGICBIT READBIT)
|
|
(SIZE 15)
|
|
(VALUE 12)
|
|
(TEXT "You can barely make out the name \"Wilma.\"")
|
|
(ACTION SADDLE-F)>
|
|
|
|
<BEGIN-SEGMENT 0>
|
|
|
|
<ROUTINE SADDLE-F ()
|
|
<COND (<AND <VERB? PUT-ON>
|
|
<PRSO? ,SADDLE>>
|
|
<TELL
|
|
"You'd be kicked out of riding school -- imagine, trying to saddle"
|
|
A ,PRSI "!" CR>)>>
|
|
|
|
<OBJECT ROOSTER
|
|
(LOC STABLE)
|
|
(DESC "rooster")
|
|
(FDESC
|
|
"There's not a horse in sight. However, there is a rooster here, strutting
|
|
back and forth between the stalls.")
|
|
(SYNONYM ROOSTER BIRD VANE)
|
|
(ADJECTIVE WEATHER)
|
|
(FLAGS TAKEBIT TRYTAKEBIT ANIMATEDBIT)
|
|
(INANIMATE-DESC "weather vane")
|
|
(WAND-TEXT
|
|
"The rooster stops moving and takes on the complexion of wrought iron.")
|
|
(ANIMATE-ROUTINE I-W-ROOSTER)
|
|
(SIZE 10)
|
|
(ACTION ROOSTER-F)>
|
|
|
|
<ROUTINE ROOSTER-F ()
|
|
<COND (<AND <VERB? RESEARCH>
|
|
<NOUN-USED? ,ROOSTER ,W?ROOSTER>>
|
|
<TELL "\"A common barnyard animal.\"" CR>)
|
|
(<NOT <FSET? ,ROOSTER ,ANIMATEDBIT>>
|
|
<RFALSE>)
|
|
(<VERB? EAT>
|
|
<COND (<EQUAL? ,TURNED-INTO ,FOX>
|
|
<GOOD-MEAL ,ROOSTER>)
|
|
(T
|
|
<TELL
|
|
"Unfortunately, you have no training in the butchering and culinary
|
|
techniques involved in turning live poultry into edible meals." CR>)>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"It is a handsome, mature rooster, with a full red comb." CR>)
|
|
(<VERB? TOUCH>
|
|
<TELL "The bird pecks at your hand." CR>)
|
|
(<AND <VERB? TAKE>
|
|
<FSET? ,ROOSTER ,ANIMATEDBIT>>
|
|
<COND (<EQUAL? <ITAKE T> ,M-FATAL>
|
|
<RTRUE>)
|
|
(T
|
|
<MOVE ,ROOSTER ,PROTAGONIST>
|
|
<TELL
|
|
"The bird flaps angrily, but you manage to pick it up." CR>)>)
|
|
(<AND <VERB? GIVE>
|
|
<PRSO? ,WORM>>
|
|
<REMOVE ,WORM>
|
|
<TELL
|
|
"The bird sucks down the worm and crows happily." CR>)
|
|
(<AND <VERB? FEED>
|
|
<ULTIMATELY-IN? ,WORM>>
|
|
<WOULDNT-MIND ,ROOSTER ,WORM>)>>
|
|
|
|
<ROUTINE I-W-ROOSTER ("AUX" (L <LOC ,ROOSTER>))
|
|
<FSET ,ROOSTER ,ANIMATEDBIT>
|
|
<COND (<IN? ,ROOSTER ,LAKE-BOTTOM>
|
|
<REMOVE ,ROOSTER>)
|
|
(<EQUAL? <META-LOC ,ROOSTER> ,HERE>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
" The air is split by a loud \"Cock-a-doodle-doo!\" as the weather
|
|
vane once again becomes a rooster">
|
|
<COND (<AND <NOT <EQUAL? .L ,PROTAGONIST ,HERE>>
|
|
<NOT <FSET? .L ,DROPBIT>>>
|
|
<MOVE ,ROOSTER ,HERE>
|
|
<FSET .L ,OPENBIT>
|
|
<TELL " and pops out of" T .L>)>
|
|
<TELL ,PERIOD-CR>)
|
|
(T
|
|
<MOVE ,ROOSTER <META-LOC ,ROOSTER>>
|
|
<RFALSE>)>>
|
|
|
|
<GLOBAL ROOSTER-PROB 100>
|
|
|
|
<GLOBAL ROOSTER-BURP <>>
|
|
|
|
<ROUTINE I-ROOSTER ("AUX" L)
|
|
<COND (<NOT <FSET? ,ROOSTER ,ANIMATEDBIT>>
|
|
<RFALSE>)
|
|
(<NOT <VISIBLE? ,ROOSTER>>
|
|
<COND (<AND <SET L <LOC ,ROOSTER>>
|
|
<EQUAL? .L <LOC ,WORM>>
|
|
<FSET? ,WORM ,ANIMATEDBIT>
|
|
<NOT <FSET? .L ,ACTORBIT>>>
|
|
<SETG ROOSTER-BURP T>
|
|
<REMOVE ,WORM>)>
|
|
<RFALSE>)
|
|
(,ROOSTER-BURP
|
|
<SETG ROOSTER-BURP <>>
|
|
<RETURN-FROM-MAP>
|
|
<TELL " The rooster fails to hide a satisfied burp." CR>)
|
|
(<OR <NOT <VISIBLE? ,WORM>>
|
|
<NOT <FSET? ,WORM ,ANIMATEDBIT>>>
|
|
<RFALSE>)
|
|
(<PROB ,ROOSTER-PROB>
|
|
<RETURN-FROM-MAP>
|
|
<SETG ROOSTER-PROB 0>
|
|
<TELL " The rooster hungrily eyes the worm." CR>)
|
|
(T
|
|
<SETG ROOSTER-PROB <+ ,ROOSTER-PROB 10>>
|
|
<RFALSE>)>>
|
|
|
|
<END-SEGMENT>
|
|
|
|
<BEGIN-SEGMENT LAKE>
|
|
|
|
<ROOM G-U-MOUNTAIN
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Great Underground Mountain")
|
|
(WEST TO BASE-OF-MOUNTAIN)
|
|
(DOWN TO BASE-OF-MOUNTAIN)
|
|
(NORTH PER CAVE-ENTER-F)
|
|
(IN PER CAVE-ENTER-F)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(SYNONYM MOUNTAIN)
|
|
(ADJECTIVE GREAT UNDERGROUND)
|
|
(RESEARCH
|
|
"\"One of the many awe-inspiring features of Dimwit's castle in Flatheadia.\"")
|
|
(GLOBAL LAKE-FLATHEAD)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-7>)
|
|
(ICON G-U-MOUNTAIN-ICON)
|
|
(ACTION G-U-MOUNTAIN-F)>
|
|
|
|
<ROUTINE G-U-MOUNTAIN-F ("OPT" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
<G? ,ORACLE-EXIT-NUMBER 4>>
|
|
<SETG ORACLE-EXIT-NUMBER <- <RANDOM 5> 1>>
|
|
<QUEUE I-AMULET 4>)
|
|
(<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"The mountain crests with a tiny plateau. The view is inspiring; it's easy
|
|
to see why Dimwit climbed this mountain with such frequency. (Some quibblers
|
|
insisted that it's hardly \"mountain climbing\" to be carried up in a plush
|
|
sedan chair, but those quibblers were all tortured to death years ago.) Off
|
|
to the west are the placid waters of Lake Flathead; to the southwest is a
|
|
vast indoor desert; to the south spreads a verdant forest. The ceiling of
|
|
the castle is just a few feet above your head. ">
|
|
<COND (<IN? ,BOULDER ,HERE>
|
|
<TELL
|
|
"An enormous boulder is balanced precariously at the
|
|
western edge of the plateau">)
|
|
(T
|
|
<TELL "A small cave opens to the north">)>
|
|
<TELL ". A trail leads down the mountain to the west.">)>>
|
|
|
|
<ROUTINE CAVE-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (<IN? ,BOULDER ,HERE>
|
|
<COND (<NOT .RARG>
|
|
<CANT-GO>)>
|
|
<RFALSE>)
|
|
(T
|
|
,GROTTO)>>
|
|
|
|
<OBJECT BOULDER
|
|
(LOC G-U-MOUNTAIN)
|
|
(DESC "boulder")
|
|
(SYNONYM BOULDER ROCK)
|
|
(ADJECTIVE LARGE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION BOULDER-F)>
|
|
|
|
<ROUTINE BOULDER-F ()
|
|
<COND (<VERB? PUSH MOVE KICK ROLL>
|
|
<REMOVE ,BOULDER>
|
|
<SETG COMPASS-CHANGED T>
|
|
<MOVE ,CAVE-OBJECT ,HERE>
|
|
<TELL
|
|
"You give the boulder a shove. It lurches and begins careening down the
|
|
mountain. Picking up speed, it flattens several trees, hits an outcropping,
|
|
and shoots into the air, toward the lake. It lands ">
|
|
<COND (<IN? ,YACHT ,EAST-SHORE>
|
|
<TELL "right on the yacht">)
|
|
(T
|
|
<TELL
|
|
"in the lake with a tremendous splash, just missing the blue dock">)>
|
|
<TELL "! The rock ">
|
|
<COND (<IN? ,YACHT ,EAST-SHORE>
|
|
<REMOVE ,YACHT>
|
|
<COND (<OR <ULTIMATELY-IN? ,PERCH ,YACHT>
|
|
<ULTIMATELY-IN? ,PERCH ,HOLD>>
|
|
<SETG REMOVED-PERCH-LOC ,WATER>
|
|
<REMOVE ,PERCH>)>
|
|
<TELL "and the yacht vanish">)
|
|
(T
|
|
<TELL "disappears">)>
|
|
<TELL
|
|
" beneath the water, leaving only a series of widening ripples. As you
|
|
recuperate from the excitement, you notice a feature that was formerly
|
|
blocked by the boulder: a small cave leading north into the mountain." CR>
|
|
<INC-SCORE 6>)
|
|
(<AND <VERB? LOWER>
|
|
<EQUAL? ,P-PRSA-WORD ,W?PUSH>>
|
|
<PERFORM ,V?PUSH ,BOULDER>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUSH-DIR>
|
|
<PRSI? ,INTDIR>
|
|
<NOUN-USED? ,INTDIR ,W?WEST>>
|
|
<PERFORM ,V?PUSH ,BOULDER>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT CAVE-OBJECT
|
|
(DESC "cave")
|
|
(SYNONYM CAVE)
|
|
(ADJECTIVE TINY)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION CAVE-OBJECT-F)>
|
|
|
|
<ROUTINE CAVE-OBJECT-F ()
|
|
<COND (<VERB? ENTER>
|
|
<GOTO ,GROTTO>)>>
|
|
|
|
<ROOM GROTTO
|
|
(LOC ROOMS)
|
|
(REGION "Region: Unknown")
|
|
(DESC "Grotto")
|
|
(LDESC
|
|
"You are in a damp grotto near the peak of the Great Underground Mountain.
|
|
Slimy moss covers the irregular rock walls. Winding passages lead south and
|
|
northeast, and a steep gravelly passage leads downward at an alarming angle.")
|
|
(SOUTH TO G-U-MOUNTAIN)
|
|
(NE TO SHRINE)
|
|
(DOWN PER LOWEST-HALL-ENTER-F)
|
|
(WEST PER LOWEST-HALL-ENTER-F)
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(SYNONYM GROTTO)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-7>)>P
|
|
|
|
<OBJECT GROTTO-REBUS-BUTTON
|
|
(LOC GROTTO)
|
|
(SDESC "blinking key-shaped button")
|
|
(FDESC
|
|
"Imbedded in the rocky wall is a blinking button in the shape of a key.")
|
|
(SYNONYM BUTTON)
|
|
(ADJECTIVE KEY-SHAPED BLINKING)
|
|
(ACTION REBUS-BUTTON-F)>
|
|
|
|
<ROUTINE LOWEST-HALL-ENTER-F
|
|
("OPT" (RARG <>) "AUX" (CURRENT-GRAVEL <>) (SPILL <>))
|
|
<COND (.RARG
|
|
<RETURN ,LOWEST-HALL>)>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
"You lose your footing on the gravel, drop your possessions, and begin sliding
|
|
down the dark tunnel! Finally, you land on a hard floor">
|
|
<COND (<OR <AND <IN? ,GRAVEL ,LOCAL-GLOBALS>
|
|
<SET CURRENT-GRAVEL ,GRAVEL>>
|
|
<AND <IN? ,MORE-GRAVEL ,LOCAL-GLOBALS>
|
|
<SET CURRENT-GRAVEL ,MORE-GRAVEL>>
|
|
<AND <IN? ,EVEN-MORE-GRAVEL ,LOCAL-GLOBALS>
|
|
<SET CURRENT-GRAVEL ,EVEN-MORE-GRAVEL>>>
|
|
<TELL "; a shower of gravel lands on top of you">)>
|
|
<COND (<AND <ULTIMATELY-IN? ,LARGE-VIAL>
|
|
<G? ,LARGE-VIAL-GLOOPS 0>>
|
|
<SETG LARGE-VIAL-GLOOPS 0>
|
|
<REMOVE ,LARGE-VIAL-WATER>
|
|
<SET SPILL T>)>
|
|
<COND (<AND <ULTIMATELY-IN? ,SMALL-VIAL>
|
|
<G? ,SMALL-VIAL-GLOOPS 0>>
|
|
<SETG SMALL-VIAL-GLOOPS 0>
|
|
<REMOVE ,SMALL-VIAL-WATER>
|
|
<SET SPILL T>)>
|
|
<COND (<AND <ULTIMATELY-IN? ,CUP>
|
|
<IN? ,POTION ,CUP>>
|
|
<REMOVE ,POTION>
|
|
<SET SPILL T>)>
|
|
<COND (.SPILL
|
|
<TELL ". You seem to have spilled something, also">)>
|
|
<TELL ".">
|
|
<COND (.CURRENT-GRAVEL
|
|
;"if no chess piece present, it'll end up on floor.
|
|
if chess piece present, he'll pick up the gravel in ROB"
|
|
<MOVE .CURRENT-GRAVEL ,PROTAGONIST>)>
|
|
<SETG HERE ,LOWEST-HALL>
|
|
;"so that ROB properly describes chesspiece taking pigeon"
|
|
<ROB ,PROTAGONIST ,LOWEST-HALL T>
|
|
<CRLF> <CRLF>
|
|
,LOWEST-HALL>
|
|
|
|
<OBJECT GRAVEL
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "gravel")
|
|
(PLURAL "gravel")
|
|
(SYNONYM GRAVEL)
|
|
(GENERIC G-GRAVEL-F)
|
|
(FLAGS TAKEBIT NARTICLEBIT)
|
|
(ACTION GRAVEL-F)>
|
|
|
|
<OBJECT MORE-GRAVEL
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "more gravel")
|
|
(PLURAL "gravel")
|
|
(SYNONYM GRAVEL)
|
|
(ADJECTIVE MORE)
|
|
(GENERIC G-GRAVEL-F)
|
|
(FLAGS TAKEBIT NARTICLEBIT)
|
|
(ACTION GRAVEL-F)>
|
|
|
|
<OBJECT EVEN-MORE-GRAVEL
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "even more gravel")
|
|
(PLURAL "gravel")
|
|
(SYNONYM GRAVEL)
|
|
(ADJECTIVE EVEN MORE)
|
|
(GENERIC G-GRAVEL-F)
|
|
(FLAGS TAKEBIT NARTICLEBIT)
|
|
(ACTION GRAVEL-F)>
|
|
|
|
<BEGIN-SEGMENT 0>
|
|
|
|
<ROUTINE G-GRAVEL-F (TBL LEN)
|
|
<COND (<INTBL? ,GRAVEL <REST-TO-SLOT .TBL FIND-RES-OBJ1>
|
|
<FIND-RES-COUNT .TBL>>
|
|
,GRAVEL)
|
|
(T ;"the two confused objs must be MORE-GRAV and EVEN-MORE-GRAV"
|
|
,MORE-GRAVEL)>>
|
|
|
|
<ROUTINE GRAVEL-F ()
|
|
<COND (<VERB? TAKE>
|
|
<ORDER-GRAVEL ,PROTAGONIST>
|
|
<RFALSE>)
|
|
(<VERB? DROP>
|
|
<ORDER-GRAVEL ,HERE>
|
|
<RFALSE>)
|
|
(<VERB? EXAMINE MEASURE COUNT>
|
|
<TELL "It's about a handful." CR>)
|
|
(<AND <VERB? POUR>
|
|
<PRSO? ,GRAVEL ,MORE-GRAVEL ,EVEN-MORE-GRAVEL>>
|
|
<PERFORM ,V?PUT ,PRSO ,PRSI>
|
|
<RTRUE>)>>
|
|
|
|
<END-SEGMENT>
|
|
|
|
<BEGIN-SEGMENT LAKE>
|
|
|
|
<ROOM SHRINE
|
|
(LOC ROOMS)
|
|
(DESC "Shrine")
|
|
(REGION "Region: Unknown")
|
|
(LDESC
|
|
"You have stumbled upon a long-hidden shrine to Saint Foobus of Galepath.
|
|
An idol of Foobus is carved from the very rock that forms this cave. The only
|
|
exit is southwest.")
|
|
(SW TO GROTTO)
|
|
(OUT TO GROTTO)
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-2 MAP-GEN-X-8>)
|
|
(ICON SHRINE-ICON)>
|
|
|
|
<OBJECT IDOL
|
|
(LOC SHRINE)
|
|
(DESC "idol")
|
|
(SYNONYM ST SAINT IDOL FOOBUS GALEPATH SHRINE)
|
|
(ADJECTIVE SAINT ST)
|
|
(FLAGS NDESCBIT VOWELBIT)
|
|
(RESEARCH
|
|
"\"The legendary Saint Foobus was said to have power over lowly insects.\"")
|
|
(ACTION IDOL-F)>
|
|
|
|
<ROUTINE IDOL-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The idol has been carved into the cave wall by the hand of a master sculptor
|
|
(who obviously spent far more time on the project than a saint of Foobus'
|
|
stature deserves)." CR>)>>
|
|
|
|
<OBJECT BOWL
|
|
(LOC SHRINE)
|
|
(DESC "bowl")
|
|
(LDESC
|
|
"Sitting before the idol is a translucent bowl, extremely tall and narrow,
|
|
like a carafe.")
|
|
(SYNONYM BOWL CARAFE)
|
|
(ADJECTIVE TRANSLUCENT TALL NARROW)
|
|
(FLAGS TRYTAKEBIT CONTBIT OPENBIT SEARCHBIT)
|
|
(CAPACITY 25)
|
|
(ACTION BOWL-F)>
|
|
|
|
<ROUTINE BOWL-F (CNT)
|
|
<SET CNT <GRAVEL-COUNT>>
|
|
<COND (<VERB? CLOSE>
|
|
<TELL ,HUH>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The bowl is tall and narrow, like a large drinking glass. ">
|
|
<PERFORM ,V?LOOK-INSIDE ,BOWL>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<TELL "It is ">
|
|
<COND (<EQUAL? .CNT 0>
|
|
<TELL "less than a quarter">)
|
|
(<EQUAL? .CNT 1>
|
|
<TELL "more than a quarter">)
|
|
(<EQUAL? .CNT 2>
|
|
<TELL "less than half">)
|
|
(T
|
|
<TELL "more than half">)>
|
|
<TELL " full with a milky elixir." CR>)
|
|
(<VERB? REACH-IN>
|
|
<COND (<EQUAL? .CNT 3>
|
|
<TELL
|
|
"Your fingers are just long enough to touch the elixir. ">
|
|
<TOUCH-ELIXIR>)
|
|
(T
|
|
<TELL
|
|
"Because the bowl is so narrow, you can only get your fingers
|
|
halfway to the bottom, ">
|
|
<COND (<EQUAL? .CNT 0>
|
|
<TELL "well">)
|
|
(<EQUAL? .CNT 1>
|
|
<TELL "somewhat">)
|
|
(<EQUAL? .CNT 2>
|
|
<TELL "a smidgeon">)>
|
|
<TELL " short of the elixir." CR>)>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,BOWL>>
|
|
<COND (<PRSO? ,GRAVEL ,MORE-GRAVEL ,EVEN-MORE-GRAVEL>
|
|
<MOVE ,PRSO ,BOWL>
|
|
<FCLEAR ,PRSO ,TAKEBIT>
|
|
<TELL
|
|
"The gravel sinks to the bottom of the bowl, thus raising the level
|
|
of the elixir. It is now ">
|
|
<SET CNT <+ .CNT 1>>
|
|
<COND (<EQUAL? .CNT 1>
|
|
<TELL "somewhat more than one-quarter">)
|
|
(<EQUAL? .CNT 2>
|
|
<TELL "just less than half">)
|
|
(T
|
|
<TELL "a bit over half">)>
|
|
<TELL "way to the brim." CR>)
|
|
(<PRSO? ,STRAW>
|
|
<MOVE ,STRAW ,BOWL>
|
|
<TELL
|
|
"The straw extends just above the rim of the bowl." CR>)
|
|
(<PRSO? ,RING ,ZORKMID-COIN ,EAST-KEY ,WEST-KEY
|
|
,RUSTY-KEY ,SQUID-REPELLENT ,UNOPENED-NUT
|
|
,NUT-SHELL ,NUT ,RUBY ,SAPPHIRE>
|
|
<MOVE ,PRSO ,BOWL>
|
|
<FCLEAR ,PRSO ,TAKEBIT>
|
|
<TELL
|
|
"With a tiny splash," T ,PRSO " sinks to the bottom of the bowl. It's not
|
|
clear how you'll ever get it out again..." CR>)
|
|
(T
|
|
<TELL "The rim of the bowl is too narrow." CR>)>)
|
|
(<AND <VERB? TAKE MOVE TIP TIP-OVER>
|
|
<PRSO? ,BOWL>>
|
|
<TELL "The bowl is affixed to the cave floor." CR>)>>
|
|
|
|
<ROUTINE GRAVEL-COUNT ("AUX" CNT)
|
|
<SET CNT 0>
|
|
<COND (<IN? ,GRAVEL ,BOWL>
|
|
<SET CNT <+ .CNT 1>>)>
|
|
<COND (<IN? ,MORE-GRAVEL ,BOWL>
|
|
<SET CNT <+ .CNT 1>>)>
|
|
<COND (<IN? ,EVEN-MORE-GRAVEL ,BOWL>
|
|
<SET CNT <+ .CNT 1>>)>
|
|
.CNT>
|
|
|
|
<OBJECT ELIXIR
|
|
(LOC BOWL)
|
|
(DESC "elixir")
|
|
(SYNONYM ELIXIR LIQUID)
|
|
(ADJECTIVE MILKY)
|
|
(FLAGS VOWELBIT)
|
|
(ACTION ELIXIR-F)>
|
|
|
|
<ROUTINE ELIXIR-F ()
|
|
<COND (<VERB? TOUCH REACH-IN>
|
|
<PERFORM ,V?REACH-IN ,BOWL>
|
|
<RTRUE>)
|
|
(<VERB? DRINK TASTE>
|
|
<COND (<IN? ,STRAW ,BOWL>
|
|
<PERFORM ,V?DRINK-WITH ,ELIXIR ,STRAW>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"The elixir is at the bottom of a bowl which is
|
|
affixed to the cave floor." CR>)>)
|
|
(<AND <VERB? CLEAN>
|
|
<EQUAL? ,P-PRSA-WORD ,W?SOAK>
|
|
<PRSI? ,ELIXIR>>
|
|
<PERFORM ,V?PUT ,PRSO ,ELIXIR>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,ELIXIR>>
|
|
<PERFORM ,V?PUT ,PRSO ,BOWL>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "The milky liquid swirls with secret energies." CR>)
|
|
(<AND <VERB? FILL>
|
|
<PRSI? ,ELIXIR>>
|
|
<COND (<PRSO? ,STRAW>
|
|
<TELL
|
|
"You'll have to be more specific about how you propose to do that." CR>)
|
|
(T
|
|
<TELL
|
|
"The bowl's narrowness prevents you from filling" TR ,PRSO>)>)>>
|
|
|
|
<ROOM BATS-LAIR
|
|
(LOC ROOMS)
|
|
(DESC "Bat's Lair")
|
|
(REGION "Region: Unknown")
|
|
(LDESC
|
|
"Only a deranged bat would live in this disgusting nesting space, caked with
|
|
layer upon layer of dried guano. A precarious path leads down to the west;
|
|
there's little chance you'd be able to climb back.")
|
|
(DOWN PER LAIR-EXIT-F)
|
|
(OUT PER LAIR-EXIT-F)
|
|
(WEST PER LAIR-EXIT-F)
|
|
(FLAGS RLANDBIT UNDERGROUNDBIT)
|
|
(SYNONYM LAIR)
|
|
(ADJECTIVE BAT\'S)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-7>)
|
|
(ICON BATS-LAIR-ICON)>
|
|
|
|
<ROUTINE LAIR-EXIT-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (<OR .RARG
|
|
<EQUAL? ,CURRENT-SPLIT ,MAP-TOP-LEFT-LOC>>
|
|
<RETURN ,G-U-WOODS>)>
|
|
<TELL
|
|
"You lose your footing on the treacherous path, and tumble painfully down
|
|
a steep incline. ">
|
|
<COND (<FIRST? ,PROTAGONIST>
|
|
<TELL "Amazingly, you hold on to everything you have. ">)>
|
|
<TELL
|
|
"You roll to a stop as dim green light filters around you" ,ELLIPSIS>
|
|
,G-U-WOODS>
|
|
|
|
<ROOM G-U-WOODS
|
|
(LOC ROOMS)
|
|
(DESC "Great Underground Woods")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are surrounded by tall oaks and wide pines. Birds chirp in the distance.
|
|
Trails wind north and southwest among the trees.")
|
|
(NORTH TO BASE-OF-MOUNTAIN)
|
|
(SW TO G-U-SAVANNAH)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(SYNONYM WOODS)
|
|
(ADJECTIVE GREAT UNDERGROUND)
|
|
(RESEARCH
|
|
"\"One of the many awe-inspiring features of Dimwit's castle in Flatheadia.\"")
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-6>)
|
|
(THINGS TALL OAK TREE-PS
|
|
WIDE PINE TREE-PS
|
|
PINE TREE TREE-PS
|
|
OAK TREE TREE-PS)
|
|
(ACTION G-U-WOODS-F)>
|
|
|
|
<ROUTINE G-U-WOODS-F ("OPT" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
<NOT <FSET? ,G-U-WOODS ,TOUCHBIT>>>
|
|
<QUEUE I-FOX -1>)>>
|
|
|
|
<BEGIN-SEGMENT 0>
|
|
|
|
<OBJECT FOX
|
|
(LOC G-U-WOODS)
|
|
(DESC "fox")
|
|
(PLURAL "foxes")
|
|
(FDESC "A fox is leaning against a nearby tree, looking sly.")
|
|
(SYNONYM FOX STOLE)
|
|
(ADJECTIVE FOX)
|
|
(FLAGS TAKEBIT TRYTAKEBIT ANIMATEDBIT)
|
|
(INANIMATE-DESC "fox stole")
|
|
(WAND-TEXT "The fox's eyes turn glassy.")
|
|
(ANIMATE-ROUTINE I-W-FOX)
|
|
(SIZE 15)
|
|
(ACTION FOX-F)>
|
|
|
|
<ROUTINE FOX-F ()
|
|
<COND (<AND <VERB? RESEARCH>
|
|
<NOUN-USED? ,FOX ,W?FOX>>
|
|
<TELL "\"A common animal.\"" CR>)
|
|
(<NOT <FSET? ,FOX ,ANIMATEDBIT>>
|
|
<RFALSE>)
|
|
(<AND <VERB? TAKE>
|
|
<FSET? ,FOX ,ANIMATEDBIT>>
|
|
<COND (<EQUAL? <ITAKE T> ,M-FATAL>
|
|
<RTRUE>)
|
|
(T
|
|
<MOVE ,FOX ,PROTAGONIST>
|
|
<TELL
|
|
"The fox slyly allows himself to be picked up." CR>)>)
|
|
(<AND <VERB? GIVE>
|
|
<PRSO? ,ROOSTER>>
|
|
<REMOVE ,ROOSTER>
|
|
<TELL
|
|
"The fox must be thinking that you're Santa Claus and this is Christmas
|
|
(but of course he's too sly to let you see that he's thinking that). After
|
|
a few messy moments, the rooster is history." CR>)
|
|
(<AND <VERB? FEED>
|
|
<ULTIMATELY-IN? ,ROOSTER>>
|
|
<WOULDNT-MIND ,FOX ,ROOSTER>)>>
|
|
|
|
<ROUTINE WOULDNT-MIND (EATER EATEE)
|
|
<TELL
|
|
"The " D .EATER " looks as though he wouldn't mind eating the "
|
|
D .EATEE "..." CR>>
|
|
|
|
<ROUTINE I-W-FOX ("AUX" (L <LOC ,FOX>))
|
|
<FSET ,FOX ,ANIMATEDBIT>
|
|
<FCLEAR ,FOX ,WEARBIT>
|
|
<FCLEAR ,FOX ,WORNBIT>
|
|
<COND (<IN? ,FOX ,LAKE-BOTTOM>
|
|
<REMOVE ,FOX>)
|
|
(<EQUAL? <META-LOC ,FOX> ,HERE>
|
|
<RETURN-FROM-MAP>
|
|
<TELL " The fox suddenly ">
|
|
<COND (<AND <NOT <EQUAL? .L ,PROTAGONIST ,HERE>>
|
|
<NOT <FSET? .L ,DROPBIT>>>
|
|
<MOVE ,FOX ,HERE>
|
|
<FSET .L ,OPENBIT>
|
|
<TELL "pops out of" T .L " and ">)>
|
|
<TELL "shakes its bushy tail." CR>)
|
|
(T
|
|
<MOVE ,FOX <META-LOC ,FOX>>
|
|
<RFALSE>)>>
|
|
|
|
<GLOBAL FOX-PROB 100>
|
|
|
|
<GLOBAL FOX-BURP <>>
|
|
|
|
<ROUTINE I-FOX ("AUX" L)
|
|
<COND (<NOT <FSET? ,FOX ,ANIMATEDBIT>>
|
|
<RFALSE>)
|
|
(<NOT <VISIBLE? ,FOX>>
|
|
<COND (<AND <SET L <LOC ,FOX>>
|
|
<EQUAL? .L <LOC ,ROOSTER>>
|
|
<FSET? ,ROOSTER ,ANIMATEDBIT>
|
|
<NOT <FSET? .L ,ACTORBIT>>>
|
|
<SETG FOX-BURP T>
|
|
<REMOVE ,ROOSTER>)>
|
|
<RFALSE>)
|
|
(,FOX-BURP
|
|
<SETG FOX-BURP <>>
|
|
<RETURN-FROM-MAP>
|
|
<TELL " The fox produces a deep and very sly burp." CR>)
|
|
(<OR <NOT <VISIBLE? ,ROOSTER>>
|
|
<NOT <FSET? ,ROOSTER ,ANIMATEDBIT>>>
|
|
<RFALSE>)
|
|
(<PROB ,FOX-PROB>
|
|
<SETG FOX-PROB 0>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
" The fox stares at the rooster and smacks its lips." CR>)
|
|
(T
|
|
<SETG FOX-PROB <+ ,FOX-PROB 10>>
|
|
<RFALSE>)>>
|
|
|
|
<END-SEGMENT>
|
|
|
|
<BEGIN-SEGMENT LAKE>
|
|
|
|
<ROOM G-U-SAVANNAH
|
|
(LOC ROOMS)
|
|
(REGION "Flatheadia")
|
|
(DESC "Great Underground Savannah")
|
|
(LDESC
|
|
"Dimwit's mania for including every conceivable ecosystem under his roof
|
|
continues here. This flat grassland ends at woods to the northeast, and
|
|
at a desert to the west. A herd of unicorns is grazing nearby.")
|
|
(NE TO G-U-WOODS)
|
|
(WEST TO EDGE-OF-DESERT)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(SYNONYM SAVANNAH)
|
|
(ADJECTIVE GREAT UNDERGROUND)
|
|
(RESEARCH
|
|
"\"One of the many awe-inspiring features of Dimwit's castle in Flatheadia.\"")
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-7 MAP-GEN-X-5>)
|
|
(ICON G-U-SAVANNAH-ICON)
|
|
(ACTION FLY-ROOM-F)>
|
|
|
|
<OBJECT UNICORNS
|
|
(LOC G-U-SAVANNAH)
|
|
(OWNER UNICORNS)
|
|
(DESC "herd of unicorns")
|
|
(SYNONYM UNICORN UNICORNS HERD)
|
|
(ADJECTIVE GRAZING)
|
|
(FLAGS NDESCBIT)
|
|
(RESEARCH "\"A magical beast, sometimes used as a combat mount.\"")
|
|
(ACTION UNICORNS-F)>
|
|
|
|
<ROUTINE UNICORNS-F ()
|
|
<COND (<VERB? ENTER CLIMB-ON SIT>
|
|
<TELL
|
|
"As you approach, the unicorns move gracefully away." CR>)
|
|
(<AND <VERB? PUT-ON>
|
|
<PRSO? ,SADDLE>>
|
|
<PERFORM ,V?ENTER ,UNICORNS>
|
|
<RTRUE>)>>
|
|
|
|
<ROOM STREAM
|
|
(LOC ROOMS)
|
|
(DESC "Stream")
|
|
(REGION "Flatheadia")
|
|
(EAST TO SOUTH-SHORE)
|
|
(WEST PER BRIDGE-ENTER-F)
|
|
(FLAGS RLANDBIT ONBIT UNDERGROUNDBIT)
|
|
(GLOBAL LAKE-FLATHEAD)
|
|
(RIDDLE "|
|
|
'One night four men sat down to play;|
|
|
They played and played till break of day.|
|
|
They played for money; not for fun,|
|
|
With separate scores for every one.|
|
|
And when time came to square accounts,|
|
|
They all had made quite nice amounts!'|
|
|
What were the men playing?\" As the jester awaits your answer, you notice
|
|
that he is holding the framed document.")
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-3>)
|
|
(ACTION CAMEL-DRINK-ROOM-F)>
|
|
|
|
<OBJECT BRIDGE
|
|
(LOC STREAM)
|
|
(DESC "odd green bridge")
|
|
(SYNONYM BRIDGE)
|
|
(ADJECTIVE STRANGE ODD UNUSUAL GREEN)
|
|
(FLAGS VOWELBIT NDESCBIT)
|
|
(ACTION BRIDGE-F)>
|
|
|
|
<ROUTINE BRIDGE-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The bridge looks odd, perhaps because of its unusual green color." CR>)
|
|
(<VERB? CROSS ENTER STAND-ON>
|
|
<DO-WALK ,P?WEST>)>>
|
|
|
|
<ROUTINE BRIDGE-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (.RARG
|
|
<RFALSE>)
|
|
(<IN? ,BRIDGE ,HERE>
|
|
<COND (<IN? ,PROTAGONIST ,CAMEL>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
"The bridge is too small for the huge, lumbering camel." CR>)
|
|
(T
|
|
<RETURN-FROM-MAP>
|
|
<REMOVE ,BRIDGE>
|
|
<DEQUEUE I-JESTER>
|
|
<MOVE ,JESTER ,HERE>
|
|
<THIS-IS-IT ,JESTER>
|
|
<MOVE ,DIPLOMA ,JESTER>
|
|
<FCLEAR ,DIPLOMA ,NDESCBIT>
|
|
<SETUP-ORPHAN "answer">
|
|
<TELL
|
|
"As you step onto the bridge, it begins transforming and withdrawing from
|
|
the opposite bank of the stream. When the transformation ends, the bridge
|
|
has become the jester, who is on all fours, and you are standing in the
|
|
center of his back! With clumsy haste and muttered apologies, you dismount.
|
|
The jester straightens up, and laughs, \"No hard feelings! I'll be fit as
|
|
a fiddle, once you answer this riddle:" <GETP ,STREAM ,P?RIDDLE> CR>)>)
|
|
(T
|
|
<TELL "Without a bridge, the stream is uncrossable." CR>)>
|
|
<RFALSE>>
|
|
|
|
<OBJECT MUSIC
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "music")
|
|
(SYNONYM MUSIC INSTRUMENTS)
|
|
(ADJECTIVE MUSICAL)
|
|
(FLAGS NARTICLEBIT)
|
|
(ACTION MUSIC-F)>
|
|
|
|
<ROUTINE MUSIC-F ()
|
|
<COND (<VERB? PLAY>
|
|
<PERFORM-PRSA ,LULLABY>)
|
|
(<VERB? LISTEN>
|
|
<TELL "[You can't hear any music right here!]" CR>)>>
|
|
|
|
<OBJECT STREAM-OBJECT
|
|
(LOC STREAM)
|
|
(DESC "stream")
|
|
(SYNONYM STREAM)
|
|
(FLAGS NDESCBIT WATERBIT)
|
|
(ACTION STREAM-OBJECT-F)>
|
|
|
|
<ROUTINE STREAM-OBJECT-F ()
|
|
<COND (<VERB? CROSS>
|
|
<DO-WALK ,P?WEST>)>>
|
|
|
|
<ROUTINE CAMEL-DRINK-ROOM-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<COND (<EQUAL? ,HERE ,OASIS>
|
|
<TELL
|
|
"An underground spring bubbles up through the sands, forming a pool of clear,
|
|
cold water. A hot wind blows off the desert to the southwest.">)
|
|
(T
|
|
<TELL
|
|
"A wide stream gurgles out of the rocks, feeding the waters of the lake. ">
|
|
<COND (<FSET? ,DIPLOMA ,NDESCBIT>
|
|
<TELL
|
|
"A strange green bridge spans the stream to the west. At the far end of the
|
|
bridge, you can see a framed document of some sort. ">)>
|
|
<TELL "A path follows the shoreline to the east.">)>)
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
<EQUAL? ,HERE ,STREAM>
|
|
<FSET? ,DIPLOMA ,TRYTAKEBIT>>
|
|
<MOVE ,BRIDGE ,HERE>
|
|
<FSET ,DIPLOMA ,NDESCBIT>
|
|
<MOVE ,DIPLOMA ,HERE>)
|
|
(<EQUAL? .RARG ,M-END>
|
|
<COND (<AND <EQUAL? ,HERE ,STREAM>
|
|
<IN? ,JESTER ,HERE>
|
|
<FSET? ,DIPLOMA ,TRYTAKEBIT>>
|
|
<SETUP-ORPHAN "answer">)>
|
|
<COND (<AND
|
|
<IN? ,CAMEL ,HERE>
|
|
<FSET? ,CAMEL ,ANIMATEDBIT>
|
|
,CAMEL-THIRSTY>
|
|
<SETG CAMEL-THIRSTY <>>
|
|
<RETURN-FROM-MAP>
|
|
<TELL " The camel lumbers over to the ">
|
|
<COND (<EQUAL? ,HERE ,OASIS>
|
|
<TELL "oasis">)
|
|
(T
|
|
<TELL "stream">)>
|
|
<TELL " and takes an amazingly long sip." CR>)>)>>
|
|
|
|
<OBJECT DIPLOMA
|
|
(LOC STREAM)
|
|
(DESC "diploma" )
|
|
(SYNONYM DIPLOMA DOCUMENT)
|
|
(ADJECTIVE FRAMED)
|
|
(FLAGS TAKEBIT TRYTAKEBIT READBIT NDESCBIT MAGICBIT)
|
|
(VALUE 0) ;"12 points given elsewhere"
|
|
(TEXT
|
|
"The diploma is from the Borphee Business School, but the name of the
|
|
recipient is too faded to read.")
|
|
(SIZE 2)
|
|
(ACTION DIPLOMA-F)>
|
|
|
|
<BEGIN-SEGMENT 0>
|
|
|
|
<ROUTINE DIPLOMA-F ()
|
|
<COND (<AND <VERB? TAKE>
|
|
<FSET? ,DIPLOMA ,TRYTAKEBIT>>
|
|
<COND (<IN? ,DIPLOMA ,JESTER>
|
|
<TELL ,ANSWER-MY-RIDDLE>)
|
|
(T
|
|
<DO-FIRST "cross the bridge">)>)>>
|
|
|
|
<END-SEGMENT>
|
|
|
|
<BEGIN-SEGMENT LAKE>
|
|
|
|
<ROOM EDGE-OF-DESERT
|
|
(LOC ROOMS)
|
|
(DESC "Edge of Desert")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"Dimwit wanted a sandbox, but thanks to his lack of perspective he ended up
|
|
with a desert. The bulk of the desert lies to the south; paths lead in the
|
|
other cardinal directions.")
|
|
(NORTH TO SOUTH-SHORE)
|
|
(NE SORRY "Sand dunes block your way.")
|
|
(EAST TO G-U-SAVANNAH)
|
|
(SE SORRY "Sand dunes block your way.")
|
|
(WEST TO RING-OF-DUNES)
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(SOUTH PER DESERT-ENTER-F)
|
|
(NW SORRY "Sand dunes block your way.")
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-7 MAP-GEN-X-4>)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<ROOM RING-OF-DUNES
|
|
(LOC ROOMS)
|
|
(DESC "Ring of Dunes")
|
|
(REGION "Flatheadia")
|
|
(LDESC "You are surrounded by sand dunes on all sides but the east.")
|
|
(NORTH SORRY "Sand dunes block your way.")
|
|
(NE SORRY "Sand dunes block your way.")
|
|
(EAST TO EDGE-OF-DESERT)
|
|
(SE SORRY "Sand dunes block your way.")
|
|
(SOUTH SORRY "Sand dunes block your way.")
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(WEST SORRY "Sand dunes block your way.")
|
|
(NW SORRY "Sand dunes block your way.")
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-7 MAP-GEN-X-3>)
|
|
(ICON RING-OF-DUNES-ICON)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<OBJECT CAMEL
|
|
(LOC RING-OF-DUNES)
|
|
(DESC "camel")
|
|
(SYNONYM CAMEL FIXTURE)
|
|
(ADJECTIVE MERRY-GO-ROUND)
|
|
(FLAGS ACTORBIT VEHBIT SEARCHBIT OPENBIT ANIMATEDBIT)
|
|
(RESEARCH "\"A desert animal.\"")
|
|
(GENERIC G-CAMEL-F)
|
|
(INANIMATE-DESC "merry-go-round fixture")
|
|
(WAND-TEXT
|
|
"The camel, never a speed demon to begin with, becomes still. His coloring
|
|
grows gaudier, and a few bars of honky-tonk music drift through the air.")
|
|
(ANIMATE-ROUTINE I-W-CAMEL)
|
|
(ACTION CAMEL-F)>
|
|
|
|
<ROUTINE G-CAMEL-F (X Y) ;"other camel is the flattened rebus camel"
|
|
,CAMEL>
|
|
|
|
<GLOBAL CAMEL-THIRSTY T>
|
|
|
|
<ROUTINE CAMEL-F ("OPTIONAL" (VARG <>))
|
|
<COND (<NOT <FSET? ,CAMEL ,ANIMATEDBIT>>
|
|
<RFALSE>)
|
|
(<EQUAL? .VARG ,M-WINNER>
|
|
<COND (<VERB? WALK>
|
|
<COND (<IN? ,PROTAGONIST ,CAMEL>
|
|
<SETG WINNER ,PROTAGONIST>
|
|
<DO-WALK ,PRSO>
|
|
<SETG WINNER ,CAMEL>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"Perhaps if you were ON the camel..." CR>)>)
|
|
(<AND <VERB? DRINK>
|
|
<PRSO? ,WATER ,LAKE-FLATHEAD>
|
|
<EQUAL? ,HERE ,SOUTH-SHORE ,EAST-SHORE>>
|
|
<TELL
|
|
"You can lead a camel to water, but you can't make him drink." CR>)
|
|
(<PROB 33>
|
|
<TELL"\"Snort.\"" CR>)
|
|
(<PROB 50>
|
|
<TELL "\"Grunt.\"" CR>)
|
|
(T
|
|
<TELL "\"Groan.\"" CR>)>
|
|
<STOP>)
|
|
(.VARG
|
|
<RFALSE>)
|
|
(<AND <VERB? TOUCH>
|
|
<EQUAL? ,P-PRSA-WORD ,W?PAT ,W?PET>>
|
|
<TELL "The camel emits an (almost) endearing bray." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "The camel looks ">
|
|
<COND (,CAMEL-THIRSTY
|
|
<TELL "thirsty">)
|
|
(T
|
|
<TELL "sated">)>
|
|
<TELL ,PERIOD-CR>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<TELL "Never look a gift camel in the mouth." CR>)>>
|
|
|
|
<ROUTINE I-W-CAMEL ()
|
|
<COND (,TIME-STOPPED
|
|
<QUEUE I-W-CAMEL 3>
|
|
<RFALSE>)>
|
|
<FSET ,CAMEL ,ANIMATEDBIT>
|
|
<FSET ,CAMEL ,ACTORBIT>
|
|
<COND (<VISIBLE? ,CAMEL>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
" The camel's garish colors fade once again to the color of sand. His tail
|
|
begins swishing around, and he emits a forlorn bray." CR>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE DESERT-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
|
|
<COND (.RARG
|
|
<RETURN ,G-U-DESERT>)
|
|
(<AND <IN? ,PROTAGONIST ,CAMEL>
|
|
,CAMEL-THIRSTY>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
"The camel takes one look at the vast desert, gives a dry croak,
|
|
and refuses to budge." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<COND (<IN? ,PROTAGONIST ,CAMEL>
|
|
<SETG CAMEL-THIRSTY T>)>
|
|
,G-U-DESERT)>>
|
|
|
|
<ROOM G-U-DESERT
|
|
(LOC ROOMS)
|
|
(DESC "Great Underground Desert")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in the midst of a searingly hot desert. Trails snake amongst
|
|
the dunes in many directions.")
|
|
(NORTH TO EDGE-OF-DESERT)
|
|
(NE SORRY "Sand dunes block your way.")
|
|
(EAST SORRY "Sand dunes block your way.")
|
|
(SE SORRY "Sand dunes block your way.")
|
|
(SOUTH TO CACTUS-PATCH)
|
|
(SW TO WINDBLOWN-SANDS)
|
|
(WEST SORRY "Sand dunes block your way.")
|
|
(NW SORRY "Sand dunes block your way.")
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(SYNONYM DESERT)
|
|
(ADJECTIVE GREAT UNDERGROUND)
|
|
(RESEARCH
|
|
"\"One of the many awe-inspiring features of Dimwit's castle in Flatheadia.\"")
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-6>)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<ROOM WINDBLOWN-SANDS
|
|
(LOC ROOMS)
|
|
(DESC "Windblown Sands")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in the midst of a searingly hot desert. Trails snake amongst
|
|
the dunes in many directions.")
|
|
(NORTH SORRY "Sand dunes block your way.")
|
|
(NE TO G-U-DESERT)
|
|
(EAST TO CACTUS-PATCH)
|
|
(SE TO DESERT-PLAIN)
|
|
(SOUTH SORRY "Sand dunes block your way.")
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(WEST SORRY "Sand dunes block your way.")
|
|
(NW SORRY "Sand dunes block your way.")
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-5>)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<ROOM CACTUS-PATCH
|
|
(LOC ROOMS)
|
|
(DESC "Cactus Patch")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in the midst of a searingly hot desert. Trails snake amongst
|
|
the dunes in many directions.")
|
|
(NORTH TO G-U-DESERT)
|
|
(NE SORRY "Sand dunes block your way.")
|
|
(EAST SORRY "Sand dunes block your way.")
|
|
(SE SORRY "Sand dunes block your way.")
|
|
(SOUTH SORRY "Sand dunes block your way.")
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(WEST TO WINDBLOWN-SANDS)
|
|
(NW SORRY "Sand dunes block your way.")
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-6>)
|
|
(ICON CACTUS-PATCH-ICON)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<OBJECT CACTI
|
|
(LOC CACTUS-PATCH)
|
|
(DESC "cactus")
|
|
(SYNONYM CACTUS CACTI)
|
|
(FLAGS NDESCBIT PLANTBIT)
|
|
(ACTION CACTI-F)>
|
|
|
|
<ROUTINE CACTI-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "All the cacti look particularly prickly." CR>)
|
|
(<AND <VERB? LISTEN>
|
|
,PLANT-TALKER>
|
|
<TELL
|
|
"The cacti, in parched voices, are exchanging wry witticisms. It seems
|
|
that all cacti have a very dry sense of humor." CR>)
|
|
(<TOUCHING? ,CACTI>
|
|
<TELL "Youch! Nasty cactus pricks!" CR>)>>
|
|
|
|
<ROOM DESERT-PLAIN
|
|
(LOC ROOMS)
|
|
(DESC "Desert Plain")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in the midst of a searingly hot desert. Trails snake amongst
|
|
the dunes in many directions.")
|
|
(NORTH SORRY "Sand dunes block your way.")
|
|
(NE SORRY "Sand dunes block your way.")
|
|
(EAST TO TALL-DUNES)
|
|
(SE TO RIPPLED-SANDS)
|
|
(SOUTH SORRY "Sand dunes block your way.")
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(WEST SORRY "Sand dunes block your way.")
|
|
(NW TO WINDBLOWN-SANDS)
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-6>)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<ROOM TALL-DUNES
|
|
(LOC ROOMS)
|
|
(DESC "Tall Dunes")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in the midst of a searingly hot desert. Trails snake amongst
|
|
the dunes in many directions.")
|
|
(NORTH SORRY "Sand dunes block your way.")
|
|
(NE SORRY "Sand dunes block your way.")
|
|
(EAST SORRY "Sand dunes block your way.")
|
|
(SE SORRY "Sand dunes block your way.")
|
|
(SOUTH TO RIPPLED-SANDS)
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(WEST TO DESERT-PLAIN)
|
|
(NW SORRY "Sand dunes block your way.")
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-7>)
|
|
(ICON TALL-DUNES-ICON)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<ROOM RIPPLED-SANDS
|
|
(LOC ROOMS)
|
|
(DESC "Rippled Sands")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in the midst of a searingly hot desert. Trails snake amongst
|
|
the dunes in many directions.")
|
|
(NORTH TO TALL-DUNES)
|
|
(NE TO OASIS)
|
|
(EAST SORRY "Sand dunes block your way.")
|
|
(SE SORRY "Sand dunes block your way.")
|
|
(SOUTH SORRY "Sand dunes block your way.")
|
|
(SW SORRY "Sand dunes block your way.")
|
|
(WEST SORRY "Sand dunes block your way.")
|
|
(NW TO DESERT-PLAIN)
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-7 MAP-GEN-X-7>)
|
|
(ACTION DESERT-ROOM-F)>
|
|
|
|
<GLOBAL DESERT-DEATH 0>
|
|
|
|
<ROUTINE DESERT-ROOM-F ("OPT" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
<NOT <IN? ,PROTAGONIST ,CAMEL>>>
|
|
<SETG DESERT-DEATH <+ ,DESERT-DEATH 1>>
|
|
<QUEUE I-DESERT-RESET -1>
|
|
<RETURN-FROM-MAP>
|
|
<TELL
|
|
"You trudge along beneath the searing gaze of an artificial desert sun">
|
|
<COND (<EQUAL? ,DESERT-DEATH 4>
|
|
<TELL ". Wavering dizziness threatens your every step">)
|
|
(<EQUAL? ,DESERT-DEATH 3>
|
|
<TELL ". You won't last much longer in this dry heat">)>
|
|
<TELL ,ELLIPSIS>)
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
<EQUAL? ,DESERT-DEATH 5>>
|
|
<RETURN-FROM-MAP>
|
|
<JIGS-UP
|
|
" As with so many unprepared travellers before you, you succumb to the
|
|
merciless justice of the desert.">)>>
|
|
|
|
<ROUTINE I-DESERT-RESET ()
|
|
<COND (<NOT <FSET? ,HERE ,DESERTBIT>>
|
|
<SETG DESERT-DEATH 0>
|
|
<DEQUEUE I-DESERT-RESET>)>
|
|
<RFALSE>>
|
|
|
|
<ROOM OASIS
|
|
(LOC ROOMS)
|
|
(DESC "Great Underground Oasis")
|
|
(REGION "Flatheadia")
|
|
(SW TO RIPPLED-SANDS)
|
|
(FLAGS RLANDBIT ONBIT DESERTBIT UNDERGROUNDBIT)
|
|
(GLOBAL G-U-DESERT)
|
|
(VALUE 8)
|
|
(MAP-LOC <PTABLE DESERT-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-8>)
|
|
(ICON G-U-OASIS-ICON)
|
|
(ACTION CAMEL-DRINK-ROOM-F)>
|
|
|
|
<OBJECT OASIS-OBJECT
|
|
(LOC OASIS)
|
|
(DESC "oasis")
|
|
(SYNONYM OASIS POOL SPRING)
|
|
(ADJECTIVE GREAT UNDERGROUND INCREDIBLY CLEAR COLD)
|
|
(FLAGS VOWELBIT NDESCBIT WATERBIT)>
|
|
|
|
<ROOM PHIL-HALL
|
|
(LOC ROOMS)
|
|
(DESC "Frobozz Philharmonic Hall")
|
|
(REGION "Flatheadia")
|
|
(NORTH PER FR-BASEMENT-ENTER-F)
|
|
(SOUTH TO NORTH-SHORE)
|
|
(EAST TO THEATRE)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(SYNONYM HALL ORCHESTRA)
|
|
(ADJECTIVE FROBOZZ PHILHARMONIC)
|
|
(RESEARCH
|
|
"\"Frobozz Philharmonic Hall is the home of the renowned Frobozz Philharmonic
|
|
Orchestra.\"")
|
|
(GLOBAL FR-BLDG)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-4>)
|
|
(ACTION PHIL-HALL-F)
|
|
(THINGS LONE SPOTLIGHT SPOTLIGHT-PS
|
|
<> SHADOW PHIL-SHADOW-PS)>
|
|
|
|
<ROUTINE PHIL-HALL-F ("OPT" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"This was the visually impressive but acoustically abysmal home of the royal
|
|
orchestra, but the musicians (like everyone else) have fled the eastlands.
|
|
Uncountable rows of velvet-covered seats extend into the shadows beyond your
|
|
light. Gilt-trimmed balconies hang above the huge wooden stage. ">
|
|
<COND (<IN? ,CONDUCTOR-STAND ,HERE> ;"thanks to pigeon/perch"
|
|
<TELL
|
|
"A lone spotlight illuminates the conductor's stand. ">)>
|
|
<TELL "Passages lead east, north and south.">)>>
|
|
|
|
<ROUTINE PHIL-SHADOW-PS ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "Like most shadows, a little creepy." CR>)>>
|
|
|
|
<ROUTINE SPOTLIGHT-PS ()
|
|
<COND (<AND <VERB? EXAMINE>
|
|
<IN? ,CONDUCTOR-STAND ,HERE> ;"thanks to pigeon/perch">
|
|
<TELL
|
|
"The spotlight bathes the conductor's stand in a circle of light." CR>)
|
|
(<VERB? ENTER>
|
|
<COND (<IN? ,PROTAGONIST ,CONDUCTOR-STAND>
|
|
<TELL ,LOOK-AROUND>)
|
|
(<IN? ,CONDUCTOR-STAND ,HERE>
|
|
<PERFORM ,V?ENTER ,CONDUCTOR-STAND>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"You stand in the center of the circle of light, to little effect." CR>)>)>>
|
|
|
|
<OBJECT CONDUCTOR-STAND
|
|
(LOC PHIL-HALL)
|
|
(DESC "conductor's stand")
|
|
(SYNONYM STAND PLATFORM)
|
|
(ADJECTIVE CONDUCTOR RECTANGULAR)
|
|
(CAPACITY 50)
|
|
(FLAGS NDESCBIT VEHBIT CONTBIT OPENBIT SURFACEBIT SEARCHBIT)
|
|
(ACTION CONDUCTOR-STAND-F)>
|
|
|
|
<ROUTINE CONDUCTOR-STAND-F ("OPTIONAL" (OARG <>))
|
|
<COND (.OARG
|
|
<RFALSE>)
|
|
(<AND <VERB? ENTER STAND-ON>
|
|
<NOT ,TIME-STOPPED>>
|
|
<TELL "The " D ,CONDUCTOR-STAND " plunges ">
|
|
<COND (<EQUAL? ,HERE ,CONDUCTOR-PIT>
|
|
<TELL "up">)
|
|
(T
|
|
<TELL "down">)>
|
|
<TELL "ward, and you along with it" ,ELLIPSIS>
|
|
<MOVE ,CONDUCTOR-STAND
|
|
<COND (<EQUAL? ,HERE ,CONDUCTOR-PIT>
|
|
<FSET ,CONDUCTOR-STAND ,NDESCBIT>
|
|
,PHIL-HALL)
|
|
(T
|
|
<FCLEAR ,CONDUCTOR-STAND ,NDESCBIT>
|
|
,CONDUCTOR-PIT)>>
|
|
<GOTO ,CONDUCTOR-STAND>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "The stand is a rectangular platform about a foot high.">
|
|
<COND (<FIRST? ,CONDUCTOR-STAND>
|
|
<TELL " ">
|
|
<RFALSE>)
|
|
(T
|
|
<CRLF>)>)>>
|
|
|
|
<ROOM CONDUCTOR-PIT
|
|
(LOC ROOMS)
|
|
(DESC "Conductor's Pit")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"You are in a tiny space beneath the stage. There are no visible exits.")
|
|
(OUT SORRY "There are no visible exits.")
|
|
(UP SORRY "There are no visible exits.")
|
|
(FLAGS RLANDBIT)
|
|
(SYNONYM PIT)
|
|
(ADJECTIVE CONDUCTOR)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-3>)
|
|
(ACTION CONDUCTOR-PIT-F)>
|
|
|
|
<ROUTINE CONDUCTOR-PIT-F ("OPT" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
<NOT <IN? ,CONDUCTOR-STAND ,CONDUCTOR-PIT>>>
|
|
;"if you pigeon your way into the pit"
|
|
<FSET ,VIOLIN ,TOUCHBIT>)>>
|
|
|
|
<OBJECT VIOLIN
|
|
(LOC CONDUCTOR-PIT)
|
|
(DESC "fancy violin")
|
|
(FDESC
|
|
"Sitting by the edge of the stand is a beautiful, handmade violin; possibly
|
|
a Stradivarius.")
|
|
(SYNONYM STRADIVARIUS VIOLIN)
|
|
(ADJECTIVE FANCY BEAUTIFUL HANDMADE STRADIVARIUS)
|
|
(FLAGS TAKEBIT BURNBIT MAGICBIT)
|
|
(SIZE 10)
|
|
(VALUE 12)
|
|
(ACTION VIOLIN-F)>
|
|
|
|
<BEGIN-SEGMENT 0>
|
|
|
|
<ROUTINE VIOLIN-F ()
|
|
<COND (<VERB? PLAY>
|
|
<TELL
|
|
"An amazingly offensive noise issues from the violin." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"This is a beautiful instrument which, in the right hands, would
|
|
certainly produce magnificent music." CR>)>>
|
|
|
|
<END-SEGMENT>
|
|
|
|
<BEGIN-SEGMENT LAKE>
|
|
|
|
<ROOM THEATRE
|
|
(LOC ROOMS)
|
|
(DESC "Theatre")
|
|
(REGION "Flatheadia")
|
|
(LDESC
|
|
"This twenty-thousand-seat theatre was renowned for its terrible acoustics,
|
|
although Dimwit always claimed he could \"hear things great\" from his box
|
|
in the front of the theatre. Exits lead west and southwest.")
|
|
(WEST TO PHIL-HALL)
|
|
(SW TO NORTH-SHORE)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(SYNONYM THEATRE THEATER)
|
|
(MAP-LOC <PTABLE LAKE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-5>)
|
|
(THINGS DIMWIT\'S BOX DIMWIT-BOX-PS)>
|
|
|
|
<ROUTINE DIMWIT-BOX-PS ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "Plush. Very plush." CR>)
|
|
(<VERB? SEARCH LOOK-INSIDE>
|
|
<PERFORM ,V?SEARCH ,GLOBAL-HERE>
|
|
<RTRUE>)
|
|
(<VERB? PUT>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? ENTER CLIMB-ON>
|
|
<TELL "Why bother? No show tonight." CR>)>>
|
|
|
|
<END-SEGMENT> |