minizork-1987/north-of-res.zil

512 lines
13 KiB
Plaintext

"NORTH-OF-RESERVOIR for
Mini-Zork '87
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
<ROOM RESERVOIR
(IN ROOMS)
(DESC "Reservoir")
(NORTH TO RESERVOIR-NORTH)
(SOUTH TO RESERVOIR-SOUTH)
(DOWN "The dam blocks your way.")
(EAST "The dam blocks your way.")
(FLAGS NONLANDBIT)
(PSEUDO "STREAM" STREAM-PSEUDO)
(GLOBAL GLOBAL-WATER DAM-OBJECT)
(ACTION RESERVOIR-F)>
<ROUTINE RESERVOIR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<COND (,LOW-TIDE
<TELL
"You are on what used to be a large lake, but which is now a large
mud pile. There are \"shores\" to the north and south.">)
(T
<TELL
"You are on the lake with beaches to the north and south and
a dam to the east.">)>)>>
<ROUTINE STREAM-PSEUDO ()
<COND (<VERB? SWIM THROUGH>
<PERFORM ,V?BOARD ,WATER>
<RTRUE>)
(<VERB? CROSS>
<V-WALK-AROUND>)>>
<ROUTINE LAKE-PSEUDO ()
<COND (,LOW-TIDE
<TELL "The lake's gone..." CR>)
(<VERB? CROSS THROUGH>
<PERFORM ,V?BOARD ,WATER>
<RTRUE>)>>
<OBJECT TRUNK
(IN RESERVOIR)
(DESC "trunk of jewels")
(FDESC "Half-buried in the mud is an old trunk, bulging with jewels.")
(LDESC "There is an old trunk here, bulging with assorted jewels.")
(SYNONYM TRUNK CHEST JEWELS TREASURE)
(ADJECTIVE OLD)
(FLAGS TREASUREBIT TAKEBIT INVISIBLE)
(SIZE 35)
(VALUE 15)
(ACTION TRUNK-F)>
<ROUTINE TRUNK-F ()
<STUPID-CONTAINER ,TRUNK "jewels">>
<ROOM RESERVOIR-NORTH
(IN ROOMS)
(DESC "Reservoir North")
(UP TO DRAFTY-CAVE)
(NORTH TO DRAFTY-CAVE)
(SOUTH TO RESERVOIR IF LOW-TIDE ELSE "You would drown.")
(FLAGS RLANDBIT)
(GLOBAL GLOBAL-WATER STAIRS)
(PSEUDO "LAKE" LAKE-PSEUDO)
(ACTION RESERVOIR-NORTH-F)>
<ROUTINE RESERVOIR-NORTH-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "You are in cavern to the north of ">
<COND (,LOW-TIDE
<TELL ,FORMERLY-A-LAKE>)
(T
<TELL "a large lake">)>
<TELL ". A slimy stairway climbs to the north.">)>>
<OBJECT PUMP
(IN RESERVOIR-NORTH)
(SYNONYM PUMP AIR-PUMP)
(ADJECTIVE HAND-HELD AIR)
(DESC "hand-held air pump")
(FLAGS TAKEBIT TOOLBIT)>
<ROOM DRAFTY-CAVE
(IN ROOMS)
(DESC "Drafty Cave")
(LDESC
"This is a tiny cave with entrances west and north, and a dark, forbidding
staircase leading down.")
(NORTH TO WINDING-PASSAGE)
(WEST TO MIRROR-ROOM-NORTH)
(DOWN TO RESERVOIR-NORTH)
(SOUTH TO RESERVOIR-NORTH)
(FLAGS RLANDBIT)
(GLOBAL STAIRS)
(ACTION WINDY-CAVE-F)>
<ROOM MIRROR-ROOM-NORTH
(IN ROOMS)
(DESC "Mirror Room")
(NE TO WINDING-PASSAGE)
(EAST TO DRAFTY-CAVE)
(FLAGS RLANDBIT)
(GLOBAL MIRROR)
(ACTION MIRROR-ROOM-F)>
<ROOM WINDING-PASSAGE
(IN ROOMS)
(DESC "Winding Passage")
(LDESC
"This is a crooked corridor from the north, with forks to the southwest
and south.")
(SOUTH TO DRAFTY-CAVE)
(SW TO MIRROR-ROOM-NORTH)
(NORTH TO SLIDE-ROOM)
(FLAGS RLANDBIT)>
<ROOM SLIDE-ROOM
(IN ROOMS)
(DESC "Slide Room")
(LDESC
"This small chamber appears to have been part of a coal mine. To the west
and south are passages, and a steep metal slide twists downward.")
(WEST TO MINE-ENTRANCE)
(DOWN TO CELLAR)
(SOUTH TO WINDING-PASSAGE)
(FLAGS RLANDBIT)
(GLOBAL SLIDE)>
<OBJECT SLIDE
(IN LOCAL-GLOBALS)
(DESC "chute")
(SYNONYM CHUTE RAMP SLIDE)
(ADJECTIVE STEEP METAL TWISTING)
(FLAGS CLIMBBIT)
(ACTION SLIDE-F)>
<ROUTINE SLIDE-F ()
<COND (<OR <VERB? THROUGH CLIMB-DOWN CLIMB>
<AND <VERB? PUT>
<EQUAL? ,PRSO ,ME>>>
<DO-WALK <COND (<EQUAL? ,HERE ,CELLAR> ,P?WEST)
(T ,P?DOWN)>>)
(<AND <VERB? PUT>
<PRSI? ,SLIDE>
<FSET? ,PRSO ,TAKEBIT>>
<TELL "The " D ,PRSO " disappears into the slide." CR>
<COND (<EQUAL? ,PRSO ,WATER>
<REMOVE-CAREFULLY ,WATER>)
(T
<MOVE ,PRSO ,CELLAR>)>)>>
<ROOM MINE-ENTRANCE
(IN ROOMS)
(DESC "Mine Entrance")
(LDESC
"You are at the entrance of an abandoned coal mine. Strange squeaky sounds
come from the passage at the north end. You may also escape to the east.")
(NORTH TO BAT-ROOM)
(IN TO BAT-ROOM)
(EAST TO SLIDE-ROOM)
(FLAGS RLANDBIT)>
<ROOM BAT-ROOM
(IN ROOMS)
(DESC "Bat Room")
(SOUTH TO MINE-ENTRANCE)
(EAST TO SHAFT-ROOM)
(FLAGS RLANDBIT SACREDBIT)
(ACTION BAT-ROOM-F)>
<ROUTINE BAT-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are in a small room with exits to the east and south.">)
(<AND <EQUAL? .RARG ,M-END>
<NOT ,DEAD>
<NOT <EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>>>
<CRLF>
<FLY-ME>)>>
<OBJECT BAT
(IN BAT-ROOM)
(DESC "bat")
(SYNONYM BAT)
(ADJECTIVE VAMPIRE)
(FLAGS ACTORBIT TRYTAKEBIT)
(DESCFCN BAT-D)
(ACTION BAT-F)>
<ROUTINE BAT-D ("OPTIONAL" FOO)
<COND (<EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>
<TELL
"In the corner of the ceiling, a large vampire bat is holding his nose." CR>)
(T
<TELL "A large vampire bat swoops down at you!" CR>)>>
<ROUTINE BAT-F ()
<COND (<VERB? TELL>
<FWEEP 6>
<SETG P-CONT <>>)
(<VERB? TAKE ATTACK MUNG>
<COND (<EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>
<TELL ,YOU-CANT "reach him; he's on the ceiling." CR>)
(T
<FLY-ME>)>)>>
<ROUTINE FLY-ME ()
<FWEEP 4>
<TELL "The bat grabs you and lifts you away..." CR CR>
<GOTO <PICK-ONE ,BAT-DROPS>>>
<ROUTINE FWEEP (N)
<REPEAT ()
<COND (<L? <SET N <- .N 1>> 1>
<RETURN>)
(T
<TELL " Fweep!" CR>)>>
<CRLF>>
<GLOBAL BAT-DROPS
<LTABLE 0
COAL-MINE-1
COAL-MINE-2
COAL-MINE-3
LADDER-ROOM
SHAFT-ROOM
MINE-ENTRANCE>>
<OBJECT JADE
(IN BAT-ROOM)
(DESC "jade figurine")
(LDESC "There is an exquisite jade figurine here.")
(SYNONYM FIGURINE TREASURE)
(ADJECTIVE EXQUISITE JADE)
(FLAGS TAKEBIT TREASUREBIT)
(SIZE 10)
(VALUE 13)>
<ROOM SHAFT-ROOM
(IN ROOMS)
(DESC "Shaft Room")
(LDESC
"In the middle this room a small shaft descends into darkness below. Above the
shaft is a metal framework to which a heavy iron chain is attached. There are
exits to the west and north. A foul odor can be detected from the latter
direction.")
(DOWN "The shaft is too small for you.")
(WEST TO BAT-ROOM)
(NORTH TO GAS-ROOM)
(FLAGS RLANDBIT)
(PSEUDO "CHAIN" CHAIN-PSEUDO)>
<OBJECT BASKET
(IN SHAFT-ROOM)
(DESC "basket")
(LDESC "From the chain is suspended a basket.")
(SYNONYM BASKET)
(FLAGS TRYTAKEBIT CONTBIT OPENBIT SEARCHBIT)
(CAPACITY 50)
(ACTION BASKET-F)>
<GLOBAL BASKET-RAISED T>
<ROUTINE BASKET-F ()
<COND (<VERB? MOVE>
<PERFORM <COND (,BASKET-RAISED ,V?LOWER)
(T ,V?RAISE)> ,BASKET>
<RTRUE>)
(<VERB? RAISE>
<COND (,BASKET-RAISED
<TELL ,LOOK-AROUND>)
(T
<MOVE ,BASKET ,SHAFT-ROOM>
<SETG BASKET-RAISED T>
<TELL
"The basket is raised to the top of the shaft." CR>
<NOW-DARK?>)>)
(<VERB? LOWER>
<COND (<NOT ,BASKET-RAISED>
<TELL ,LOOK-AROUND>)
(T
<MOVE ,BASKET ,DRAFTY-ROOM>
<SETG BASKET-RAISED <>>
<TELL
"The basket is lowered to the bottom of the shaft." CR>
<NOW-DARK?>)>)
(<AND <VERB? TAKE>
<EQUAL? ,PRSO ,BASKET>>
<FASTENED ,BASKET "chain">)>>
<ROUTINE CHAIN-PSEUDO ()
<COND (<VERB? TAKE>
<TELL "The chain is secure." CR>)
(<VERB? RAISE LOWER MOVE>
<PERFORM ,PRSA ,BASKET>
<RTRUE>)
(<AND <VERB? EXAMINE>
<IN? ,BASKET ,HERE>>
<TELL <GETP ,BASKET ,P?LDESC> CR>)>>
<ROOM GAS-ROOM
(IN ROOMS)
(DESC "Gas Room")
(LDESC
"This room smells strongly of coal gas. Narrow tunnels lead lead
east and south.")
(SOUTH TO SHAFT-ROOM)
(EAST TO COAL-MINE-1)
(FLAGS RLANDBIT SACREDBIT)
(PSEUDO "GAS" GAS-PSEUDO "ODOR" GAS-PSEUDO)
(ACTION GAS-ROOM-F)>
<ROUTINE GAS-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-END>
<COND (<OR <AND <HELD? ,CANDLES>
<FSET? ,CANDLES ,ONBIT>>
<AND <HELD? ,TORCH>
<FSET? ,TORCH ,ONBIT>>
<AND <HELD? ,MATCH>
<FSET? ,MATCH ,ONBIT>>>
<JIGS-UP
"Oh dear. That smell was coal gas. I would have thought twice about
carrying flaming objects in here.|
|
Booooooom!!!">)>)>>
<ROUTINE GAS-PSEUDO ()
<COND (<VERB? BREATHE> ;"REALLY BLOW"
<TELL "There is too much gas to blow away." CR>)
(<VERB? SMELL>
<TELL "It smells like coal gas in here." CR>)>>
<OBJECT BRACELET
(IN GAS-ROOM)
(DESC "sapphire-encrusted bracelet")
(SYNONYM BRACELET JEWEL SAPPHIRE TREASURE)
(ADJECTIVE SAPPHIRE)
(FLAGS TAKEBIT TREASUREBIT)
(SIZE 10)
(VALUE 10)>
<ROOM COAL-MINE-1
(IN ROOMS)
(DESC "Coal Mine")
(LDESC "This is a nondescript part of a coal mine.")
(WEST TO GAS-ROOM)
(NORTH TO COAL-MINE-2)
(SOUTH TO COAL-MINE-1)
(FLAGS RLANDBIT)>
<ROOM COAL-MINE-2
(IN ROOMS)
(DESC "Coal Mine")
(LDESC "This is a nondescript part of a coal mine.")
(NE TO COAL-MINE-2)
(NW TO COAL-MINE-1)
(SOUTH TO COAL-MINE-3)
(UP TO COAL-MINE-2)
(FLAGS RLANDBIT)>
<ROOM COAL-MINE-3
(IN ROOMS)
(DESC "Coal Mine")
(LDESC "This is a nondescript part of a coal mine.")
(EAST TO COAL-MINE-2)
(WEST TO COAL-MINE-3)
(DOWN TO LADDER-ROOM)
(FLAGS RLANDBIT)>
<ROOM LADDER-ROOM
(IN ROOMS)
(DESC "Ladder Room")
(LDESC
"At the east end of this narrow passage, a ladder leads upward. There's a
strong draft from the west, where the passage narrows even further.")
(UP TO COAL-MINE-3)
(WEST TO DRAFTY-ROOM IF EMPTY-HANDED ELSE
"You can't fit through with that load.")
(FLAGS RLANDBIT SACREDBIT)
(ACTION NO-OBJECT-ROOM-F)
(PSEUDO "LADDER" LADDER-PSEUDO)>
<OBJECT COAL
(IN LADDER-ROOM)
(DESC "small pile of coal")
(SYNONYM COAL PILE)
(ADJECTIVE SMALL)
(FLAGS TAKEBIT BURNBIT)
(SIZE 20)>
<ROUTINE LADDER-PSEUDO ()
<COND (<VERB? CLIMB>
<DO-WALK ,P?UP>)>>
<GLOBAL EMPTY-HANDED <>>
<ROUTINE NO-OBJECT-ROOM-F (RARG "AUX" F)
<COND (<EQUAL? .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>>>
<COND (<AND <EQUAL? ,HERE ,DRAFTY-ROOM>
,LIT
<NOT ,DRAFTY-ROOM-SCORE>>
<SETG DRAFTY-ROOM-SCORE T>
<SETG SCORE <+ ,SCORE 10>>)>
<RFALSE>)>>
<GLOBAL DRAFTY-ROOM-SCORE <>>
<ROOM DRAFTY-ROOM
(IN ROOMS)
(DESC "Drafty Room")
(LDESC
"This is a small room at the bottom of a long shaft. A heavy iron chain hangs
down the shaft. To the south is a passageway and to the east a very narrow
passage.")
(SOUTH TO MACHINE-ROOM)
(OUT TO LADDER-ROOM IF EMPTY-HANDED ELSE
"You can't fit through with that load.")
(EAST TO LADDER-ROOM IF EMPTY-HANDED ELSE
"You can't fit through with that load.")
(FLAGS RLANDBIT SACREDBIT)
(PSEUDO "CHAIN" CHAIN-PSEUDO)
(ACTION NO-OBJECT-ROOM-F)>
<ROOM MACHINE-ROOM
(IN ROOMS)
(DESC "Machine Room")
(NORTH TO DRAFTY-ROOM)
(OUT TO DRAFTY-ROOM)
(FLAGS RLANDBIT)
(ACTION MACHINE-ROOM-F)>
<ROUTINE MACHINE-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a chilly room whose sole exit is to the north. In one corner is a
machine, reminiscent of a clothes dryer, with a switch labelled \"START\".
The switch does not appear to be manipulable by any human hand (unless the
fingers are about 1/16 by 1/4 inch). The machine has a large lid, which is ">
<COND (<FSET? ,MACHINE ,OPENBIT>
<TELL "open.">)
(T
<TELL "closed.">)>)>>
<OBJECT MACHINE
(IN MACHINE-ROOM)
(DESC "machine")
(SYNONYM MACHINE DRYER LID)
(FLAGS CONTBIT SEARCHBIT NDESCBIT TRYTAKEBIT)
(CAPACITY 50)
(ACTION MACHINE-F)>
<ROUTINE MACHINE-F ()
<COND (<VERB? LAMP-ON>
<COND (<NOT ,PRSI>
<TELL ,YOU-CANT "do it with your bare hands." CR>)
(T
<PERFORM ,V?TURN ,MACHINE-SWITCH ,PRSI>
<RTRUE>)>)>>
<OBJECT MACHINE-SWITCH
(IN MACHINE-ROOM)
(DESC "switch")
(SYNONYM SWITCH)
(FLAGS NDESCBIT TURNBIT)
(ACTION MACHINE-SWITCH-F)>
<ROUTINE MACHINE-SWITCH-F ("AUX" SLAG?)
<COND (<VERB? TURN>
<COND (<EQUAL? ,PRSI ,SCREWDRIVER>
<COND (<FSET? ,MACHINE ,OPENBIT>
<TELL ,NOTHING-HAPPENS>)
(T
<SET SLAG? <FIRST? ,MACHINE>>
<ROB ,MACHINE ,MACHINE-SWITCH <>>
<COND (<IN? ,COAL ,MACHINE-SWITCH>
<MOVE ,DIAMOND ,MACHINE>)
(.SLAG?
<MOVE ,SLAG ,MACHINE>)>
<TELL
"The machine produces a dazzling display of colored lights and
bizarre noises. A moment later, the excitement abates." CR>)>)
(T
<TELL "It seems that a " D ,PRSI " won't do." CR>)>)>>
<OBJECT SLAG
(DESC "small piece of vitreous slag")
(SYNONYM PIECE SLAG)
(ADJECTIVE SMALL VITREOUS)
(FLAGS TAKEBIT TRYTAKEBIT)
(SIZE 10)
(ACTION SLAG-F)>
<ROUTINE SLAG-F ()
<REMOVE ,SLAG>
<TELL "The insubstantial slag crumbles at your touch." CR>>
<OBJECT DIAMOND
(DESC "huge diamond")
(LDESC "There is an enormous diamond (perfectly cut) here.")
(SYNONYM DIAMOND TREASURE)
(ADJECTIVE HUGE ENORMOUS)
(FLAGS TAKEBIT TREASUREBIT)
(VALUE 25)>