2219 lines
66 KiB
Plaintext
2219 lines
66 KiB
Plaintext
"SHADOW for
|
|
Zork III: The Dungeon Master
|
|
The Great Underground Empire (Part 3)
|
|
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
|
|
"
|
|
|
|
<ROOM CREEPY-CRAWL
|
|
(IN ROOMS)
|
|
(DESC "Creepy Crawl")
|
|
(LDESC
|
|
"You are in a dark and quite creepy crawlway with passages leaving to the
|
|
north, east, south, and southwest.")
|
|
(FLAGS RLANDBIT)
|
|
(NORTH TO JUNCTION)
|
|
(SOUTH TO FOGGY-ROOM)
|
|
(SW TO SHADOW-1)
|
|
(EAST TO TIGHT-SQUEEZE)
|
|
(ACTION CREEPY-CRAWL-F)>
|
|
|
|
<ROOM SHADOW-1
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are at the eastern end of a dark, featureless landscape of shallow
|
|
hills. Paths to the east and southeast re-enter the rock.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(NE "Towering walls of rock bar your way.")
|
|
(NORTH "Towering walls of rock bar your way.")
|
|
(SOUTH TO SHADOW-5)
|
|
(EAST TO CREEPY-CRAWL)
|
|
(NW TO SHADOW-2)
|
|
(WEST TO SHADOW-3)
|
|
(SW TO SHADOW-4)
|
|
(SE TO FOGGY-ROOM)>
|
|
|
|
<ROOM SHADOW-2
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are in a shadowy land of low, rolling hills stretching out to the west
|
|
and south. The land is bordered to the north by a massive stone wall.
|
|
Ancient and weathered, the wall has crumbled enough at one point to permit
|
|
passage.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(NE "A stone wall blocks the way.")
|
|
(NORTH TO CLEARING)
|
|
(NW "A stone wall blocks the way.")
|
|
(SE TO SHADOW-1)
|
|
(SW TO SHADOW-7)
|
|
(SOUTH TO SHADOW-3)
|
|
(WEST TO SHADOW-8)
|
|
(EAST TO SHADOW-1)
|
|
(GLOBAL RUBBLE STONE-WALL)>
|
|
|
|
<ROOM SHADOW-3
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are in a dark and shadowy land. All around you are gentle hills and
|
|
eerie shadows. Far above, shrouded in mist, you can barely make out the
|
|
ceiling of the enormous cavern that spans this entire land.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(PSEUDO "MIST" MIST-PSEUDO)
|
|
(NW TO SHADOW-8)
|
|
(NE TO SHADOW-1)
|
|
(SE TO SHADOW-1)
|
|
(SW TO SHADOW-6)
|
|
(NORTH TO SHADOW-2)
|
|
(SOUTH TO SHADOW-4)
|
|
(WEST TO SHADOW-7)
|
|
(EAST TO SHADOW-1)>
|
|
|
|
<ROOM SHADOW-4
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are in an ominously dark land of rolling hills. The ground becomes
|
|
softer to the south.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(NORTH TO SHADOW-3)
|
|
(EAST TO SHADOW-1)
|
|
(NE TO SHADOW-1)
|
|
(SE TO SHADOW-5)
|
|
(SOUTH TO SHADOW-5)
|
|
(SW "The ground becomes too soft to walk on in that direction.")
|
|
(WEST TO SHADOW-6)
|
|
(NW TO SHADOW-7)>
|
|
|
|
<ROOM SHADOW-5
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are at the southern end of a shadowy land. The ground here is quite
|
|
soft, and the area is surrounded by quicksand on most sides. North of here
|
|
is a terrain of shallow hills.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(PSEUDO "QUICKS" QUICKSAND-PSEUDO)
|
|
(NORTH TO SHADOW-4)
|
|
(NW TO SHADOW-6)
|
|
(NE TO SHADOW-1)
|
|
(SE "The quicksand prevents movement in that direction.")
|
|
(WEST "The quicksand prevents movement in that direction.")
|
|
(SOUTH "The quicksand prevents movement in that direction.")
|
|
(SW "The quicksand prevents movement in that direction.")
|
|
(EAST "The quicksand prevents movement in that direction.")>
|
|
|
|
<ROOM SHADOW-6
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are near the southern end of the land of shadow. The ground here is
|
|
soft and spongy, and it becomes quicksand to the south. North and east of here
|
|
are gentle, rolling hills. A gentle sea breeze wafts over a steeply sloping
|
|
path to the west.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(NORTH TO SHADOW-7)
|
|
(NW TO FLATHEAD-OCEAN)
|
|
(WEST TO FLATHEAD-OCEAN)
|
|
(DOWN TO FLATHEAD-OCEAN)
|
|
(SE TO SHADOW-5)
|
|
(EAST TO SHADOW-4)
|
|
(NE TO SHADOW-3)
|
|
(SOUTH "The quicksand prevents movement in that direction.")
|
|
(SW "The quicksand prevents movement in that direction.")
|
|
(PSEUDO "QUICKS" QUICKSAND-PSEUDO)>
|
|
|
|
<ROOM SHADOW-7
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are in a land of dark shadows and shallow hills, which stretch out in all
|
|
directions. To the west, the land dips sharply.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(NE TO SHADOW-2)
|
|
(EAST TO SHADOW-3)
|
|
(SE TO SHADOW-4)
|
|
(SOUTH TO SHADOW-6)
|
|
(NORTH TO SHADOW-8)
|
|
(DOWN TO FLATHEAD-OCEAN)
|
|
(NW TO FLATHEAD-OCEAN)
|
|
(WEST TO FLATHEAD-OCEAN)
|
|
(SW TO FLATHEAD-OCEAN)>
|
|
|
|
<ROOM SHADOW-8
|
|
(IN ROOMS)
|
|
(DESC "Land of Shadow")
|
|
(LDESC
|
|
"You are standing atop a steep cliff, looking west over a vast ocean.
|
|
Far below, the surf pounds at a sandy beach. To the south and east are
|
|
rolling hills filled with eerie shadows. A path cut into the face of the
|
|
cliff descends toward the beach. To the north is a tall stone wall,
|
|
which ends at the cliff edge. It was obviously built long ago, and
|
|
directly north is a spot where you could climb over the rubble of the
|
|
decaying wall.")
|
|
(FLAGS RLANDBIT)
|
|
(ACTION SHADOW-ROOMS)
|
|
(SOUTH TO SHADOW-7)
|
|
(EAST TO SHADOW-2)
|
|
(SE TO SHADOW-3)
|
|
(SW TO FLATHEAD-OCEAN)
|
|
(WEST TO FLATHEAD-OCEAN)
|
|
(NE "A stone wall blocks the way.")
|
|
(NW "A stone wall blocks the way.")
|
|
(DOWN TO FLATHEAD-OCEAN)
|
|
(NORTH TO CLIFF)
|
|
(GLOBAL RUBBLE STONE-WALL)>
|
|
|
|
<ROOM FLATHEAD-OCEAN
|
|
(IN ROOMS)
|
|
(DESC "Flathead Ocean")
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(NORTH TO CLIFF-BASE)
|
|
(ENTER"Between the rocks, wind, and waves, you wouldn't last a minute.")
|
|
(WEST "Between the rocks, wind, and waves, you wouldn't last a minute.")
|
|
(SW "Between the rocks, wind, and waves, you wouldn't last a minute.")
|
|
(NW "Between the rocks, wind, and waves, you wouldn't last a minute.")
|
|
(ACTION FLATHEAD-OCEAN-F)
|
|
(SE TO SHADOW-6)
|
|
(NE TO SHADOW-8)
|
|
(EAST TO SHADOW-7)
|
|
(SOUTH "The quicksand prevents movement here.")
|
|
(PSEUDO "QUICKS" QUICKSAND-PSEUDO "MIST" MIST-PSEUDO)>
|
|
|
|
<OBJECT SHADOW
|
|
(DESC "hooded figure")
|
|
(SYNONYM SHADOW FIGURE MAN WOMAN)
|
|
(ADJECTIVE HOODED CLOAKED)
|
|
(FLAGS ACTORBIT TRANSBIT CONTBIT OPENBIT)
|
|
(ACTION SHADOW-F)
|
|
(DESCFCN SHADOW-F)>
|
|
|
|
<OBJECT HOOD
|
|
(IN SHADOW)
|
|
(DESC "hood")
|
|
(SYNONYM HOOD)
|
|
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT WEARBIT)
|
|
(ACTION HOOD-F)>
|
|
|
|
<OBJECT CLOAK
|
|
(IN SHADOW)
|
|
(DESC "cloak")
|
|
(SYNONYM CLOAK)
|
|
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT WEARBIT)
|
|
(ACTION CLOAK-F)>
|
|
|
|
<GLOBAL DIRS
|
|
<LTABLE P?NORTH "north" P?SOUTH "south" P?EAST "east" P?WEST "west"
|
|
P?NW "northwest" P?NE "northeast" P?SE "southeast"
|
|
P?SW "southwest" P?UP "stairs" P?DOWN "stairs">>
|
|
|
|
<GLOBAL DIR-TBL <TABLE 0 0 0 0 0 0 0 0 0 0 0 0>>
|
|
|
|
<ROUTINE PICK-DIRECTION (RM "AUX" (NXT 0) (CNT 0) (OFFS 0))
|
|
<REPEAT ()
|
|
<COND (<==? <SET NXT <NEXTP .RM .NXT>> 0>
|
|
<RETURN>)
|
|
(<NOT <L? .NXT ,LOW-DIRECTION>>
|
|
<COND (<NOT <EQUAL? .NXT ,P?UP ,P?DOWN>>
|
|
<SET OFFS <+ .OFFS 1>>
|
|
<PUT ,DIR-TBL .OFFS .NXT>
|
|
<SET CNT <+ .CNT 1>>)>)>>
|
|
<GET ,DIR-TBL <RANDOM .CNT>>>
|
|
|
|
<ROUTINE SHADOW-F ("OPTIONAL" (RARG <>))
|
|
<COND (<==? .RARG ,M-OBJDESC>
|
|
<COND (<NOT ,BLOCKED-DIR>
|
|
<SETG BLOCKED-DIR <PICK-DIRECTION ,HERE>>)>
|
|
<TELL
|
|
"A cloaked and hooded person, carrying a sword not unlike your own,">
|
|
<COND (<G? ,S-STRENGTH 3>
|
|
<TELL "
|
|
is standing blocking the way to the ">
|
|
<TELL <LKP ,BLOCKED-DIR ,DIRS> "." CR>)
|
|
(T <TELL "
|
|
is here." CR>)>
|
|
<TELL "The hooded figure" <GET ,SHADOW-DIAG ,S-STRENGTH> CR>)
|
|
(<AND <VERB? GIVE> <==? ,PRSI ,SHADOW>>
|
|
<TELL
|
|
"The hooded figure isn't interested in your gifts." CR>)
|
|
(<HELLO? ,SHADOW>
|
|
<TELL
|
|
"The hooded figure does not respond to your words." CR>)
|
|
(<AND <VERB? ATTACK> <==? ,PRSI ,SWORD>>
|
|
<COND (<NOT ,SHADOW-POINT-2>
|
|
<SETG SCORE <+ ,SCORE 1>>
|
|
<SETG SHADOW-POINT-2 T>)>
|
|
<SHADOW-ATTACK>)
|
|
(<VERB? ATTACK>
|
|
<TELL
|
|
"The hooded figure ignores your feeble attack." CR>
|
|
<SETG ATTACK-MODE T>
|
|
<ENABLE <QUEUE I-CURE 10>>
|
|
<ENABLE <QUEUE I-SHADOW-REPLY -1>>)>>
|
|
|
|
<GLOBAL SHADOW-DIAG
|
|
<TABLE
|
|
"?"
|
|
" appears to be badly hurt and defenseless."
|
|
" is hurt, and its strength appears to be fading."
|
|
" has some wounds and is probably not capable of hindering your movement."
|
|
" has a light wound which hasn't affected its seemingly great strength."
|
|
" has a great deal of strength, perhaps matching your own.">>
|
|
|
|
<GLOBAL P-STRENGTH 5>
|
|
<GLOBAL S-STRENGTH 5>
|
|
|
|
<GLOBAL ATTACK-MODE <>>
|
|
<GLOBAL SHADOW-GONE <>>
|
|
|
|
<ROUTINE I-CURE ()
|
|
<COND (<NOT <==? ,P-STRENGTH 5>>
|
|
<SETG P-STRENGTH <+ ,P-STRENGTH 1>>)>
|
|
<COND (<NOT <==? ,S-STRENGTH 5>>
|
|
<SETG S-STRENGTH <+ ,S-STRENGTH 1>>)>
|
|
<COND (<NOT <==? <+ ,P-STRENGTH ,S-STRENGTH> 10>>
|
|
<QUEUE I-CURE 10>)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE SHADOW-ATTACK ()
|
|
<COND (<NOT ,ATTACK-MODE>
|
|
<ENABLE <QUEUE I-CURE 10>>
|
|
<SETG ATTACK-MODE T>
|
|
<ENABLE <QUEUE I-SHADOW-REPLY -1>>)>
|
|
<COND (<PROB <+ <* ,P-STRENGTH 10> 10>>
|
|
<COND (<PROB 85>
|
|
<SETG S-STRENGTH <- ,S-STRENGTH 1>>
|
|
<COND (<0? ,S-STRENGTH>
|
|
<SHADOW-DIES>
|
|
<RTRUE>)>
|
|
<TELL <RANDOM-ELEMENT ,P-HITS> CR>
|
|
<TELL "The figure" <GET ,SHADOW-DIAG ,S-STRENGTH> CR>)
|
|
(T
|
|
<SETG S-STRENGTH <- ,S-STRENGTH 2>>
|
|
<COND (<0? ,S-STRENGTH> <SETG S-STRENGTH 1>)
|
|
(<L? ,S-STRENGTH 1>
|
|
<SHADOW-DIES>
|
|
<RTRUE>)>
|
|
<TELL
|
|
"A sharp thrust and the hooded figure is badly wounded!" CR>
|
|
<TELL "The figure" <GET ,SHADOW-DIAG ,S-STRENGTH> CR>)>)
|
|
(T
|
|
<COND (<L? ,S-STRENGTH 2>
|
|
<TELL
|
|
"Your opponent blocks your attack with its sword." CR>)
|
|
(T <TELL <RANDOM-ELEMENT ,P-MISSES> CR>)>)>>
|
|
|
|
<GLOBAL P-HITS <LTABLE
|
|
"A good parry! Your sword wounds the hooded figure!"
|
|
"A quick stroke catches the hooded figure off guard! Blood trickles
|
|
down the figure's arm!"
|
|
"The hooded figure is hit with a quick slash!">>
|
|
|
|
<GLOBAL P-MISSES <LTABLE
|
|
"Your move was not quick enough and misses the mark."
|
|
"A quick stroke, but the hooded figure is on guard."
|
|
"A good stroke, but it's too slow."
|
|
"A good slash, but it misses by a mile."
|
|
"You charge, but the hooded figure jumps nimbly aside.">>
|
|
|
|
<GLOBAL S-HITS <LTABLE
|
|
"The hooded figure catches you off guard and wounds you!"
|
|
"You are wounded by a lightning thrust!"
|
|
"Your quick reflexes cannot stop the hooded figure's stroke! You are hit!">>
|
|
|
|
<ROUTINE I-SHADOW-REPLY ()
|
|
<COND (<OR <NOT ,ATTACK-MODE> <NOT <IN? ,SHADOW ,HERE>>>
|
|
<QUEUE I-SHADOW-REPLY 0>
|
|
<SETG ATTACK-MODE <>>
|
|
<RFALSE>)>
|
|
<COND (<AND <PROB <+ <* ,S-STRENGTH 10> 10>> <G? ,S-STRENGTH 1>>
|
|
<COND (<PROB 90>
|
|
<COND (<L? <SETG P-STRENGTH <- ,P-STRENGTH 1>> 1>
|
|
<SETG P-STRENGTH 1>
|
|
<TELL
|
|
"The hooded figure swings its sword and sends yours flying to the ground.
|
|
Although you are defenseless, the figure reaches for your sword and hands it
|
|
back to you, nodding grimly." CR>)
|
|
(T
|
|
<TELL <RANDOM-ELEMENT ,S-HITS> CR>)>)
|
|
(T
|
|
<COND (<L? <SETG P-STRENGTH <- ,P-STRENGTH 2>> 1>
|
|
<JIGS-UP
|
|
"In your wounded state, you cannot defend yourself against your still-quick
|
|
opponent. Slowly and carefully, the figure starts to remove its hood as you
|
|
fall to the ground, dead.">)
|
|
(T
|
|
<TELL
|
|
"A brilliant feint puts you off guard, and the hooded figure slips its
|
|
sword between your ribs. You are hurt very badly." CR>)>)>)
|
|
(<L? ,S-STRENGTH 3>
|
|
<TELL
|
|
"The hooded figure attempts a thrust, but its weakened state prevents
|
|
hitting you." CR>)
|
|
(T
|
|
<TELL <RANDOM-ELEMENT ,S-MISSES> CR>)>>
|
|
|
|
<GLOBAL S-MISSES <LTABLE
|
|
"The hooded figure stabs nonchalantly with its sword and misses."
|
|
"You dodge as the hooded figure comes in low."
|
|
"The hooded figure tries to sneak past your guard, but you twist away."
|
|
"The hooded figure thrusts, but you fight back and send it
|
|
flying to the ground!">>
|
|
|
|
<ROUTINE SHADOW-DIES ()
|
|
<TELL
|
|
"The hooded figure, fatally wounded, slumps to the ground. It gazes up at
|
|
you once, and you catch a brief glimpse of deep and sorrowful eyes. Before
|
|
you can react, the figure vanishes in a cloud of fetid vapor." CR>
|
|
<REMOVE ,SHADOW>
|
|
<SETG SHADOW-GONE T>
|
|
<SETG BLOCKED-DIR <>>>
|
|
|
|
<ROUTINE HOOD-F ()
|
|
<COND (<AND <VERB? LOOK-UNDER> <IN? ,HOOD ,SHADOW>>
|
|
<TELL
|
|
"The figure's hood casts a dark shadow over its face. There is no way from
|
|
where you stand to look beneath it." CR>)
|
|
(<AND <VERB? TAKE PUT> <IN? ,HOOD ,SHADOW>>
|
|
<COND (<==? ,S-STRENGTH 1>
|
|
<TELL
|
|
"You slowly remove the hood from your badly wounded opponent and recoil
|
|
in horror at the sight of your own face, weary and wounded. A faint
|
|
smile comes to the lips and then the face starts to change, very slowly,
|
|
into that of an old, wizened person. The image fades and with it the body
|
|
of your hooded opponent. The cloak remains on the ground." CR>
|
|
<REMOVE ,SHADOW>
|
|
<SETG SHADOW-GONE T>
|
|
<MOVE ,HOOD ,WINNER>
|
|
<FCLEAR ,HOOD ,NDESCBIT>
|
|
<MOVE ,CLOAK ,HERE>
|
|
<FCLEAR ,CLOAK ,NDESCBIT>)
|
|
(<==? ,S-STRENGTH 2>
|
|
<TELL
|
|
"The hooded figure, though recovering from wounds, is strong enough to
|
|
force you back." CR>)
|
|
(T
|
|
<TELL
|
|
"You cannot get close enough to the hooded figure to remove the hood." CR>)>)>>
|
|
|
|
<ROUTINE CLOAK-F ()
|
|
<COND (<AND <VERB? LOOK-UNDER> <IN? ,CLOAK ,SHADOW>>
|
|
<TELL
|
|
"You cannot get close enough to look underneath the cloak." CR>)
|
|
(<AND <VERB? TAKE> <IN? ,CLOAK ,SHADOW>>
|
|
<TELL
|
|
"The cloak is fastened around the neck of the hooded figure. It would be
|
|
difficult to remove." CR>)>>
|
|
|
|
<GLOBAL BLOCKED-DIR <>>
|
|
|
|
<ROUTINE SHADOW-ROOMS (RARG)
|
|
<COND (<AND <==? .RARG ,M-BEG>
|
|
<VERB? WALK>
|
|
<==? ,PRSO ,BLOCKED-DIR>>
|
|
<TELL "Your way is blocked by the hooded figure." CR>)
|
|
(<==? .RARG ,M-END>
|
|
<COND (<NOT <IN? ,SHADOW ,HERE>>
|
|
<SETG BLOCKED-DIR <>>
|
|
<REMOVE ,SHADOW>)>
|
|
<COND (,SHADOW-GONE <RFALSE>)
|
|
(<IN? ,SHADOW ,HERE>
|
|
<COND (<AND <PROB 30> <NOT ,ATTACK-MODE>>
|
|
<SETG ATTACK-MODE T>
|
|
<ENABLE <QUEUE I-CURE 10>>
|
|
<ENABLE <QUEUE I-SHADOW-REPLY -1>>)>)
|
|
(<PROB 30>
|
|
<TELL
|
|
"You can hear quiet footsteps nearby." CR>)
|
|
(<AND <PROB 30> ,LIT <G? ,S-STRENGTH 3>>
|
|
<SETG BLOCKED-DIR <PICK-DIRECTION ,HERE>>
|
|
<TELL
|
|
"Through the shadows, a cloaked and hooded figure appears before you,
|
|
blocking the ">
|
|
<TELL <LKP ,BLOCKED-DIR ,DIRS>
|
|
"ern exit from the room and carrying a
|
|
brightly glowing sword." CR>
|
|
<SHADOW-ARRIVAL>
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE SHADOW-ARRIVAL ()
|
|
<MOVE ,SHADOW ,HERE>
|
|
<COND (<NOT ,SHADOW-POINT-1>
|
|
<SETG SCORE <+ ,SCORE 1>>
|
|
<SETG SHADOW-POINT-1 T>)>
|
|
<COND (<NOT <IN? ,SWORD ,WINNER>>
|
|
<MOVE ,SWORD ,WINNER>
|
|
<COND (,SWORD-IN-STONE?
|
|
<TELL
|
|
"From nowhere, the sword from the junction appears in your hand, wildly
|
|
glowing!" CR>)
|
|
(T
|
|
<TELL
|
|
"Your sword, glowing wildly, appears in your hand!" CR>)>
|
|
<SETG SWORD-IN-STONE? <>>)>>
|
|
|
|
<GLOBAL SHADOW-POINT-1 <>>
|
|
<GLOBAL SHADOW-POINT-2 <>>
|
|
|
|
<ROUTINE CREEPY-CRAWL-F (RARG)
|
|
<COND (<==? .RARG ,M-END>
|
|
<SETG BLOCKED-DIR <>>
|
|
<RTRUE>)>>
|
|
|
|
;" Cooperative Problem"
|
|
|
|
<ROOM ZORK2-STAIR
|
|
(IN ROOMS)
|
|
(DESC "Endless Stair")
|
|
(LDESC
|
|
"You are at the bottom of a seemingly endless stair, winding its way
|
|
upward beyond your vision. An eerie light, coming from all around you,
|
|
casts strange shadows on the walls. To the south is a dark and winding
|
|
trail.")
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(NORTH "The stairs are endless.")
|
|
(UP "The stairs are endless.")
|
|
(SOUTH TO JUNCTION)
|
|
(GLOBAL STAIRS)>
|
|
|
|
<ROOM JUNCTION
|
|
(IN ROOMS)
|
|
(DESC "Junction")
|
|
(LDESC
|
|
"You are at the junction of a north-south passage and an east-west
|
|
passage. To the north, you can make out the bottom of a stairway. The
|
|
ways to the east and south are relatively cramped, but a wider trail
|
|
leads to the west.")
|
|
(FLAGS RLANDBIT)
|
|
(WEST TO CLEARING)
|
|
(NORTH TO ZORK2-STAIR)
|
|
(SOUTH TO CREEPY-CRAWL)
|
|
(EAST TO DAMP-PASSAGE)>
|
|
|
|
<ROOM CLEARING
|
|
(IN ROOMS)
|
|
(DESC "Barren Area")
|
|
(LDESC
|
|
"You are west of the junction, where the rock-bound passage widens out
|
|
into a large, flat area. Although the land here is barren, you can see
|
|
vegetation to the west. South of here is a mighty wall of stone, ancient
|
|
and crumbling. To the southwest the wall has decayed enough to form an
|
|
opening, through which seeps a thin mist. A trail dips sharply into
|
|
rocky terrain to the northwest.")
|
|
(FLAGS RLANDBIT)
|
|
(SW TO SHADOW-2)
|
|
(NW TO SLOPE)
|
|
(SOUTH "A stone wall blocks your way.")
|
|
(SE "A stone wall blocks your way.")
|
|
(WEST TO CLIFF)
|
|
(EAST TO JUNCTION)
|
|
(GLOBAL RUBBLE STONE-WALL)
|
|
(PSEUDO "MIST" MIST-PSEUDO)>
|
|
|
|
<ROOM SLOPE
|
|
(IN ROOMS)
|
|
(DESC "Hairpin Loop")
|
|
(LDESC
|
|
"You are at a sharp turn on a narrow and steeply sloping path, strewn
|
|
with boulders of various sizes. The path climbs sharply toward a
|
|
desolate plain to the southeast. Southwest of here the path winds down
|
|
to the base of a cliff.")
|
|
(SE TO CLEARING)
|
|
(UP TO CLEARING)
|
|
(SW TO CLIFF-BASE)
|
|
(DOWN TO CLIFF-BASE)
|
|
(GLOBAL RUBBLE)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM CLIFF-BASE
|
|
(IN ROOMS)
|
|
(DESC "Cliff Base")
|
|
(LDESC
|
|
"You are at the base of a steep cliff. Directly above you is a wide
|
|
ledge and far above that some natural sunlight can be seen. To the
|
|
northeast is a steeply climbing path and the ground becomes sandy toward
|
|
the south.")
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(UP "You can't get up the rock face.")
|
|
(SOUTH TO FLATHEAD-OCEAN)
|
|
(NE TO SLOPE)
|
|
(GLOBAL LEDGE)>
|
|
|
|
<ROOM CLIFF
|
|
(IN ROOMS)
|
|
(DESC "Cliff")
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(DOWN TO CLIFF-LEDGE IF ROPE-FLAG ELSE "The drop would kill you.")
|
|
(UP "There's no tree here suitable for climbing.")
|
|
(SW TO SHADOW-8)
|
|
(EAST TO CLEARING)
|
|
(ACTION CLIFF-F)
|
|
(GLOBAL GLOBAL-MAN RUBBLE STONE-WALL CLIFF-OBJECT)
|
|
(PSEUDO "MIST" MIST-PSEUDO)>
|
|
|
|
<ROOM CLIFF-LEDGE
|
|
(IN ROOMS)
|
|
(DESC "Cliff Ledge")
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(UP "You attempt the climb but slide back down.")
|
|
(DOWN TO CLIFF-BASE)
|
|
(ACTION CLIFF-LEDGE-F)
|
|
(GLOBAL RUBBLE GLOBAL-ROPE GLOBAL-MAN LEDGE CLIFF-OBJECT)>
|
|
|
|
<ROOM FOGGY-ROOM
|
|
(IN ROOMS)
|
|
(DESC "Foggy Room")
|
|
(LDESC
|
|
"You are in a dank passage filled with a wispy fog. A spooky passageway
|
|
leads north and a wider path heads off to the south. To the west, the
|
|
path leaves the rock and enters an eerie, shadowy land.")
|
|
(NORTH TO CREEPY-CRAWL)
|
|
(SOUTH TO LAKE-SHORE)
|
|
(WEST TO SHADOW-1)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM LAKE-SHORE
|
|
(IN ROOMS)
|
|
(DESC "Lake Shore")
|
|
(LDESC
|
|
"You are in a wide cavern on the north shore of a small lake. Some
|
|
polished stone steps lead to the southeast and a sheer rock face
|
|
prevents any movement around the lake to the southwest. The cavern is
|
|
dimly lit from above.")
|
|
(SE TO AQ-VIEW)
|
|
(DOWN TO AQ-VIEW)
|
|
(SOUTH "If you really want to enter the lake, you should say so.")
|
|
(SW "The sheer rock face prevents movement along the lake shore.")
|
|
(NORTH TO FOGGY-ROOM)
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(GLOBAL LAKE STAIRS)
|
|
(PSEUDO "SHORE" SHORE-PSEUDO "BEACH" SHORE-PSEUDO)>
|
|
|
|
<ROOM AQ-VIEW
|
|
(IN ROOMS)
|
|
(DESC "Aqueduct View")
|
|
(LDESC
|
|
"This is a small balcony carved into a near-vertical cliff. To the east,
|
|
stretching from north to south, stands a monumental aqueduct supported by
|
|
mighty stone pillars, some of which are starting to crumble from age. You
|
|
feel a sense of loss and sadness as you ponder this once-proud structure and
|
|
the failure of the Empire which created this and other engineering marvels.
|
|
Some stone steps lead up to the northwest.")
|
|
(NW TO LAKE-SHORE)
|
|
(UP TO LAKE-SHORE)
|
|
(DOWN "The drop would be fatal.")
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(GLOBAL AQUEDUCT STAIRS)>
|
|
|
|
<ROOM ON-LAKE
|
|
(IN ROOMS)
|
|
(DESC "On the Lake")
|
|
(LDESC
|
|
"You are floating on the surface of the lake. The water is ice cold and
|
|
your ability to survive here for long is very questionable. A swim north
|
|
puts you at your starting point. Conditions to the east are poor where
|
|
the lake turns into swamp. The west and south shores are suitable for
|
|
walking, however.")
|
|
(NORTH TO LAKE-SHORE)
|
|
(SOUTH TO SOUTH-SHORE)
|
|
(PSEUDO "SWAMP" SWAMP-PSEUDO)
|
|
(SE "The swamp is impassable.")
|
|
(EAST "The swamp is impassable.")
|
|
(NE "The swamp is impassable.")
|
|
(WEST TO FAR-SHORE)
|
|
(NW TO FAR-SHORE)
|
|
(SW TO SOUTH-SHORE)
|
|
(DOWN TO IN-LAKE)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(ACTION ON-LAKE-F)
|
|
(GLOBAL LAKE FISH)>
|
|
|
|
<ROOM IN-LAKE
|
|
(IN ROOMS)
|
|
(DESC "Underwater")
|
|
(LDESC
|
|
"You are below the surface of the lake. It turns out that the lake is quite
|
|
shallow and the bottom is only a few feet below you. Considering the frigid
|
|
temperature of the water, you should probably not plan an extended stay.
|
|
The lake bottom is sandy and a few hearty plants and algae live there.")
|
|
(UP TO ON-LAKE)
|
|
(DOWN "You are already at the bottom of the lake.")
|
|
(NORTH TO IN-LAKE)
|
|
(SOUTH TO IN-LAKE)
|
|
(EAST TO IN-LAKE)
|
|
(WEST TO IN-LAKE)
|
|
(NE TO IN-LAKE)
|
|
(NW TO IN-LAKE)
|
|
(SE TO IN-LAKE)
|
|
(SW TO IN-LAKE)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(ACTION IN-LAKE-F)
|
|
(GLOBAL LAKE FISH)>
|
|
|
|
<ROOM FAR-SHORE
|
|
(IN ROOMS)
|
|
(DESC "Western Shore")
|
|
(LDESC
|
|
"You are on the western shore of the lake. The ground here is quite
|
|
hard, but a few sickly reeds manage to grow near the water's edge. The
|
|
only path leads into the rock to the south.")
|
|
(EAST "If you want to enter the lake, you should say so.")
|
|
(SOUTH TO VIEW-ROOM)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(GLOBAL LAKE)
|
|
(PSEUDO "SHORE" SHORE-PSEUDO "BEACH" SHORE-PSEUDO)>
|
|
|
|
<OBJECT REEDS
|
|
(IN FAR-SHORE)
|
|
(SYNONYM REEDS)
|
|
(ADJECTIVE SICKLY)
|
|
(DESC "reeds")
|
|
(FLAGS NDESCBIT)>
|
|
|
|
<ROOM VIEW-ROOM
|
|
(IN ROOMS)
|
|
(DESC "Scenic Vista")
|
|
(LDESC "")
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(NORTH TO FAR-SHORE)
|
|
(ACTION VIEW-ROOM-F)>
|
|
|
|
<OBJECT VIEWING-TABLE
|
|
(IN VIEW-ROOM)
|
|
(DESC "viewing table")
|
|
(SYNONYM TABLE SURFACE)
|
|
(ADJECTIVE VIEWING)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION VIEWING-TABLE-F)>
|
|
|
|
<OBJECT TORCH
|
|
(IN VIEW-ROOM)
|
|
(DESC "torch")
|
|
(FDESC
|
|
"Mounted on one wall is a flaming torch, which fills the room with a flickering
|
|
light.")
|
|
(SYNONYM TORCH)
|
|
(FLAGS LIGHTBIT TAKEBIT ONBIT FLAMEBIT)
|
|
(ACTION TORCH-F)>
|
|
|
|
<OBJECT FRIED-TORCH
|
|
(DESC "burned-out torch")
|
|
(SYNONYM TORCH)
|
|
(ADJECTIVE BURNED DEAD)
|
|
(FLAGS TAKEBIT)
|
|
(ACTION FRIED-TORCH-F)>
|
|
|
|
<OBJECT CLIFF-OBJECT
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "cliff")
|
|
(SYNONYM CLIFF)
|
|
(ACTION CLIFF-OBJECT-F)>
|
|
|
|
<OBJECT STONE-WALL
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "stone wall")
|
|
(SYNONYM WALL)
|
|
(ADJECTIVE STONE MASSIVE)
|
|
(FLAGS NDESCBIT)>
|
|
|
|
<OBJECT LAKE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "lake")
|
|
(SYNONYM LAKE WATER SURFACE)
|
|
(ACTION LAKE-F)>
|
|
|
|
<OBJECT AMULET
|
|
(DESC "golden amulet")
|
|
(SYNONYM AMULET OBJECT)
|
|
(ADJECTIVE GOLD GOLDEN SHINY)
|
|
(FLAGS TAKEBIT WEARBIT NDESCBIT)>
|
|
|
|
<OBJECT SAND
|
|
(IN IN-LAKE)
|
|
(DESC "sand")
|
|
(SYNONYM SAND FLOOR BOTTOM)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION SAND-F)>
|
|
|
|
<OBJECT FRIED-LAMP
|
|
(DESC "lamp")
|
|
(SYNONYM LAMP LANTERN)
|
|
(ADJECTIVE BRASS)
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 10)
|
|
(ACTION FRIED-LAMP-F)>
|
|
|
|
<OBJECT ALGAE
|
|
(IN IN-LAKE)
|
|
(DESC "plants and algae")
|
|
(SYNONYM PLANT PLANTS ALGAE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION ALGAE-F)>
|
|
|
|
<OBJECT SHINY-OBJECT
|
|
(IN IN-LAKE)
|
|
(DESC "shiny object")
|
|
(SYNONYM OBJECT AMULET)
|
|
(ADJECTIVE SHINY)
|
|
(FLAGS TRYTAKEBIT NDESCBIT)
|
|
(ACTION SHINY-OBJECT-F)>
|
|
|
|
<OBJECT LEDGE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "ledge")
|
|
(SYNONYM LEDGE)
|
|
(ADJECTIVE WIDE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION LEDGE-F)>
|
|
|
|
<ROUTINE LEDGE-F ()
|
|
<COND (<AND <==? ,HERE ,CLIFF-LEDGE>
|
|
<VERB? THROW-OFF>
|
|
<==? ,PRSI ,LEDGE>>
|
|
<COND (<NOT <IN? ,PRSO ,WINNER>>
|
|
<TELL "You're not holding that!" CR>
|
|
<RTRUE>)>
|
|
<MOVE ,PRSO ,CLIFF-BASE>
|
|
<TELL
|
|
"The " D ,PRSO " falls to the base of the cliff below." CR>)>>
|
|
|
|
<OBJECT WAYBREAD
|
|
(IN CLIFF)
|
|
(DESC "piece of waybread")
|
|
(LDESC "A piece of bread is on the ground here.")
|
|
(FDESC
|
|
"It seems as if somebody has been here recently, as there is some fresh
|
|
bread lying beneath one of the other trees.")
|
|
(SYNONYM BREAD WAYBREAD PIECE)
|
|
(ADJECTIVE WAY FRESH)
|
|
(FLAGS TAKEBIT FOODBIT)
|
|
(SIZE 3)
|
|
(ACTION WAYBREAD-F)>
|
|
|
|
<ROUTINE WAYBREAD-F ()
|
|
<COND (<AND <VERB? CUT> <==? ,PRSI ,SWORD>>
|
|
<TELL
|
|
"The bread is crushed rather than cut by your sword, and the crumbs scatter to
|
|
the wind." CR>
|
|
<REMOVE ,WAYBREAD>)>>
|
|
|
|
<OBJECT ROPE
|
|
(IN CLIFF)
|
|
(DESC "rope")
|
|
(SYNONYM ROPE)
|
|
(ADJECTIVE LONG)
|
|
(FLAGS NDESCBIT TRYTAKEBIT)
|
|
(ACTION ROPE-F)>
|
|
|
|
<OBJECT GLOBAL-ROPE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "rope")
|
|
(SYNONYM ROPE)
|
|
(ADJECTIVE DANGLING)
|
|
(ACTION GLOBAL-ROPE-F)>
|
|
|
|
<OBJECT TREE
|
|
(IN CLIFF)
|
|
(DESC "tree")
|
|
(SYNONYM TREE TREES)
|
|
(ADJECTIVE LARGE TALL)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION TREE-F)>
|
|
|
|
<OBJECT STAFF
|
|
(DESC "wooden staff")
|
|
(SYNONYM STAFF)
|
|
(ADJECTIVE WOODEN)
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 10)
|
|
(ACTION STAFF-F)>
|
|
|
|
<OBJECT BROKEN-STAFF
|
|
(DESC "broken staff")
|
|
(SYNONYM STAFF)
|
|
(ADJECTIVE BROKEN)
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 10)
|
|
(ACTION STAFF-F)>
|
|
|
|
<ROUTINE STAFF-F ()
|
|
<COND (<AND <VERB? BURN> <==? ,PRSI ,TORCH>>
|
|
<REMOVE ,PRSO>
|
|
<JIGS-UP
|
|
"The staff is instantly consumed in a ball of flame. You along with it.">)>>
|
|
|
|
<OBJECT CHEST
|
|
(IN CLIFF-LEDGE)
|
|
(DESC "chest")
|
|
(FDESC
|
|
"A large chest, closed and locked, is lying among the boulders.")
|
|
(SYNONYM CHEST)
|
|
(ADJECTIVE LOCKED)
|
|
(FLAGS TAKEBIT CONTBIT)
|
|
(SIZE 40)
|
|
(CAPACITY 20)
|
|
(ACTION CHEST-F)>
|
|
|
|
<OBJECT GLOBAL-MAN
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "man")
|
|
(SYNONYM MAN FRIEND)
|
|
(FLAGS ACTORBIT)
|
|
(ACTION GLOBAL-MAN-F)>
|
|
|
|
<OBJECT VALUABLES
|
|
(IN MAN)
|
|
(DESC "pile of assorted valuables")
|
|
(SYNONYM VALUABLES TREASURE PILE)
|
|
(ADJECTIVE ASSORTED)
|
|
(FLAGS NDESCBIT TAKEBIT)
|
|
(ACTION VALUABLES-F)>
|
|
|
|
<OBJECT MAN
|
|
(SYNONYM MAN FRIEND)
|
|
(DESC "man")
|
|
(FLAGS ACTORBIT OPENBIT CONTBIT)
|
|
(ACTION MAN-F)>
|
|
|
|
<GLOBAL CHEST-LIFTED <>>
|
|
|
|
<ROUTINE I-MAN-APPEARS ()
|
|
<COND (<OR <NOT <==? ,HERE ,CLIFF-LEDGE>>
|
|
<NOT <EQUAL? <LOC ,CHEST> ,CLIFF-LEDGE ,WINNER>>>
|
|
<RFALSE>)
|
|
(,CHEST-TIED
|
|
<SETG MAN-SEEN T>
|
|
<TELL
|
|
"All at once, the chest is lifted from you. Looking up, you see a
|
|
man at the top of the cliff, pulling intently at the rope. \"That is
|
|
uncommonly good of you, I do say!\" He chuckles unpleasantly. \"Oh,
|
|
you are stuck, aren't you. Well, I'll be right back to get you!\"
|
|
He leaves your sight." CR>
|
|
<SETG CHEST-LIFTED T>
|
|
<MOVE ,CHEST ,MAN>
|
|
<FSET ,CHEST ,TOUCHBIT>
|
|
<SETG ROPE-FLAG <>>
|
|
<SETG CHEST-TIED <>>
|
|
<ENABLE <QUEUE I-MAN-RETURNS 10>>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"At the edge of the cliff above you, a man appears. He looks down at
|
|
you and speaks. \"Hello, down there! You seem to have a problem. Maybe I
|
|
can help you.\" He chuckles in an unsettling sort of way. \"Perhaps if you
|
|
tied that chest to the end of the rope I might be able to drag it up for you.
|
|
Then, I'll be more than happy to help you up!\" He laughs again." CR>
|
|
<SETG MAN-FLAG T>
|
|
<SETG MAN-SEEN T>
|
|
<ENABLE <QUEUE I-MAN-PRESENT -1>>)>>
|
|
|
|
<GLOBAL MAN-SEEN <>>
|
|
|
|
<ROUTINE I-MAN-PRESENT ()
|
|
<COND (<OR <NOT <==? ,HERE ,CLIFF-LEDGE>>
|
|
<NOT ,MAN-FLAG>
|
|
<IN? ,CHEST ,MAN>>
|
|
<QUEUE I-MAN-PRESENT 0>
|
|
<SETG MAN-FLAG <>>
|
|
<RFALSE>)
|
|
(<G? <SETG MAN-WAITING <+ ,MAN-WAITING 1>> 10>
|
|
<TELL
|
|
"The man looks quite displeased. \"All right, then. I guess someone else
|
|
can always help me! See you around, sport!\" He disappears." CR>
|
|
<QUEUE I-MAN-PRESENT 0>
|
|
<SETG MAN-FLAG <>>
|
|
<RTRUE>)
|
|
(T <TELL <RANDOM-ELEMENT ,MAN-WAITS> CR>)>>
|
|
|
|
<ROUTINE CLIFF-BASE-F (RARG)
|
|
<COND (<AND <==? .RARG ,M-ENTER>
|
|
,CHEST-TIED>
|
|
<SETG CHEST-TIED <>>
|
|
<SETG ROPE-FLAG <>>
|
|
<QUEUE I-MAN-APPEARS 0>)>>
|
|
|
|
<GLOBAL MAN-WAITS <LTABLE
|
|
"The man appears to be getting somewhat impatient."
|
|
"Your friend at the cliff top has started pacing nervously around."
|
|
"\"Yoo hoo!\" calls the man at the brink of the cliff. \"Remember me?\""
|
|
"The man on the cliff waves at you. \"It would just take a moment to tie that
|
|
rope to the chest. I'd be much obliged, and there might even be something in
|
|
it for you!\""
|
|
"A few small stones fall near your feet. You look up and see your friend
|
|
waving. \"I haven't got all day, fella. Be a pal and pass up the chest!\""
|
|
"The man on the cliff clears his throat loudly. \"I don't mean to be rushing
|
|
you, but I do have some pressing engagements....\"">>
|
|
|
|
<GLOBAL MAN-WAITING 0>
|
|
<GLOBAL MAN-FLAG <>>
|
|
<GLOBAL MAN-POINT <>>
|
|
<GLOBAL MAN-GONE <>>
|
|
|
|
<ROUTINE CLIFF-LEDGE-F (RARG)
|
|
<COND (<AND <==? .RARG ,M-BEG>
|
|
<VERB? WALK>
|
|
<IN? ,CHEST ,WINNER>
|
|
,CHEST-TIED>
|
|
<TELL
|
|
"You can't go anywhere holding that chest. The rope is tied around it!" CR>)
|
|
(<AND <==? .RARG ,M-ENTER>
|
|
<NOT ,MAN-SEEN>
|
|
<NOT ,MAN-FLAG>
|
|
<NOT ,MAN-GONE>>
|
|
<COND (<NOT ,MAN-POINT>
|
|
<SETG SCORE <+ ,SCORE 1>>
|
|
<SETG MAN-POINT T>)>
|
|
<ENABLE <QUEUE I-MAN-APPEARS 5>>)
|
|
(<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"This is a rock-strewn ledge near the base of a tall cliff. The bottom of the
|
|
cliff is another fifteen feet below. You have little hope of climbing up the
|
|
cliff face, but you might be able to scramble down from here (though it's
|
|
doubtful you could return)." CR>
|
|
<COND (,ROPE-FLAG
|
|
<TELL
|
|
"A long piece of rope is dangling down from the top of the cliff and
|
|
is within your reach." CR>)>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE CLIFF-F (RARG)
|
|
<COND (<AND <==? .RARG ,M-ENTER> <IN? ,CHEST ,MAN>>
|
|
<QUEUE I-MAN-RETURNS 0>
|
|
<MOVE ,CHEST ,HERE>
|
|
<FSET ,CHEST ,OPENBIT>
|
|
<SETG ROPE-FLAG T>
|
|
<SETG CHEST-TIED <>>
|
|
<SETG CHEST-OPENED T>
|
|
<RFALSE>)
|
|
(<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"This is a remarkable spot in the dungeon. Perhaps two hundred feet above
|
|
you is a gaping hole in the earth's surface through which pours bright
|
|
sunshine! A few seedlings from the world above, nurtured by the sunlight
|
|
and occasional rains, have grown into giant trees, making this a virtual oasis
|
|
in the desert of the Underground Empire. To the west is a sheer precipice,
|
|
dropping nearly fifty feet to jagged rocks below. The way south is barred by
|
|
a forbidding stone wall, crumbling from age. There is a jagged opening in the
|
|
wall to the southwest, through which leaks a fine mist. The land to the east
|
|
looks lifeless and barren." CR>
|
|
<COND (,ROPE-FLAG
|
|
<TELL
|
|
"A rope is tied to one of the large trees here and is dangling over
|
|
the side of the cliff, reaching down to the shelf below." CR>)>
|
|
<RTRUE>)
|
|
(<AND <==? .RARG ,M-END>
|
|
<PROB 15>
|
|
<NOT <FSET? ,CLIFF-LEDGE ,TOUCHBIT>>>
|
|
<TELL
|
|
"You catch, out of the corner of your eye, some movement among the
|
|
trees." CR>)
|
|
(<AND <==? .RARG ,M-END>
|
|
<PROB 20>>
|
|
<TELL
|
|
"You seem to hear, from the southwest, the sounds of the sea." CR>)>>
|
|
|
|
<ROUTINE GLOBAL-ROPE-F ()
|
|
<COND (<NOT ,ROPE-FLAG>
|
|
<TELL "You can't see any rope here." CR>)
|
|
(<VERB? CLIMB-FOO>
|
|
<V-CLIMB-UP ,P?DOWN T>)
|
|
(<VERB? TAKE MOVE CLIMB-ON>
|
|
<COND (<NOT ,MAN-FLAG>
|
|
<TELL
|
|
"A short tug on the rope convinces you that it is securely fastened
|
|
from above." CR>)
|
|
(<IN? ,CHEST ,MAN>
|
|
<SETG HOLDING-ROPE T>
|
|
<TELL
|
|
"You grab securely on to the rope." CR>)
|
|
(T
|
|
<TELL
|
|
"The man scowls. \"I may help you up, but not before I have that chest.\" He
|
|
points to the chest near you on the ledge." CR>)>)
|
|
(<VERB? CLIMB-UP>
|
|
<TELL
|
|
"You try to climb the rope, but you cannot reach the top even with your best
|
|
effort." CR>)
|
|
(<VERB? TIE>
|
|
<COND (<EQUAL? ,CHEST ,PRSO ,PRSI>
|
|
<TELL
|
|
"The chest is now tied to the rope." CR>
|
|
<SETG CHEST-TIED T>
|
|
<COND (<AND ,MAN-FLAG <NOT ,MAN-GONE>>
|
|
<TELL
|
|
"The man above you looks pleased. \"Now there's a good friend! Thank
|
|
you very much, indeed!\" He pulls on the rope and the chest is lifted
|
|
to the top of the cliff and out of sight. With a short laugh, he
|
|
disappears. \"I'll be back in a short while!\" are his last words." CR>
|
|
<MOVE ,CHEST ,MAN>
|
|
<FSET ,CHEST ,TOUCHBIT>
|
|
<SETG CHEST-TIED <>>
|
|
<SETG ROPE-FLAG <>>
|
|
<ENABLE <QUEUE I-MAN-RETURNS 10>>
|
|
<SETG MAN-FLAG <>>
|
|
<RTRUE>)>
|
|
<RTRUE>)
|
|
(<EQUAL? ,ME ,PRSI ,PRSO>
|
|
<COND (<AND ,MAN-FLAG <IN? ,CHEST ,MAN>>
|
|
<TELL
|
|
"\"Just grab onto it!\", the man bellows." CR>)
|
|
(,MAN-FLAG
|
|
<TELL
|
|
"The man looks cross. \"I want the chest, not you!\" he snaps. \"Now stop
|
|
fooling around and pass it up!\"" CR>)
|
|
(T
|
|
<TELL
|
|
"You're unable to tie the rope around yourself." CR>)>)
|
|
(T
|
|
<TELL
|
|
"You're unable to tie the rope to that." CR>)>)
|
|
(<VERB? UNTIE>
|
|
<COND (,CHEST-TIED
|
|
<SETG CHEST-TIED <>>
|
|
<TELL
|
|
"The chest is now disconnected from the rope." CR>)
|
|
(T
|
|
<TELL
|
|
"The rope isn't tied to anything." CR>)>)>>
|
|
|
|
<GLOBAL CHEST-TIED <>>
|
|
<GLOBAL HOLDING-ROPE <>>
|
|
|
|
<ROUTINE I-MAN-RETURNS ()
|
|
<SETG ROPE-FLAG T>
|
|
<COND (<==? ,HERE ,CLIFF-LEDGE>
|
|
<TELL
|
|
"A familiar voice calls down to you. \"Are you still there?\" he bellows with a
|
|
coarse laugh. \"Well, then, grab onto the rope and we'll see what we can do.\"
|
|
The rope drops to within your reach." CR>
|
|
<SETG MAN-FLAG T>
|
|
<ENABLE <QUEUE I-MAN-LIFT -1>>
|
|
<RTRUE>)>>
|
|
|
|
<GLOBAL LIFT-WAIT 0>
|
|
|
|
<ROUTINE I-MAN-LIFT ()
|
|
<COND (<NOT <==? ,HERE ,CLIFF-LEDGE>>
|
|
<QUEUE I-MAN-LIFT 0>
|
|
<MOVE ,CHEST ,CLIFF>
|
|
<FSET ,CHEST ,OPENBIT>
|
|
<SETG CHEST-OPENED T>
|
|
<REMOVE ,MAN>
|
|
<RFALSE>)
|
|
(,HOLDING-ROPE
|
|
<TELL
|
|
"The man starts to heave on the rope and within a few moments you arrive at
|
|
the top of the cliff. The man removes the last few valuables from the chest
|
|
and prepares to leave. \"You've been a good sport! Here, take this, for
|
|
whatever good it is! I can't see that I'll be needing one!\" He hands you a
|
|
plain wooden staff from the bottom of the chest and begins examining his
|
|
valuables." CR>
|
|
<QUEUE I-MAN-LIFT 0>
|
|
<MOVE ,STAFF ,WINNER>
|
|
<SETG HOLDING-ROPE <>>
|
|
<SETG ROPE-FLAG T>
|
|
<MOVE ,WINNER ,CLIFF>
|
|
<MOVE ,CHEST ,CLIFF>
|
|
<FSET ,CHEST ,OPENBIT>
|
|
<TELL
|
|
"The chest, open and empty, is at your feet." CR>
|
|
<SETG CHEST-OPENED T>
|
|
<MOVE ,MAN ,CLIFF>
|
|
<ENABLE <QUEUE I-MAN-LEAVES -1>>
|
|
<RTRUE>)
|
|
(<G? <SETG LIFT-WAIT <+ ,LIFT-WAIT 1>> 4>
|
|
<TELL
|
|
"\"Well, I don't have all day. See you around sometime.\" Showering you with
|
|
gravel, he disappears from sight." CR>
|
|
<SETG MAN-FLAG <>>
|
|
<MOVE ,CHEST ,CLIFF>
|
|
<FSET ,CHEST ,OPENBIT>
|
|
<SETG CHEST-OPENED T>
|
|
<QUEUE I-MAN-LIFT 0>)
|
|
(T
|
|
<TELL
|
|
"The man appears impatient. \"Are you coming up then, or not?\"" CR>)>>
|
|
|
|
<GLOBAL CHEST-OPENED <>>
|
|
|
|
<ROUTINE CHEST-F ()
|
|
<COND (,CHEST-OPENED
|
|
<COND (<AND <VERB? TIE> <==? ,ROPE ,PRSO ,PRSI>>
|
|
<TELL "What's the point?" CR>)
|
|
(<AND <VERB? PUT> <EQUAL? ,PRSO ,STAFF ,LAMP ,TORCH>>
|
|
<TELL "It doesn't fit.">
|
|
<COND (<EQUAL? ,PRSO ,STAFF>
|
|
<TELL
|
|
" Awfully peculiar, though, since it's where the staff came from.">)>
|
|
<CRLF>)
|
|
(T <RFALSE>)>)
|
|
(<VERB? OPEN UNLOCK>
|
|
<COND (,MAN-FLAG
|
|
<TELL
|
|
"The man calls down to you. \"Is this what you're looking for?\" he cackles,
|
|
waving a small key over his head. You try to open the chest, but it is
|
|
locked." CR>)
|
|
(T <TELL
|
|
"The chest is locked and cannot be opened." CR>)>)>>
|
|
|
|
<GLOBAL ROPE-FLAG T>
|
|
|
|
<ROUTINE I-MAN-LEAVES ()
|
|
<COND (<NOT <==? ,HERE ,CLIFF>>
|
|
<REMOVE ,MAN>
|
|
<SETG MAN-GONE T>
|
|
<SETG MAN-FLAG <>>
|
|
<SETG ROPE-FLAG T>
|
|
<QUEUE I-MAN-LEAVES 0>
|
|
<RFALSE>)
|
|
(<PROB 40>
|
|
<TELL
|
|
"Your \"friend\", moving quickly, dodges behind some trees and is lost from
|
|
sight." CR>
|
|
<REMOVE ,MAN>
|
|
<SETG MAN-FLAG <>>
|
|
<SETG MAN-GONE T>
|
|
<SETG ROPE-FLAG T>
|
|
<QUEUE I-MAN-LEAVES 0>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"Your \"friend\" examines his valuables with great pride." CR>)>>
|
|
|
|
<ROUTINE MAN-F ()
|
|
<COND (<VERB? HELLO>
|
|
<TELL
|
|
"He responds cheerfully. \"It is a wonderful day, isn't it?\"" CR>)
|
|
(<HELLO? ,MAN>
|
|
<TELL
|
|
"The man is thoroughly engrossed in the examination of his booty and
|
|
doesn't seem to hear you." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The man is stocky and of medium height, with several days' growth of stubble
|
|
on his face. He is carrying a number of valuables under his arm, presumably
|
|
from the now-open chest." CR>)
|
|
(<VERB? ATTACK>
|
|
<COND (<==? ,PRSI ,SWORD>
|
|
<TELL
|
|
"The man is taken by surprise and is hit with the sword. He grabs you
|
|
and throws you to the ground">
|
|
<COND (<EQUAL? <LOC ,STAFF> ,WINNER ,HERE>
|
|
<TELL ", breaking the staff in the process">
|
|
<REMOVE ,STAFF>
|
|
<MOVE ,BROKEN-STAFF ,HERE>)>
|
|
<TELL ", but you
|
|
finish him off with a quick thrust to the chest. He dies, and disappears
|
|
without ceremony in the usual style of the Great Underground Empire.
|
|
His assorted valuables remain behind." CR>
|
|
<REMOVE ,MAN>
|
|
<MOVE ,VALUABLES ,HERE>
|
|
<FCLEAR ,VALUABLES ,NDESCBIT>
|
|
<QUEUE I-MAN-LEAVES 0>
|
|
<SETG MAN-GONE T>)
|
|
(T <TELL "You wouldn't hurt him with that!" CR>)>)>>
|
|
|
|
<ROUTINE VALUABLES-F ()
|
|
<COND (<AND <VERB? TAKE PUT MOVE> <IN? ,MAN ,CLIFF>>
|
|
<TELL
|
|
"The man recoils sharply. \"These here things are mine. It's my chest and
|
|
they're my valuables. You've a lot of nerve trying to take them from me
|
|
after me saving you like that!\"" CR>)>>
|
|
|
|
<ROUTINE ROPE-F ()
|
|
<COND (<VERB? TAKE MOVE>
|
|
<COND (,ROPE-FLAG
|
|
<TELL
|
|
"The rope is tied to a tree." CR>)>)
|
|
(<VERB? CLIMB-FOO>
|
|
<V-CLIMB-UP ,P?DOWN T>)
|
|
(<VERB? BURN>
|
|
<TELL
|
|
"The rope won't catch fire." CR>)
|
|
(<VERB? UNTIE>
|
|
<TELL
|
|
"The rope is very securely tied and cannot be undone." CR>)
|
|
(<AND <VERB? CUT> <==? ,PRSI ,SWORD>>
|
|
<TELL
|
|
"The rope is made of pretty tough stuff and won't cut." CR>)>>
|
|
|
|
<ROUTINE GLOBAL-MAN-F ()
|
|
<COND (<==? ,HERE ,CLIFF>
|
|
<COND (,MAN-GONE
|
|
<TELL
|
|
"You've lost him among the trees." CR>)
|
|
(T
|
|
<TELL
|
|
"You can't see any man here." CR>)>)
|
|
(<NOT ,MAN-FLAG>
|
|
<TELL
|
|
"You can't see any man here." CR>)
|
|
(<VERB? GIVE>
|
|
<TELL
|
|
"You aren't even close to him!" CR>)
|
|
(<VERB? HELLO>
|
|
<TELL
|
|
"The man waves back in a friendly way." CR>)
|
|
(<HELLO? ,GLOBAL-MAN>
|
|
<TELL
|
|
"He yells back, \"What's that you say? I can't hear you very well.">
|
|
<COND (<NOT ,CHEST-LIFTED>
|
|
<TELL
|
|
" Just tie the rope to the chest and we can chat afterwards!\" He smiles
|
|
broadly.">)
|
|
(T <TELL "\"">)>
|
|
<CRLF>)
|
|
(<VERB? ATTACK MUNG>
|
|
<TELL
|
|
"I don't think you'll succeed at this distance." CR>)
|
|
(<AND <VERB? THROW> <==? ,PRSI ,GLOBAL-MAN> <IN? ,PRSO ,WINNER>>
|
|
<TELL
|
|
"The " D ,PRSO " flies upward, but not nearly far enough to hit the man. It
|
|
does seem to amuse him, however, especially as it passes within inches of
|
|
your head. \"We're wasting time now. Be a good fellow and tie the rope!\"" CR>
|
|
<MOVE ,PRSO ,HERE>)>>
|
|
|
|
<ROUTINE LAKE-F ()
|
|
<COND (<VERB? THROUGH LEAP>
|
|
<COND (<EQUAL? ,HERE ,LAKE-SHORE ,FAR-SHORE ,SOUTH-SHORE>
|
|
<GO-ON-LAKE>)
|
|
(<==? ,HERE ,ON-LAKE>
|
|
<GOTO ,IN-LAKE>)
|
|
(T
|
|
<TELL "Just where do you think you are?" CR>)>)
|
|
(<VERB? LOOK-UNDER>
|
|
<COND (<==? ,HERE ,ON-LAKE>
|
|
<TELL
|
|
"You can't quite make out the bottom of the lake from here..." CR>)
|
|
(T <TELL
|
|
"You can't see under the surface from here." CR>)>)>>
|
|
|
|
<ROUTINE IN-LAKE-F (RARG)
|
|
<COND (<==? .RARG ,M-ENTER>
|
|
<ENABLE <QUEUE I-IN-LAKE 3>>)
|
|
(<AND <==? .RARG ,M-BEG>
|
|
<VERB? TAKE>
|
|
<NOT <EQUAL? ,PRSO ,SHINY-OBJECT>>>
|
|
<COND (<G? <WEIGHT ,WINNER> 25>
|
|
<TELL "You can't carry that much underwater." CR>)
|
|
(<NOT <FSET? ,PRSO ,TAKEBIT>>
|
|
<TELL "You can't take that!" CR>)
|
|
(<PROB 30>
|
|
<TELL "The " D ,PRSO
|
|
" is yours for a moment, but drops from your grasp." CR>)>)
|
|
(<==? .RARG ,M-END>
|
|
<COND (<PROB 10>
|
|
<TELL
|
|
"A large and hungry-looking fish is swimming in the neighborhood." CR>)
|
|
(<AND <PROB 4> <NOT ,INVIS>>
|
|
<QUEUE I-ROC 0>
|
|
<QUEUE I-ON-LAKE 0>
|
|
<JIGS-UP
|
|
"Oh, no! A tremendous fish just swallowed you whole!">)
|
|
(<IN? ,SHINY-OBJECT ,HERE>
|
|
<COND (<==? ,MOVES ,LAST-MOVES> <RTRUE>)
|
|
(<PROB 40>
|
|
<TELL
|
|
"Out of the corner of your eye, a small, shiny object appears in the
|
|
sand. A moment later, it is gone!" CR>)
|
|
(<PROB 70>
|
|
<TELL
|
|
"You catch a brief glimpse of something shiny in the sand." CR>)
|
|
(T
|
|
<TELL
|
|
"Something sparkling in the sand catches your eye for a moment." CR>)>
|
|
<SETG LAST-MOVES ,MOVES>)>)>>
|
|
|
|
<GLOBAL LAST-MOVES 0>
|
|
|
|
<ROUTINE I-IN-LAKE ()
|
|
<COND (<==? ,HERE ,IN-LAKE>
|
|
<TELL
|
|
"You run out of air and return to the surface." CR>
|
|
<GOTO ,ON-LAKE>)>>
|
|
|
|
<GLOBAL LAKE-POINT <>>
|
|
|
|
<ROUTINE ON-LAKE-F (RARG)
|
|
<COND (<==? .RARG ,M-ENTER>
|
|
<QUEUE I-IN-LAKE 0>
|
|
<COND (<NOT ,LAKE-POINT>
|
|
<SETG SCORE <+ ,SCORE 1>>
|
|
<SETG LAKE-POINT T>)>)
|
|
(<AND <==? .RARG ,M-BEG> <VERB? LEAP> <NOT ,PRSO>>
|
|
<DO-WALK ,P?DOWN>
|
|
<RTRUE>)>>
|
|
|
|
<GLOBAL CURRENT-LAMP LAMP>
|
|
|
|
<ROUTINE GO-ON-LAKE ("AUX" F N (TOLD <>))
|
|
<COND (<SET F <FIRST? ,WINNER>>
|
|
<REPEAT ()
|
|
<SET N <NEXT? .F>>
|
|
<COND (<NOT <FSET? .F ,WEARBIT>>
|
|
<MOVE .F ,IN-LAKE>
|
|
<COND (<==? .F ,TORCH>
|
|
<REMOVE ,TORCH>
|
|
<MOVE ,FRIED-TORCH ,IN-LAKE>)
|
|
(<EQUAL? .F ,LAMP>
|
|
<MOVE ,LAMP ,LOCAL-GLOBALS>
|
|
<MOVE ,FRIED-LAMP ,IN-LAKE>
|
|
<SETG CURRENT-LAMP ,FRIED-LAMP>)
|
|
(<==? .F ,WAYBREAD>
|
|
<REMOVE ,WAYBREAD>)>
|
|
<COND (<NOT .TOLD>
|
|
<SET TOLD T>
|
|
<TELL
|
|
"The shock of entering the frigid water has made you drop all your
|
|
possessions into the lake!" CR>)>)>
|
|
<COND (<NOT .N> <RETURN>)
|
|
(T <SET F .N>)>>)>
|
|
<COND (<NOT .TOLD>
|
|
<TELL
|
|
"You are nearly paralyzed by the icy waters as you swim into the
|
|
center of the lake." CR>)>
|
|
<CRLF>
|
|
<GOTO ,ON-LAKE>
|
|
<SETG LAKE-TIME 0>
|
|
<ENABLE <QUEUE I-ON-LAKE -1>>>
|
|
|
|
<GLOBAL LAKE-TIME <>>
|
|
|
|
<ROUTINE I-ON-LAKE ()
|
|
<SETG LAKE-TIME <+ ,LAKE-TIME 1>>
|
|
<COND (<AND <PROB 10> <==? ,HERE ,ON-LAKE> <NOT ,INVIS>>
|
|
<TELL
|
|
"A giant roc, previously hidden among the rocks, is heading right toward you,
|
|
its mouth gaping wide!" CR>
|
|
<ENABLE <QUEUE I-ROC 2>>)
|
|
(<NOT <EQUAL? ,HERE ,ON-LAKE ,IN-LAKE>>
|
|
<QUEUE I-ON-LAKE 0>
|
|
<QUEUE I-IN-LAKE 0>
|
|
<QUEUE I-ROC 0>
|
|
<RFALSE>)
|
|
(<==? ,LAKE-TIME 4>
|
|
<TELL
|
|
"The icy waters are taking their toll. You will not be able to hold out
|
|
much longer." CR>)
|
|
(<==? ,LAKE-TIME 6>
|
|
<TELL
|
|
"You are becoming very weak. You had better leave the water before you
|
|
drown!" CR>)
|
|
(<==? ,LAKE-TIME 8>
|
|
<QUEUE I-ON-LAKE 0>
|
|
<QUEUE I-IN-LAKE 0>
|
|
<QUEUE I-ROC 0>
|
|
<JIGS-UP
|
|
"Your strength gives out, and you drown in the frigid waters.">)>>
|
|
|
|
<ROUTINE I-ROC ()
|
|
<COND (<AND <==? ,HERE ,ON-LAKE> <NOT ,INVIS>>
|
|
<QUEUE I-ON-LAKE 0>
|
|
<QUEUE I-IN-LAKE 0>
|
|
<JIGS-UP
|
|
"The roc snatches you in its jaws and has you for lunch.">)>>
|
|
|
|
<ROUTINE SHINY-OBJECT-F ()
|
|
<COND (<AND <VERB? TAKE FIND> <NOT <IN? ,AMULET ,WINNER>>>
|
|
<COND (<PROB 50>
|
|
<REMOVE ,SHINY-OBJECT>
|
|
<MOVE ,AMULET ,WINNER>
|
|
<THIS-IS-IT ,AMULET>
|
|
<FCLEAR ,AMULET ,NDESCBIT>
|
|
<TELL
|
|
"You reach the shiny object. It is a simple golden amulet!" CR>)
|
|
(T
|
|
<TELL
|
|
"The shiny object slips from your grasp and back onto the floor of
|
|
the lake, where it is covered in sand." CR>)>)>>
|
|
|
|
<ROUTINE SAND-F ()
|
|
<COND (<VERB? DIG>
|
|
<TELL "You don't come across anything unusual." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"There is nothing notable on the floor of the lake, except some plants
|
|
and algae." CR>)
|
|
(<VERB? TAKE>
|
|
<TELL "It slips through your fingers." CR>)>>
|
|
|
|
<ROUTINE ALGAE-F ()
|
|
<COND (<VERB? EAT> <TELL "Yeecchhhh!" CR>)>>
|
|
|
|
<ROUTINE FRIED-LAMP-F ()
|
|
<COND (<VERB? LAMP-ON>
|
|
<TELL
|
|
"The lamp isn't functioning (probably from having gotten wet)." CR>)>>
|
|
|
|
<GLOBAL VIEW-POINT 1>
|
|
|
|
<ROUTINE I-VIEW-SNAP ()
|
|
<TELL "You suddenly find yourself back in the viewing room!" CR>
|
|
<GOTO ,VIEW-ROOM <>>
|
|
<RTRUE>>
|
|
|
|
<ROUTINE VIEWING-TABLE-F ("AUX" L)
|
|
<COND (<VERB? RUB>
|
|
<SETG SCORE <+ ,SCORE ,VIEW-POINT>>
|
|
<SETG VIEW-POINT 0>
|
|
<TELL
|
|
"You touch the table and are instantly transported to another place!" CR>
|
|
<CRLF>
|
|
<ENABLE <QUEUE I-VIEW-SNAP 3>>
|
|
<GOTO <GET ,VIEW-ROOMS ,ACTIVE-VIEW>>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE LOOK-INSIDE>
|
|
<TELL
|
|
"The surface is pale and featureless, but slowly, an image takes shape!" CR>
|
|
<TELL <GET ,VIEWS ,ACTIVE-VIEW> CR>
|
|
<TELL
|
|
"The image slowly fades." CR>)>>
|
|
|
|
<ROUTINE I-VIEW-CHANGE ()
|
|
<SETG ACTIVE-VIEW <+ ,ACTIVE-VIEW 1>>
|
|
<COND (<==? ,ACTIVE-VIEW 5> <SETG ACTIVE-VIEW 1>)>
|
|
<QUEUE I-VIEW-CHANGE 4>
|
|
<COND (<==? ,HERE ,VIEW-ROOM>
|
|
<TELL
|
|
"The indicator above the table flickers briefly, then changes to \"">
|
|
<TELL <GET ,VIEW-ROMANS ,ACTIVE-VIEW> "\"." CR>)>>
|
|
|
|
<ROUTINE VIEW-ROOM-F (RARG)
|
|
<COND (<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You are in a small chamber carved in the rock, with the sole exit to the
|
|
north. Mounted on one wall is a table labelled \"Scenic Vista,\" whose
|
|
featureless surface is angled toward you. One might believe that the table
|
|
was used to indicate points of interest in the view from this spot, like those
|
|
found in many parks. On the other hand, your surroundings are far from
|
|
spacious and by no stretch of the imagination could this spot be considered
|
|
scenic. An indicator above the table reads \"">
|
|
<TELL <GET ,VIEW-ROMANS ,ACTIVE-VIEW> "\"." CR>)>>
|
|
|
|
<GLOBAL VIEW-ROMANS <TABLE 0 "I" "II" "III" "IV">>
|
|
|
|
<GLOBAL ACTIVE-VIEW 1>
|
|
|
|
<GLOBAL VIEW-ROOMS <LTABLE TIMBER-ROOM ROOM-8 DAMP-PASSAGE ZORK-IV>>
|
|
|
|
<GLOBAL VIEWS <LTABLE
|
|
"You see a passage cluttered with broken timbers. An extremely narrow opening
|
|
can be seen at the end of the room."
|
|
"You see a tiny room with rough walls. Chiseled crudely on one wall is the
|
|
number \"8\". The only apparent exit seems to be a blur."
|
|
"You see a wide room with two nearly identical passages leading east and
|
|
northeast. A wide channel descends steeply into the room and seems to be
|
|
blocked by rubble."
|
|
"You see the interior of a huge temple rudely constructed of basalt blocks.
|
|
Flickering torches cast a sallow illumination over an altar still wet with the
|
|
blood of human sacrifice, its velvet covers stained and encrusted with gore.">>
|
|
|
|
<ROUTINE CLIFF-OBJECT-F ()
|
|
<COND (<==? ,HERE ,CLIFF>
|
|
<COND (<VERB? LEAP>
|
|
<JIGS-UP
|
|
"You should have looked before you leaped.">)
|
|
(<VERB? CLIMB-DOWN>
|
|
<COND (,ROPE-FLAG
|
|
<GOTO ,CLIFF-LEDGE>
|
|
<RTRUE>)
|
|
(T <TELL "The fall would kill you." CR>)>)
|
|
(<AND <VERB? THROW-OFF> <==? ,PRSI ,CLIFF-OBJECT>>
|
|
<COND (<==? ,PRSO ,ROPE>
|
|
<TELL
|
|
"The rope is dangling over the side of the cliff already." CR>
|
|
<RTRUE>)
|
|
(<NOT <IN? ,PRSO ,WINNER>>
|
|
<TELL
|
|
"You aren't holding the " D ,PRSO "." CR>
|
|
<RTRUE>)>
|
|
<MOVE ,PRSO ,CLIFF-LEDGE>
|
|
<TELL
|
|
"The " D ,PRSO " goes over the cliff and lands among the rocks below." CR>
|
|
<COND (<==? ,PRSO ,LAMP>
|
|
<REMOVE ,PRSO>
|
|
<MOVE ,BROKEN-LAMP ,CLIFF-LEDGE>
|
|
<SETG CURRENT-LAMP ,BROKEN-LAMP>)
|
|
(<==? ,PRSO ,STAFF>
|
|
<REMOVE ,PRSO>
|
|
<MOVE ,BROKEN-STAFF ,CLIFF-LEDGE>)>
|
|
<RTRUE>)>)
|
|
(<VERB? CLIMB-UP>
|
|
<TELL "You haven't enough strength to climb the cliff." CR>)
|
|
(T <TELL "The cliff is above you!" CR>)>>
|
|
|
|
<ROUTINE TREE-F ()
|
|
<COND (<VERB? CLIMB-UP CLIMB-FOO>
|
|
<TELL "The trunks are too large for you to climb them." CR>)
|
|
(<AND <VERB? EXAMINE LOOK-INSIDE> <NOT ,MAN-SEEN>>
|
|
<TELL
|
|
"There seems to be nobody there, but it's hard to tell." CR>)
|
|
(<VERB? BURN>
|
|
<JIGS-UP
|
|
"Smokey the Bear puts out both the fire and you.">)>>
|
|
|
|
<ROUTINE FRIED-TORCH-F ()
|
|
<COND (<VERB? LAMP-ON>
|
|
<TELL "It's hopeless. The torch is wet." CR>)>>
|
|
|
|
<ROUTINE TORCH-F ()
|
|
<COND (<VERB? LAMP-ON>
|
|
<COND (<FSET? ,TORCH ,ONBIT> <TELL "It's already lit." CR>)
|
|
(T <TELL "You have nothing to light it with." CR>)>)
|
|
(<VERB? LAMP-OFF>
|
|
<COND (<FSET? ,TORCH ,ONBIT>
|
|
<TELL "You manage to extinguish the flame." CR>
|
|
<FCLEAR ,TORCH ,ONBIT>)
|
|
(T <TELL "It has already been extinguished." CR>)>)>>
|
|
|
|
;"Here's some ZORK I"
|
|
|
|
<OBJECT TIMBERS ;"was OTIMB"
|
|
(IN TIMBER-ROOM)
|
|
(SYNONYM TIMBERS PILE)
|
|
(ADJECTIVE WOODEN BROKEN)
|
|
(DESC "broken timber")
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 50)>
|
|
|
|
<ROOM LADDER-TOP ;"was TLADD"
|
|
(IN ROOMS)
|
|
(LDESC
|
|
"This is a very small room. In the corner is a rickety wooden
|
|
ladder, leading downward. It might be safe to descend. There is
|
|
also a staircase leading upward.")
|
|
(DESC "Ladder Top")
|
|
(DOWN TO LADDER-BOTTOM)
|
|
(FLAGS RLANDBIT)
|
|
(GLOBAL LADDER STAIRS)>
|
|
|
|
<OBJECT LADDER
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM LADDER)
|
|
(ADJECTIVE WOODEN RICKETY NARROW)
|
|
(DESC "wooden ladder")
|
|
(FLAGS NDESCBIT CLIMBBIT)>
|
|
|
|
<ROOM LADDER-BOTTOM ;"was BLADD"
|
|
(IN ROOMS)
|
|
(LDESC
|
|
"This is a rather wide room. On one side is the bottom of a
|
|
narrow wooden ladder. To the west and the south are passages
|
|
leaving the room.")
|
|
(DESC "Ladder Bottom")
|
|
(SOUTH TO DEAD-END-5)
|
|
(WEST TO TIMBER-ROOM)
|
|
(UP TO LADDER-TOP)
|
|
(FLAGS RLANDBIT)
|
|
(GLOBAL LADDER)>
|
|
|
|
<ROOM DEAD-END-5 ;"was DEAD7"
|
|
(IN ROOMS)
|
|
(DESC "Dead End")
|
|
(LDESC "You have come to a dead end in the mine.|
|
|
There is a small pile of coal here.")
|
|
(NORTH TO LADDER-BOTTOM)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM TIMBER-ROOM ;"was TIMBE"
|
|
(IN ROOMS)
|
|
(LDESC
|
|
"This is a long and narrow passage, which is cluttered with broken
|
|
timbers. A wide passage comes from the east and turns at the
|
|
west end of the room into a very narrow passageway. From the west
|
|
comes a strong draft.")
|
|
(DESC "Timber Room")
|
|
(EAST TO LADDER-BOTTOM)
|
|
(WEST TO LOWER-SHAFT
|
|
IF EMPTY-HANDED
|
|
ELSE "You cannot fit through this passage with that load.")
|
|
(ACTION NO-OBJS)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM LOWER-SHAFT ;"was BSHAF"
|
|
(IN ROOMS)
|
|
(DESC "Drafty Room")
|
|
(SOUTH TO MACHINE-ROOM)
|
|
(OUT TO TIMBER-ROOM)
|
|
(EAST TO TIMBER-ROOM)
|
|
(ACTION NO-OBJS)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM MACHINE-ROOM
|
|
(IN ROOMS)
|
|
(DESC "Machine Room")
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<GLOBAL EMPTY-HANDED <>>
|
|
|
|
<ROUTINE NO-OBJS (RARG "AUX" F)
|
|
<COND (<==? .RARG ,M-BEG>
|
|
<SET F <FIRST? ,WINNER>>
|
|
<SETG EMPTY-HANDED T>
|
|
<REPEAT ()
|
|
<COND (<NOT .F> <RETURN>)
|
|
(<G? <WEIGHT .F> 4>
|
|
<SETG EMPTY-HANDED <>>
|
|
<RETURN>)>
|
|
<SET F <NEXT? .F>>>
|
|
<RFALSE>)>>
|
|
|
|
;"Stuff from ZORK II"
|
|
|
|
<ROOM ROOM-8
|
|
(IN ROOMS)
|
|
(LDESC
|
|
"This is a small chamber carved out of the rock at the end of a short crawl.
|
|
On the wall is crudely chiseled the number \"8\". The only apparent exit,
|
|
to the east, seems to be a blur and a loud, whirring sound resounds through
|
|
the rock.")
|
|
(DESC "Room 8")
|
|
(FLAGS RLANDBIT)
|
|
(EAST "You are repelled from the exit by a fierce wind.")>
|
|
|
|
<OBJECT REPELLENT
|
|
(IN ROOM-8)
|
|
(SYNONYM REPELLENT CAN)
|
|
(ADJECTIVE GRUE MAGIC)
|
|
(DESC "Frobozz Magic Grue Repellent")
|
|
(FLAGS TAKEBIT READBIT)
|
|
(ACTION REPELLENT-FCN)
|
|
(FDESC
|
|
"A spray can is in the corner. In large type is the legend \"Frobozz Magic
|
|
Grue Repellent.\"")
|
|
(TEXT
|
|
"!!! FROBOZZ MAGIC GRUE REPELLENT !!!|
|
|
|
|
|
Instructions for use: Apply liberally to creature to be protected.
|
|
Duration of effect is unpredictable. Use only in place of death!|
|
|
|
|
|
(No warranty expressed or implied)")>
|
|
|
|
<ROUTINE REPELLENT-FCN ()
|
|
<COND (<VERB? SHAKE>
|
|
<COND (,SPRAY-USED? <TELL "The can seems empty." CR>)
|
|
(T <TELL "There is a sloshing sound from inside." CR>)>)
|
|
(<VERB? BURN>
|
|
<JIGS-UP
|
|
"The can explodes and you die a horribly smelly death.">)
|
|
(<AND <VERB? SPRAY PUT> <==? ,PRSO ,REPELLENT>>
|
|
<COND (,SPRAY-USED?
|
|
<TELL
|
|
"The repellent is all gone." CR>)
|
|
(<NOT ,PRSI>
|
|
<SETG SPRAY-USED? T>
|
|
<TELL
|
|
"The spray stinks amazingly for a few moments, then drifts away." CR>)
|
|
(ELSE
|
|
<COND (<==? ,PRSI ,ME>
|
|
<ENABLE <QUEUE I-SPRAY 5>>
|
|
<SETG SPRAYED? T>)>
|
|
<SETG SPRAY-USED? T>
|
|
<TELL
|
|
"The spray smells like a mixture of old socks and burning rubber. If
|
|
I were a grue I'd sure stay clear!" CR>)>)>>
|
|
|
|
<GLOBAL SPRAY-USED? <>>
|
|
|
|
<ROUTINE I-SPRAY ()
|
|
<SETG SPRAYED? <>>
|
|
<TELL "That horrible smell is much less pungent now." CR>>
|
|
|
|
;"Stuff from ZORK IV"
|
|
|
|
<ROOM ZORK-IV
|
|
(IN ROOMS)
|
|
(DESC "Sacrificial Altar")
|
|
(FLAGS ONBIT RLANDBIT)
|
|
(ACTION ZORK-IV-F)>
|
|
|
|
<ROUTINE ZORK-IV-F (RARG)
|
|
<COND (<==? .RARG ,M-ENTER>
|
|
<JIGS-UP
|
|
"Sacrificial Altar|
|
|
This is the interior of a huge temple of primitive construction. A few
|
|
flickering torches cast a sallow illumination over the altar, which is
|
|
still drenched with the blood of human sacrifice. Behind the altar is an
|
|
enormous statue of a demon which seems to reach towards you with
|
|
dripping fangs and razor-sharp talons. A low noise begins behind you,
|
|
and you turn to see hundreds of hunched and hairy shapes. A guttural
|
|
chant issues from their throats. Near you stands a figure draped in a
|
|
robe of deepest black, brandishing a huge sword. The chant grows louder
|
|
as the robed figure approaches the altar. The large figure spots you and
|
|
approaches menacingly. It reaches into its cloak and pulls out a great,
|
|
glowing dagger. It pulls you onto the altar and, with a murmur of
|
|
approval from the throng, slices you neatly across your abdomen.">)>>
|
|
|
|
;"Last Section"
|
|
|
|
<ROOM SOUTH-SHORE
|
|
(IN ROOMS)
|
|
(DESC "Southern Shore")
|
|
(LDESC
|
|
"You are on the south shore of the lake. Rock formations prevent
|
|
movement to the west and thickening swamp to the east makes the going
|
|
all but impossible. To the south, where the beach meets a rock
|
|
formation, you can make out a dark passage sloping steeply upward into the
|
|
rock.")
|
|
(EAST "The swamp is too thick.")
|
|
(UP TO DARK-1)
|
|
(NORTH "If you want to go into the lake, you should say so.")
|
|
(SOUTH TO DARK-1)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(GLOBAL LAKE)
|
|
(PSEUDO "BEACH" SHORE-PSEUDO "SWAMP" SWAMP-PSEUDO)>
|
|
|
|
<ROOM DARK-1
|
|
(IN ROOMS)
|
|
(DESC "Dark Place")
|
|
(NORTH TO SOUTH-SHORE)
|
|
(SOUTH TO DARK-2)
|
|
(UP TO DARK-2)
|
|
(DOWN TO SOUTH-SHORE)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM DARK-2
|
|
(IN ROOMS)
|
|
(DESC "Dark Place")
|
|
(NORTH TO DARK-1)
|
|
(EAST TO KEY-ROOM)
|
|
(UP TO KEY-ROOM)
|
|
(DOWN TO DARK-1)
|
|
(FLAGS RLANDBIT)>
|
|
|
|
<ROOM KEY-ROOM
|
|
(IN ROOMS)
|
|
(DESC "Key Room")
|
|
(WEST TO DARK-2)
|
|
(DOWN TO AQ-1 IF COVER-MOVED
|
|
ELSE "You can't walk through a piece of metal.")
|
|
(ACTION KEY-ROOM-F)
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
<ROOM AQ-1
|
|
(IN ROOMS)
|
|
(DESC "Aqueduct")
|
|
(UP "The hole is too far above your head.")
|
|
(LDESC
|
|
"You are in a wide stone channel, part of the water supply system for the
|
|
Great Underground Empire. The source of water was a waterfall to the south,
|
|
which has long since dried up. Water flowed along the aqueduct to the north.
|
|
This region is lit from above, although the source of light is not apparent.")
|
|
(SOUTH "You can't climb the dried-up waterfall.")
|
|
(NORTH TO AQ-2)
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(GLOBAL AQUEDUCT WATER-CHANNEL MOSS)
|
|
(PSEUDO "WATERF" WATERFALL-PSEUDO)>
|
|
|
|
<ROOM AQ-2
|
|
(IN ROOMS)
|
|
(DESC "High Arch")
|
|
(NORTH TO AQ-3 IF AQ-FLAG ELSE "The arch before you is broken.")
|
|
(SOUTH TO AQ-1)
|
|
(DOWN "It's a long way down....")
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(ACTION AQ-2-F)
|
|
(GLOBAL AQUEDUCT WATER-CHANNEL MOSS)
|
|
(PSEUDO "ARCH" ARCH-PSEUDO)>
|
|
|
|
<ROOM AQ-3
|
|
(IN ROOMS)
|
|
(DESC "Water Slide")
|
|
(NORTH TO DAMP-PASSAGE)
|
|
(DOWN TO DAMP-PASSAGE)
|
|
(SOUTH TO AQ-2 IF AQ-FLAG ELSE "The arch to the south is broken.")
|
|
(FLAGS RLANDBIT ONBIT)
|
|
(ACTION AQ-3-F)
|
|
(GLOBAL AQUEDUCT WATER-CHANNEL MOSS)
|
|
(PSEUDO "ARCH" ARCH-PSEUDO)>
|
|
|
|
<OBJECT AQUEDUCT
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "aqueduct")
|
|
(SYNONYM AQUEDUCT DUCT CHASM)
|
|
(ADJECTIVE STONE)
|
|
(ACTION AQUEDUCT-F)>
|
|
|
|
<OBJECT WATER-CHANNEL
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "channel")
|
|
(SYNONYM CHANNEL)
|
|
(ADJECTIVE WATER)
|
|
(ACTION WATER-CHANNEL-F)>
|
|
|
|
<OBJECT MOSS
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "moss and lichen")
|
|
(SYNONYM MOSS LICHEN)
|
|
(ACTION MOSS-F)>
|
|
|
|
<ROUTINE AQUEDUCT-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The aqueduct is large and impressive. It was probably the major method
|
|
of water transport in the Empire." CR>)
|
|
(<VERB? LEAP>
|
|
<JIGS-UP
|
|
"You execute a perfect swan dive into the rocks below!">)>>
|
|
|
|
<ROUTINE WATER-CHANNEL-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The channel is a few feet deep and ten feet wide, rounded on the bottom." CR>)
|
|
(<VERB? BOARD>
|
|
<COND (<==? ,HERE ,DAMP-PASSAGE>
|
|
<TELL
|
|
"Getting into the channel wouldn't be of much use." CR>)
|
|
(T
|
|
<TELL
|
|
"You're standing in it. Otherwise, you would be floating in midair above some
|
|
very nasty rocks." CR>)>)>>
|
|
|
|
<ROUTINE MOSS-F ()
|
|
<COND (<VERB? TAKE MOVE>
|
|
<TELL "Don't be silly." CR>)>>
|
|
|
|
<ROUTINE AQ-2-F (RARG)
|
|
<COND (<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You are now on one of the tallest arches of the aqueduct, hundreds of feet
|
|
above a rocky chasm. The immensity of the aqueduct project is apparent from
|
|
here. Stone supports rise from the rock floor to form massive arches, which
|
|
traverse the region from north to south. The water-carrying channel here is
|
|
wide and deep. To the west and far below, you can make out a balcony which
|
|
must command a wide view of the aqueduct." CR>
|
|
<COND (<NOT ,AQ-FLAG>
|
|
<TELL
|
|
"The channel ends abruptly to your north where a supporting pillar has
|
|
crumbled, casting the arch into the chasm." CR>)>)>>
|
|
|
|
<ROUTINE AQ-3-F (RARG)
|
|
<COND (<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You are near the northern end of this segment of the aqueduct system. To the
|
|
south and slightly uphill, the bulk of the aqueduct looms ominously, towering
|
|
above a gorge. To the north, the water channel drops precipitously and enters
|
|
a rocky hole. The damp moss and lichen would certainly make that a one-way
|
|
trip." CR>
|
|
<COND (<NOT ,AQ-FLAG>
|
|
<TELL
|
|
"The southern part of the aqueduct system is inaccessable due to the
|
|
collapse of one of the water-bearing arches." CR>)>)>>
|
|
|
|
<GLOBAL AQ-FLAG T>
|
|
|
|
<GLOBAL COVER-MOVED <>>
|
|
|
|
<OBJECT COVER
|
|
(IN KEY-ROOM)
|
|
(DESC "manhole cover")
|
|
(SYNONYM COVER)
|
|
(ADJECTIVE MANHOLE LARGE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION COVER-F)>
|
|
|
|
<ROUTINE COVER-F ()
|
|
<COND (<VERB? MOVE RAISE OPEN>
|
|
<TELL
|
|
"The cover is moved a bit to one side, revealing a small hole leading into
|
|
darkness." CR>
|
|
<SETG COVER-MOVED T>)
|
|
(<VERB? TAKE>
|
|
<TELL
|
|
"The cover is far too heavy to take." CR>)>>
|
|
|
|
<ROUTINE KEY-ROOM-F (RARG)
|
|
<COND (<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You are between some rock and a dark place. The room is lit dimly from
|
|
above, revealing a lone, dark path sloping down to the west." CR>
|
|
<COND (,COVER-MOVED
|
|
<TELL
|
|
"A heavy manhole cover has been moved to reveal a dark passage below." CR>)
|
|
(T
|
|
<TELL
|
|
"To one side of the room is a large manhole cover." CR>)>)>>
|
|
|
|
<OBJECT KEY
|
|
(IN KEY-ROOM)
|
|
(DESC "strange key")
|
|
(FDESC
|
|
"The light from above seems to be focused in the center of the room, where
|
|
a single key is lying in the dust.")
|
|
(SYNONYM KEY)
|
|
(ADJECTIVE STRANGE RUSTY LONG SHORT HEAVY THIN SHARP POINTED)
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 10)
|
|
(ACTION KEY-F)>
|
|
|
|
<ROUTINE KEY-F ()
|
|
<COND (<AND <VERB? UNLOCK> <==? ,PRSI ,KEY>>
|
|
<COND (<AND <==? ,PRSO ,BRONZE-DOOR> <==? ,HERE ,GOOD-CELL>>
|
|
<COND (,BRONZE-DOOR-LOCKED
|
|
<TELL
|
|
"The key seems to mold itself to the shape of the lock. With a mere
|
|
twist of your hand, the massive bolt gives way." CR>)
|
|
(T <TELL "It already is." CR>)>
|
|
<SETG BRONZE-DOOR-LOCKED <>>
|
|
<RTRUE>)
|
|
(<==? ,PRSO ,BRONZE-DOOR>
|
|
<TELL
|
|
"The key molds itself to the lock but will not turn." CR>)
|
|
(<OR <EQUAL? ,PRSO ,CHEST>
|
|
<FSET? ,PRSO ,DOORBIT>>
|
|
<TELL
|
|
"The key, which initially seemed certain to fit the lock, seems to change
|
|
shape and will not enter the keyhole." CR>)>)
|
|
(<VERB? EXAMINE>
|
|
<TELL <RANDOM-ELEMENT ,KEY-DESCS> CR>
|
|
<TELL
|
|
"Strange, though. The key seems to change shape constantly." CR>)>>
|
|
|
|
<GLOBAL KEY-DESCS <LTABLE
|
|
"The key is a long and heavy skeleton key."
|
|
"The key is short and stubby, shaped like no lock you have ever seen."
|
|
"The key is round and thin, more like a pencil than a key."
|
|
"The key is shiny with many prongs."
|
|
"The key is sharp as an awl, and rusted badly.">>
|
|
|
|
<OBJECT VIEW-INDICATOR
|
|
(IN VIEW-ROOM)
|
|
(DESC "indicator")
|
|
(SYNONYM INDICATOR DIAL)
|
|
(FLAGS NDESCBIT READBIT)
|
|
(ACTION VIEW-INDICATOR-F)>
|
|
|
|
<ROUTINE VIEW-INDICATOR-F ()
|
|
<COND (<VERB? EXAMINE READ>
|
|
<TELL "The indicator reads \""
|
|
<GET ,VIEW-ROMANS ,ACTIVE-VIEW>
|
|
"\"." CR>)>>
|
|
|
|
<GLOBAL BOAT-SEEN <>>
|
|
|
|
<ROUTINE FLATHEAD-OCEAN-F (RARG)
|
|
<COND (<==? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You are at the shore of an amazing underground sea, the topic of many a
|
|
legend among adventurers. Few were known to have arrived at this spot, and
|
|
fewer to return. There is a heavy surf and a breeze is blowing on-shore.
|
|
The land rises steeply to the east and quicksand prevents movement to the
|
|
south. A thick mist covers the ocean and extends over the hills to the east.
|
|
A path heads north along the beach." CR>
|
|
<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
|
|
<TELL
|
|
"An ancient Viking ship is passing along the shore, an old and crusty
|
|
sailor at the helm." CR>)>
|
|
<RTRUE>)
|
|
(<AND <==? .RARG ,M-END>
|
|
<PROB 20>
|
|
<NOT ,BOAT-SEEN>
|
|
,LIT>
|
|
<SETG BOAT-SEEN T>
|
|
<ENABLE <QUEUE I-BOAT-DISAPPEAR 2>>
|
|
<TELL
|
|
"Passing alongside the shore now is an old boat, reminiscent of an ancient
|
|
Viking ship. Standing on the prow of the ship is an old and crusty sailor,
|
|
peering out over the misty ocean." CR>
|
|
<FCLEAR ,VIKING-SHIP ,INVISIBLE>)>>
|
|
|
|
<GLOBAL SHIP-GONE <>>
|
|
|
|
<ROUTINE I-BOAT-DISAPPEAR ()
|
|
<FSET ,VIKING-SHIP ,INVISIBLE>
|
|
<SETG SHIP-GONE T>
|
|
<COND (<==? ,HERE ,FLATHEAD-OCEAN>
|
|
<TELL
|
|
"The boat sails silently through the mist and out of sight." CR>)>>
|
|
|
|
<OBJECT VIKING-SHIP
|
|
(IN FLATHEAD-OCEAN)
|
|
(DESC "Viking Ship")
|
|
(FLAGS NDESCBIT INVISIBLE)
|
|
(ADJECTIVE VIKING)
|
|
(SYNONYM BOAT SHIP CRAFT)>
|
|
|
|
<OBJECT VIAL
|
|
(DESC "vial")
|
|
(SYNONYM VIAL ODOR GIFT)
|
|
(FLAGS TAKEBIT CONTBIT)
|
|
(SIZE 3)
|
|
(CAPACITY 3)
|
|
(ACTION VIAL-F)>
|
|
|
|
<OBJECT POTION
|
|
(IN VIAL)
|
|
(DESC "heavy but invisible liquid")
|
|
(SYNONYM POTION LIQUID CONTENTS FLUID)
|
|
(ADJECTIVE HEAVY SWEET INVISIBLE SMELLING)
|
|
(SIZE 2)
|
|
(FLAGS)
|
|
(ACTION POTION-F)>
|
|
|
|
<ROUTINE I-VISIBLE ()
|
|
<SETG INVIS <>>
|
|
<COND (<EQUAL? ,HERE ,MRG ,MRGE ,MRGW>
|
|
<JIGS-UP
|
|
"One of the stone figures (or maybe both, it's hard to tell) suddenly springs
|
|
to life and crushes you with his stone bludgeon.">)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE POTION-F ()
|
|
<COND (<VERB? DRINK>
|
|
<REMOVE ,POTION>
|
|
<SETG INVIS T>
|
|
<ENABLE <QUEUE I-VISIBLE 3>>
|
|
<TELL
|
|
"You \"drink\" the contents in one gulp, but nothing unusual seems to have
|
|
happened as a result." CR>)
|
|
(<AND <VERB? POUR-ON> <==? ,PRSO ,POTION>>
|
|
<REMOVE ,POTION>
|
|
<TELL "It spills onto the " D ,PRSI " and vanishes." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"It feels like there's something inside, but you can't see anything even
|
|
though the vial is transparent." CR>)
|
|
(<VERB? SMELL>
|
|
<TELL
|
|
"The vial (or something in it) smells sweet." CR>)
|
|
(<VERB? DROP TAKE>
|
|
<TELL
|
|
"Nothing seems to come out, although the sweet smell disappears from
|
|
the vial, seeming to permeate the air briefly before fading entirely." CR>
|
|
<REMOVE ,POTION>)>>
|
|
|
|
<GLOBAL INVIS <>>
|
|
|
|
<ROUTINE VIAL-F ()
|
|
<COND (<VERB? FILL> <TELL "You can't seem to put anything in it." CR>)
|
|
(<AND <VERB? DRINK-FROM> <IN? ,POTION ,VIAL>>
|
|
<PERFORM ,V?DRINK ,POTION>
|
|
<RTRUE>)
|
|
(<AND <VERB? SMELL> <IN? ,POTION ,VIAL>>
|
|
<PERFORM ,V?SMELL ,POTION>
|
|
<RTRUE>)
|
|
(<AND <VERB? SHAKE> <IN? ,POTION ,VIAL> <FSET? ,VIAL ,OPENBIT>>
|
|
<TELL
|
|
"Nothing seems to come out, although the vial is lighter now." CR>
|
|
<REMOVE ,POTION>)
|
|
(<VERB? OPEN>
|
|
<FSET ,VIAL ,OPENBIT>
|
|
<TELL
|
|
"The vial is open.">
|
|
<COND (<IN? ,POTION ,VIAL>
|
|
<TELL
|
|
" There is a sweet odor from within the vial, apparently coming from a heavy
|
|
but invisible liquid.">)>
|
|
<CRLF>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It is a small, transparent vial ">
|
|
<COND (<IN? ,POTION ,VIAL>
|
|
<TELL
|
|
"which looks empty but is strangely heavy." CR>)
|
|
(T
|
|
<TELL
|
|
"which is light and empty." CR>)>)>>
|
|
|
|
<OBJECT OCEAN
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "Flathead Ocean")
|
|
(SYNONYM OCEAN WATER)
|
|
(ADJECTIVE FLATHEAD)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION OCEAN-F)>
|
|
|
|
<ROUTINE OCEAN-F ()
|
|
<COND (<NOT <==? ,HERE ,FLATHEAD-OCEAN>>
|
|
<TELL "There is no ocean here." CR>)
|
|
(<VERB? THROUGH BOARD>
|
|
<TELL "You would be killed by the pounding surf!" CR>)
|
|
(<AND <VERB? PUT THROW> <==? ,PRSI ,OCEAN>>
|
|
<TELL
|
|
"The " D ,PRSO " falls into the ocean and is lost forever." CR>
|
|
<REMOVE ,PRSO>)>>
|
|
|
|
<OBJECT STONE
|
|
(DESC "great rock")
|
|
(SYNONYM ROCK STONE)
|
|
(ADJECTIVE GREAT)
|
|
(IN JUNCTION)
|
|
(DESCFCN STONE-DESC)
|
|
(FLAGS CONTBIT OPENBIT)
|
|
(CAPACITY 30)
|
|
(ACTION STONE-F)>
|
|
|
|
<GLOBAL SWORD-IN-STONE? T>
|
|
|
|
<ROUTINE STONE-DESC (FOO)
|
|
<TELL
|
|
"Standing before you is a great rock.">
|
|
<COND (,SWORD-IN-STONE?
|
|
<TELL " Imbedded within it is an Elvish sword.">)>
|
|
<CRLF>>
|
|
|
|
<ROUTINE STONE-F ()
|
|
<COND (<VERB? OPEN CLOSE>
|
|
<TELL "You can't be serious." CR>)
|
|
(<AND <VERB? PUT> <==? ,PRSI ,STONE>>
|
|
<TELL "You can't force anything into the stone." CR>)
|
|
(<AND <VERB? MOVE TAKE PUSH> <==? ,PRSO ,STONE>>
|
|
<TELL
|
|
"The stone is far too massive to be moved." CR>)
|
|
(<VERB? LOOK-UNDER>
|
|
<TELL
|
|
"Since it can't be moved, it's hard to know what's there." CR>)>>
|
|
|
|
<OBJECT FISH
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "fish")
|
|
(SYNONYM FISH)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION FISH-F)>
|
|
|
|
<ROUTINE FISH-F ()
|
|
<TELL "There is no fish visible now." CR>>
|
|
|
|
<ROUTINE QUICKSAND-PSEUDO ()
|
|
<COND (<VERB? THROUGH LEAP>
|
|
<JIGS-UP
|
|
"You enter the quicksand and slowly sink to a new low in adventuring.">)
|
|
(<VERB? RUB>
|
|
<TELL "It's quicksand all right!" CR>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<TELL "It's hard to tell what's in there." CR>)>>
|
|
|
|
<ROUTINE SWAMP-PSEUDO ()
|
|
<COND (<VERB? THROUGH>
|
|
<TELL "Yucko." CR>)>>
|
|
|
|
<ROUTINE MIST-PSEUDO ()
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<TELL "You can't make anything out through the mist." CR>)
|
|
(<VERB? SMELL>
|
|
<TELL "It smells vaguely salty." CR>)>>
|
|
|
|
<ROUTINE SHORE-PSEUDO ()
|
|
<COND (<VERB? DIG>
|
|
<TELL "There's nothing there." CR>)>>
|
|
|
|
|
|
<ROUTINE WATERFALL-PSEUDO ()
|
|
<COND (<VERB? CLIMB-UP>
|
|
<TELL "It's much too slippery." CR>)>>
|
|
|
|
<ROUTINE ARCH-PSEUDO ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (,AQ-FLAG
|
|
<TELL
|
|
"The arches all show some signs of decay." CR>)
|
|
(T
|
|
<TELL
|
|
"The arch before you is broken. The others show signs of decay." CR>)>)>> |