planetfall-gold/comptwo.zil

3208 lines
101 KiB
Plaintext

"COMPTWO for PLANETFALL
(C) COPYRIGHT 1983 INFOCOM, INC. ALL RIGHTS RESERVED
This file contains all the rooms, objects, and actions associated
with Complex Two / the Eastern Complex / the Lawanda Compleks."
<ROOM LAWANDA-PLATFORM
(LOC ROOMS)
(DESC "Lawanda Platform")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 30
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH PER SHUTTLE-ENTER-F)
(SOUTH PER SHUTTLE-ENTER-F)
(EAST TO ESCALATOR)
(UP TO ESCALATOR)
(FLAGS FLOYDBIT RLANDBIT ONBIT)
(VALUE 4)
(GLOBAL GLOBAL-SHUTTLE STAIRS)
(PSEUDO "ESCALATOR" ESCALATOR-PSEUDO)
(ACTION LAWANDA-PLATFORM-F)>
<GLOBAL LAWANDA-PLATFORM-FLAG <>>
<ROUTINE LAWANDA-PLATFORM-F (RARG)
<COND (<NOT ,LAWANDA-PLATFORM-FLAG>
<SETG LAWANDA-PLATFORM-FLAG T>
<SETG SICKNESS-WARNING-FLAG T>)>
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "This is a wide, flat strip of concrete. ">
<COND (<AND <NOT ,ALFIE-AT-KALAMONTEE>
<NOT ,BETTY-AT-KALAMONTEE>>
<TELL
"Open shuttle cars lie to the north and south.">)
(<OR <NOT ,ALFIE-AT-KALAMONTEE>
<NOT ,BETTY-AT-KALAMONTEE>>
<TELL "An open shuttle car lies to the ">
<COND (,ALFIE-AT-KALAMONTEE
<TELL "north.">)
(T
<TELL "south.">)>)>
<TELL
" A wide escalator, not currently operating, beckons upward at the east end of
the platform. A faded sign reads \"Shutul Platform -- Lawanda Staashun.\"" CR>)>>
<ROOM ESCALATOR
(LOC ROOMS)
(DESC "Escalator")
(LDESC
"You are in the middle of a long mechanical stairway. It is not running,
and seems to be in disrepair.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN"15 ;"UP" 30
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(UP TO FORK)
(EAST TO FORK)
(DOWN TO LAWANDA-PLATFORM)
(WEST TO LAWANDA-PLATFORM)
(GLOBAL STAIRS)
(PSEUDO "ESCALATOR" ESCALATOR-PSEUDO)
(FLAGS RLANDBIT FLOYDBIT ONBIT)>
<ROOM FORK
(LOC ROOMS)
(DESC "Fork")
(LDESC
"This is a hallway which forks to the northeast and southeast. To the west
is the top of a long escalator.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN"15 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 25 ;"EAST" 0 ;"NE" 25 ;"NORTH" 0>)
(WEST TO ESCALATOR)
(DOWN TO ESCALATOR)
(NE TO SYSTEMS-CORRIDOR-WEST)
(SE TO PROJECT-CORRIDOR-WEST)
(GLOBAL STAIRS)
(PSEUDO "ESCALATOR" ESCALATOR-PSEUDO)
(FLAGS FLOYDBIT RLANDBIT ONBIT)>
^L
"He's dead, Jim"
<ROOM INFIRMARY
(LOC ROOMS)
(DESC "Infirmary")
(LDESC
"You have entered a clean, well-lighted place. There are a number of beds,
some complicated looking equipment, and many shelves that are mostly bare.")
(C-MOVE <TABLE
;"OUT"25 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 25 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(SE TO SYSTEMS-CORRIDOR-WEST)
(OUT TO SYSTEMS-CORRIDOR-WEST)
(FLAGS RLANDBIT ONBIT)
(GLOBAL BED SHELVES)
(PSEUDO "EQUIPMENT" EQUIPMENT-PSEUDO "MACHINE" EQUIPMENT-PSEUDO)
(ACTION INFIRMARY-F)>
<OBJECT LAZARUS-PART
(DESC "medical robot breastplate")
(SYNONYM LAZARUS PART PLATE BREASTPLATE)
(ADJECTIVE MEDICAL BREAST)
(SIZE 35)
(FLAGS TAKEBIT)>
<GLOBAL LAZARUS-FLAG <>>
<ROUTINE INFIRMARY-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-END>
<NOT ,LAZARUS-FLAG>
<IN? ,FLOYD ,HERE>
<FSET? ,FLOYD ,RLANDBIT>
<PROB 30>>
<SETG LAZARUS-FLAG T>
<MOVE ,LAZARUS-PART ,HERE>
<MOVE ,FLOYD ,FORK>
<SETG FLOYD-FOLLOW <>>
<SETG FLOYD-SPOKE T>
<TELL
"Floyd, rummaging in a corner, finds something and carries it to the center of
the room to examine it in the brighter light. It seems to be the breast plate
of a robot, along with some connected inner circuitry. The entire piece is
bent and rusting. Floyd stares at it in complete silence. A moment later, he
begins sobbing quietly, awkwardly excuses himself, and runs out of the room.
You look at the breast plate, and notice the name \"Lazarus\" engraved on
it." CR>)>>
<OBJECT RED-SPOOL
(LOC INFIRMARY)
(DESC "red spool")
(FDESC
"Lying on one of the beds is a small red spool.")
(SYNONYM SPOOL SPOOLS OBJECT)
(ADJECTIVE RED SMALL)
(SIZE 3)
(TEXT
"The spool is labelled \"Simptumz uv Xe Dizeez.\"")
(FLAGS TAKEBIT ACIDBIT READBIT)
(ACTION RED-SPOOL-F)>
<ROUTINE RED-SPOOL-F ()
<COND (<AND <VERB? TAKE>
<IN? ,RED-SPOOL ,SPOOL-READER>
<FSET? ,SPOOL-READER ,ONBIT>>
<MOVE ,RED-SPOOL ,ADVENTURER>
<FCLEAR ,RED-SPOOL ,TRYTAKEBIT>
<TELL "The screen goes blank as you take the spool." CR>)>>
<OBJECT MEDICINE-BOTTLE
(LOC INFIRMARY)
(DESC "medicine bottle")
(FDESC
"On a low shelf is a translucent bottle with a small white label.")
(SYNONYM BOTTLE LABEL)
(ADJECTIVE MEDICINE SMALL WHITE TRANSLUCENT)
(SIZE 7)
(CAPACITY 7)
(TEXT
"\"Dizeez supreshun medisin -- eksperimentul\"")
(FLAGS CONTBIT SEARCHBIT TAKEBIT TRANSBIT READBIT)>
<OBJECT MEDICINE
(LOC MEDICINE-BOTTLE)
(DESC "quantity of medicine")
(FDESC "At the bottom of the bottle is a small quantity of medicine.")
(SYNONYM MEDICINE QUANTITY)
(ADJECTIVE SMALL QUANTITY EXPERIMENTAL)
(SIZE 7)
(FLAGS FOODBIT)
(ACTION MEDICINE-F)>
<ROUTINE MEDICINE-F ("AUX" (X <>))
<COND (<AND <VERB? TASTE EAT POUR>
<NOT <IN? ,MEDICINE-BOTTLE ,ADVENTURER>>>
<SETG PRSO ,MEDICINE-BOTTLE>
<NOT-HOLDING>
<THIS-IS-IT ,MEDICINE-BOTTLE>)
(<AND <VERB? TASTE EAT POUR>
<NOT <FSET? ,MEDICINE-BOTTLE ,OPENBIT>>>
<TELL "The bottle is closed." CR>)
(<VERB? TASTE>
<TELL "It tastes fairly bitter." CR>)
(<VERB? EAT>
<REMOVE ,MEDICINE>
<SETG C-ELAPSED 15>
<SETG SICKNESS-LEVEL <- ,SICKNESS-LEVEL 2>>
<SETG LOAD-ALLOWED <+ ,LOAD-ALLOWED 20>>
<TELL "The medicine tasted extremely bitter." CR>)
(<VERB? POUR>
<REMOVE ,MEDICINE>
<COND (<NOT ,PRSI>
<SETG PRSI ,GROUND>)>
<COND (<EQUAL? ,PRSI ,FUNNEL-HOLE>
<COND (<IN? ,CHEMICAL-FLUID ,FLASK>
<SET X T>)>
<SETG CHEMICAL-REQUIRED 10>
<PERFORM ,V?POUR ,CHEMICAL-FLUID ,FUNNEL-HOLE>
<COND (.X
<MOVE ,CHEMICAL-FLUID ,FLASK>)>
<RTRUE>)
(T
<TELL
"It pours over the " D ,PRSI " and evaporates." CR>)>)
(<AND <VERB? TAKE>
<EQUAL? <GET ,P-VTBL 0> ,W?TAKE>>
<PERFORM ,V?EAT ,MEDICINE>
<RTRUE>)>>
<ROOM REPAIR-ROOM
(LOC ROOMS)
(DESC "Repair Room")
(LDESC
"You are in a dimly lit room, filled with strange machines and wide storage
cabinets, all locked. To the south, a narrow stairway leads upward. On the
north wall of the room is a very small doorway.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 30
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(UP TO SYSTEMS-CORRIDOR-WEST)
(SOUTH TO SYSTEMS-CORRIDOR-WEST)
(NORTH SORRY "It is a robot-sized doorway -- a bit too small for you.")
(FLAGS RLANDBIT FLOYDBIT ONBIT)
(GLOBAL STAIRS)
(PSEUDO "CABINETS" CABINETS-PSEUDO "MACHINE" EQUIPMENT-PSEUDO)>
<GLOBAL ACHILLES-FLAG <>> ;"Set to T when Floyd babbles about Achilles"
<OBJECT ACHILLES
(LOC REPAIR-ROOM)
(DESC "broken robot")
(LDESC
"Lying face down at the bottom of the stairs is a motionless robot. It
appears to be damaged beyond repair.")
(SYNONYM ROBOT ACHILLES)
(ADJECTIVE BROKEN DEAD)>
<OBJECT ROBOT-HOLE
(LOC REPAIR-ROOM)
(DESC "small doorway")
(SYNONYM DOOR DOORWAY HOLE)
(ADJECTIVE SMALL VERY)
(FLAGS NDESCBIT TRANSBIT CONTBIT)
(CAPACITY 0)
(ACTION ROBOT-HOLE-F)>
<ROUTINE ROBOT-HOLE-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's too small for you to get through. It was presumably intended for
robots, such as the broken repair robot lying over there." CR>)
(<VERB? LOOK-INSIDE>
<TELL
"You can make out a small supply room of some sort." CR>)
(<VERB? OPEN CLOSE>
<TELL
"There's no door, just an opening in the wall." CR>)>>
<GLOBAL HOLE-TRIP-FLAG <>>
<ROUTINE FLOYD-THROUGH-HOLE ()
<COND (,HOLE-TRIP-FLAG
<TELL "\"Not again,\" whines Floyd." CR>
<RTRUE>)
(T
<SETG C-ELAPSED 50>
<SETG HOLE-TRIP-FLAG T>
<SETG BOARD-REPORTED T>
<FCLEAR ,GOOD-BOARD ,INVISIBLE>
<TELL
"Floyd squeezes through the opening and is gone for quite a while. You hear
thudding noises and squeals of enjoyment. After a while the noise stops, and
Floyd emerges, looking downcast. \"Floyd found a rubber ball inside. Lots of
fun for a while, but must have been old, because it fell apart. Nothing else
interesting inside. Just a shiny fromitz board.\"" CR>)>>
<OBJECT GOOD-BOARD
(LOC ROBOT-HOLE)
(DESC "shiny seventeen-centimeter fromitz board")
(SYNONYM BOARD BOARDS)
(ADJECTIVE SHINY GOOD SEVENTEEN CENTIMETER FROMITZ)
(SIZE 10)
(FLAGS ACIDBIT INVISIBLE NDESCBIT)
(ACTION GOOD-BOARD-F)>
<ROUTINE GOOD-BOARD-F ()
<COND (<AND <FSET? ,GOOD-BOARD ,NDESCBIT>
<VERB? TAKE EXAMINE RUB PUSH PULL MOVE LOOK-UNDER>
<EQUAL? ,GOOD-BOARD ,PRSO>>
<TELL "You can't see any " D ,PRSO " here." CR>)
(<VERB? EXAMINE>
<EXAMINE-BOARD>
<CRLF>)>>
<GLOBAL BOARD-REPORTED <>>
<ROOM SYSTEMS-CORRIDOR-WEST
(LOC ROOMS)
(DESC "Systems Corridor West")
(LDESC
"The corridor bends here, leading east and southwest. A doorway opens
to the northwest, and a narrow stairway leads down to the north.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN"15 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 25 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NW TO INFIRMARY)
(NORTH TO REPAIR-ROOM)
(DOWN TO REPAIR-ROOM)
(EAST TO SYSTEMS-CORRIDOR)
(SW TO FORK)
(FLAGS ONBIT RLANDBIT)
(GLOBAL STAIRS)>
<ROOM SYSTEMS-CORRIDOR
(LOC ROOMS)
(DESC "Systems Corridor")
(LDESC
"This section of hallway has a doorway to the north labelled \"Planateree
Deefens.\" The corridor continues east and west.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO PLANETARY-DEFENSE)
(WEST TO SYSTEMS-CORRIDOR-WEST)
(EAST TO SYSTEMS-CORRIDOR-EAST)
(FLAGS RLANDBIT ONBIT)>
<ROOM SYSTEMS-CORRIDOR-EAST
(LOC ROOMS)
(DESC "Systems Corridor East")
(LDESC
"The hallway ends here with a large doorway leading east, and smaller doorways
to the north and south. The northern doorway is labelled \"Planateree Kors
Kontrool.\" The hallway itself leads west.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO SYSTEMS-CORRIDOR)
(SOUTH TO LIBRARY-LOBBY)
(NORTH TO PLANETARY-COURSE-CONTROL)
(EAST TO PHYSICAL-PLANT-TWO)
(FLAGS RLANDBIT ONBIT)>
<ROOM PHYSICAL-PLANT-TWO
(LOC ROOMS)
(DESC "Physical Plant")
(LDESC
"This is an enormous room full of environmental control equipment presumably
intended to heat and ventilate the Lawanda Complex. Oddly, although the
Lawanda Complex is slightly smaller than its counterpart, this plant is much
larger than the one in the Kalamontee Complex. The only exit is westward.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO SYSTEMS-CORRIDOR-EAST)
(OUT TO SYSTEMS-CORRIDOR-EAST)
(FLAGS FLOYDBIT RLANDBIT ONBIT)
(PSEUDO "EQUIPMENT" EQUIPMENT-PSEUDO)>
^L
"Planetary systems and repairs"
<GLOBAL DEFENSE-FIXED <>>
<GLOBAL COURSE-CONTROL-FIXED <>>
<GLOBAL ACCESS-PANEL-FULL T>
<ROOM PLANETARY-DEFENSE
(LOC ROOMS)
(DESC "Planetary Defense")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(SOUTH TO SYSTEMS-CORRIDOR)
(OUT TO SYSTEMS-CORRIDOR)
(FLAGS RLANDBIT FLOYDBIT ONBIT)
(GLOBAL CONTROLS LIGHTS)
(ACTION PLANETARY-DEFENSE-F)>
<ROUTINE PLANETARY-DEFENSE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This room is filled with a dazzling array of lights and controls. ">
<COND (<NOT ,DEFENSE-FIXED>
<TELL
"One light, blinking quickly, catches your eye. It reads \"Surkit Boord
Faalyur. WORNEENG: xis boord kuntroolz xe diskriminaashun surkits.\"" >)>
<TELL" There is a small access panel on one wall which is ">
<DDESC ,ACCESS-PANEL>
<TELL "." CR>)>>
<OBJECT ACCESS-PANEL
(LOC PLANETARY-DEFENSE)
(DESC "access panel")
(SYNONYM PANEL DOOR SOCKET)
(ADJECTIVE SMALL ACCESS REPAIR)
(FLAGS VOWELBIT NDESCBIT CONTBIT SEARCHBIT)
(CAPACITY 40)
(ACTION ACCESS-PANEL-F)>
<ROUTINE ACCESS-PANEL-F ()
<COND (<VERB? OPEN>
<COND (<FSET? ,ACCESS-PANEL ,OPENBIT>
<ALREADY-OPEN>)
(T
<FSET ,ACCESS-PANEL ,OPENBIT>
<TELL "The panel swings open." CR>
<PERFORM ,V?LOOK-INSIDE ,ACCESS-PANEL>
<RTRUE>)>)
(<VERB? CLOSE>
<COND (<FSET? ,ACCESS-PANEL ,OPENBIT>
<FCLEAR ,ACCESS-PANEL ,OPENBIT>
<TELL "The panel swings closed." CR>)
(T
<IS-CLOSED>)>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,ACCESS-PANEL>>
<COND (<NOT <FSET? ,ACCESS-PANEL ,OPENBIT>>
<TELL "The panel is closed." CR>)
(,ACCESS-PANEL-FULL
<TELL "There's no room." CR>)
(<EQUAL? ,PRSO ,GOOD-BOARD>
<REMOVE ,GOOD-BOARD>
<MOVE ,SECOND-BOARD ,ACCESS-PANEL>
<THIS-IS-IT ,SECOND-BOARD>
<SETG DEFENSE-FIXED T>
<SETG SCORE <+ ,SCORE 6>>
<SETG ACCESS-PANEL-FULL T>
<PUT-BOARD>
<TELL " The warning lights stop flashing." CR>)
(<EQUAL? ,PRSO ,CRACKED-BOARD ,FRIED-BOARD>
<REMOVE ,PRSO>
<THIS-IS-IT ,SECOND-BOARD>
<MOVE ,SECOND-BOARD ,ACCESS-PANEL>
<SETG ACCESS-PANEL-FULL T>
<COND (<EQUAL? ,PRSO ,CRACKED-BOARD>
<SETG ITS-CRACKED T>)>
<PUT-BOARD>
<CRLF>)
(T
<TELL "The " D, PRSO " doesn't fit.">)>)>>
<OBJECT FIRST-BOARD
(LOC ACCESS-PANEL)
(DESC "first seventeen-centimeter fromitz board")
(SYNONYM BOARD BOARDS)
(ADJECTIVE FIRST SEVENTEEN CENTIMETER FROMITZ)
(ACTION BOARD-F)>
<OBJECT FOURTH-BOARD
(LOC ACCESS-PANEL)
(DESC "fourth seventeen-centimeter fromitz board")
(SYNONYM BOARD BOARDS)
(ADJECTIVE FOURTH SEVENTEEN CENTIMETER FROMITZ)
(ACTION BOARD-F)>
<OBJECT THIRD-BOARD
(LOC ACCESS-PANEL)
(DESC "third seventeen-centimeter fromitz board")
(SYNONYM BOARD BOARDS)
(ADJECTIVE THIRD SEVENTEEN CENTIMETER FROMITZ)
(ACTION BOARD-F)>
<OBJECT SECOND-BOARD
(LOC ACCESS-PANEL)
(DESC "second seventeen-centimeter fromitz board")
(SYNONYM BOARD BOARDS)
(ADJECTIVE SECOND SEVENTEEN CENTIMETER FROMITZ)
(FLAGS TRYTAKEBIT TAKEBIT)
(ACTION BOARD-F)>
<OBJECT FRIED-BOARD
(DESC "fried seventeen-centimeter fromitz board")
(SYNONYM BOARD BOARDS)
(ADJECTIVE FRIED SEVENTEEN CENTIMETER FROMITZ)
(SIZE 10)
(FLAGS ACIDBIT TAKEBIT)
(ACTION FRIED-BOARD-F)>
<ROUTINE FRIED-BOARD-F ()
<COND (<VERB? EXAMINE>
<EXAMINE-BOARD>
<TELL
" This one is a bit blackened around the edges, though." CR>)>>
<GLOBAL ITS-CRACKED <>>
<ROUTINE BOARD-F ()
<COND (<VERB? TAKE>
<COND (<EQUAL? ,PRSO ,SECOND-BOARD>
<COND (,DEFENSE-FIXED
<BOARD-SHOCK>)
(T
<TELL
"The fromitz board slides out of the panel, producing an empty socket
for another board." CR>
<REMOVE ,SECOND-BOARD>
<SETG ACCESS-PANEL-FULL <>>
<COND (<EQUAL? ,ITS-CRACKED T>
<MOVE ,CRACKED-BOARD ,ADVENTURER>)
(T
<MOVE ,FRIED-BOARD ,ADVENTURER>)>
<THIS-IS-IT ,FRIED-BOARD>)>)
(T
<BOARD-SHOCK>)>)
(<VERB? EXAMINE>
<EXAMINE-BOARD>
<CRLF>)>>
<ROUTINE EXAMINE-BOARD ()
<TELL
"Like most fromitz boards, it is a twisted maze of silicon circuits. It is
square, approximately seventeen centimeters on each side.">>
<ROUTINE PUT-BOARD ()
<TELL "The card clicks neatly into the socket.">>
<ROUTINE BOARD-SHOCK ()
<TELL "You jerk your hand back as you receive a powerful
shock from the fromitz board." CR>>
<ROOM PLANETARY-COURSE-CONTROL
(LOC ROOMS)
(DESC "Course Control")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(SOUTH TO SYSTEMS-CORRIDOR-EAST)
(OUT TO SYSTEMS-CORRIDOR-EAST)
(FLAGS FLOYDBIT RLANDBIT ONBIT)
(GLOBAL CONTROLS LIGHTS)
(ACTION PLANETARY-COURSE-CONTROL-F)>
<ROUTINE PLANETARY-COURSE-CONTROL-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a long room whose walls are covered with complicated controls
and colored lights. ">
<COND (,COURSE-CONTROL-FIXED
<TELL
"One blinking light says \"Kors diivurjins minimiizeeng.\"">)
(T
<TELL
"Two of these lights are blinking. The first one reads \"Bedistur Faalyur!\"
The other light reads \"Kritikul diivurjins frum pland kors.\"">)>
<TELL " In one corner is a large metal cube whose lid is ">
<COND (<FSET? ,CUBE ,OPENBIT>
<TELL "open">)
(T
<TELL "closed">)>
<TELL "." CR>)>>
<OBJECT CUBE
(LOC PLANETARY-COURSE-CONTROL)
(DESC "large metal cube")
(SYNONYM CUBE LID SOCKET)
(ADJECTIVE LARGE METAL)
(FLAGS MUNGBIT NDESCBIT CONTBIT SEARCHBIT)
(ACTION CUBE-F)>
<ROUTINE CUBE-F ()
<COND (<VERB? OPEN>
<COND (<FSET? ,CUBE ,OPENBIT>
<ALREADY-OPEN>)
(T
<FSET ,CUBE ,OPENBIT>
<TELL "The lid swings open." CR>
<PERFORM ,V?LOOK-INSIDE ,CUBE>
<RTRUE>)>)
(<VERB? CLOSE>
<COND (<FSET? ,CUBE ,OPENBIT>
<FCLEAR ,CUBE ,OPENBIT>
<TELL "The lid swings closed." CR>)
(T
<IS-CLOSED>)>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,CUBE>>
<COND (<NOT <FSET? ,CUBE ,OPENBIT>>
<TELL "The cube is closed." CR>)
(<IN? ,BAD-BEDISTOR ,CUBE>
<TELL "There's a fused bedistor in the way." CR>)
(<EQUAL? ,PRSO ,GOOD-BEDISTOR>
<MOVE ,GOOD-BEDISTOR ,CUBE>
<COND (<NOT <FSET? ,CUBE ,MUNGEDBIT>>
<SETG COURSE-CONTROL-FIXED T>
<FSET ,GOOD-BEDISTOR ,TRYTAKEBIT>
<SETG SCORE <+ ,SCORE 6>>
<TELL
"Done. The warning lights go out and another light goes on." CR>)
(T
<TELL "Done." CR>)>)
(<EQUAL? ,PRSO ,BAD-BEDISTOR>
<MOVE ,BAD-BEDISTOR ,CUBE>
<TELL "Done." CR>)
(T
<TELL "The " D, PRSO " doesn't fit.">)>)>>
<OBJECT BAD-BEDISTOR
(LOC CUBE)
(DESC "fused ninety-ohm bedistor")
(SYNONYM BEDISTOR)
(ADJECTIVE FUSED NINETY OHM NINETY-OHM)
(SIZE 8)
(FLAGS ACIDBIT TRYTAKEBIT TAKEBIT)
(ACTION BAD-BEDISTOR-F)>
<ROUTINE BAD-BEDISTOR-F ()
<COND (<AND <VERB? TAKE>
<IN? ,BAD-BEDISTOR ,CUBE>>
<TELL "It seems to be fused to its socket." CR>)
(<VERB? ZATTRACT>
<COND (<EQUAL? ,PRSI ,PLIERS>
<MOVE ,BAD-BEDISTOR ,ADVENTURER>
<FCLEAR ,BAD-BEDISTOR ,TRYTAKEBIT>
<TELL
"With a tug, you manage to remove the fused bedistor." CR>)
(T
<TELL
"You can't get a grip on the bedistor with that." CR>)>)>>
^L
"The Library"
<ROOM LIBRARY-LOBBY
(LOC ROOMS)
(DESC "Library Lobby")
(LDESC
"This is a carpeted room, thick with dust, with exits to the north and south.
To the west, up a few steps, is a wide doorway. A small booth lies to the
east.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(UP TO LIBRARY)
(WEST TO LIBRARY)
(NORTH TO SYSTEMS-CORRIDOR-EAST)
(SOUTH TO PROJECT-CORRIDOR-EAST)
(EAST TO BOOTH-3)
(IN TO BOOTH-3)
(FLAGS FLOYDBIT RLANDBIT ONBIT)
(GLOBAL TABLES STAIRS)
(PSEUDO "CARPET" CARPET-PSEUDO "BOOTH" NEAR-BOOTH-PSEUDO)>
<OBJECT GREEN-SPOOL
(LOC LIBRARY-LOBBY)
(DESC "green spool")
(FDESC
"You catch a glimpse of a small object nestled among the dust.")
(SYNONYM SPOOL SPOOLS OBJECT)
(ADJECTIVE GREEN SMALL)
(SIZE 3)
(TEXT
"The spool is labelled \"Helikoptur Opuraateeng Manyuuwul.\"")
(FLAGS ACIDBIT TAKEBIT READBIT)
(ACTION GREEN-SPOOL-F)>
<ROUTINE GREEN-SPOOL-F ()
<COND (<AND <VERB? TAKE>
<IN? ,GREEN-SPOOL ,SPOOL-READER>
<FSET? ,SPOOL-READER ,ONBIT>>
<MOVE ,GREEN-SPOOL ,ADVENTURER>
<FCLEAR ,GREEN-SPOOL ,TRYTAKEBIT>
<TELL "The screen goes blank as you take the spool." CR>)>>
<ROOM BOOTH-3
(LOC ROOMS)
(DESC "Booth 3")
(LDESC
"This is a tiny room with a large \"3\" painted on the wall. A panel contains
a slot about ten centimeters wide, a brown button labelled \"1\" and a beige
button labelled \"2.\"")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO LIBRARY-LOBBY)
(OUT TO LIBRARY-LOBBY)
(FLAGS RLANDBIT ONBIT)
(GLOBAL CONTROLS SLOT TELEPORTATION-BUTTON-1 TELEPORTATION-BUTTON-2)
(PSEUDO "BOOTH" IN-BOOTH-PSEUDO)>
<ROOM LIBRARY
(LOC ROOMS)
(DESC "Library")
(LDESC
"This is a large carpeted room with a desk and many small tables. The sole
exit is down a few steps to the east.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO LIBRARY-LOBBY)
(OUT TO LIBRARY-LOBBY)
(FLAGS RLANDBIT ONBIT FLOYDBIT)
(GLOBAL TABLES STAIRS)
(PSEUDO "CARPET" CARPET-PSEUDO "DESK" DESK-PSEUDO)>
<OBJECT TERMINAL
(LOC LIBRARY-LOBBY)
(DESC "terminal")
(FDESC
"Sitting on a wide table is a machine of sorts, consisting of a video
screen and a keyboard. It is currently turned off.")
(LDESC
"On the table is a computer terminal.")
(SYNONYM TERMINAL KEYBOARD SCREEN MACHINE)
(ADJECTIVE COMPUTER VIDEO)
(FLAGS LIGHTBIT)
(ACTION TERMINAL-F)>
<GLOBAL SCREEN-TEXT <>>
<GLOBAL MENU-LEVEL 0>
<ROUTINE TERMINAL-F ()
<COND (<VERB? EXAMINE>
<TELL
"The computer terminal consists of a video display screen, a keyboard with
ten keys numbered from zero through nine, and an on-off switch. ">
<COND (<FSET? ,TERMINAL ,ONBIT>
<TELL
"The screen displays some writing:" CR ,SCREEN-TEXT CR>
<COND (<G? ,MENU-LEVEL 9>
<TELL ,MORE-INFO CR>)>
<RTRUE>)
(T
<TELL "The screen is dark." CR>)>)
(<VERB? READ>
<COND (<FSET? ,TERMINAL ,ONBIT>
<TELL ,SCREEN-TEXT CR>
<COND (<G? ,MENU-LEVEL 9>
<TELL ,MORE-INFO CR>)>
<RTRUE>)
(T
<TELL "The screen is blank." CR>)>)
(<VERB? LAMP-ON>
<COND (<FSET? ,TERMINAL ,ONBIT>
<TELL "It's already on." CR>)
(T
<FSET ,TERMINAL ,ONBIT>
<FSET ,TERMINAL ,TOUCHBIT>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL
"The screen gives off a green flash, and then some writing appears on
the screen:" CR>
<TELL ,SCREEN-TEXT CR>)>)
(<VERB? LAMP-OFF>
<COND (<FSET? ,TERMINAL ,ONBIT>
<FCLEAR ,TERMINAL ,ONBIT>
<SETG MENU-LEVEL 0>
<TELL "The screen goes dark." CR>)
(T
<TELL "It isn't on!" CR>)>)>>
<ROUTINE LIBRARY-TYPE ()
<COND (<NOT <EQUAL? ,PRSO ,INTNUM>>
<NUMBERS-ONLY>)
(<EQUAL? ,MENU-LEVEL 0>
<COND (<EQUAL? ,P-NUMBER 0>
<TELL ,NO-MEANING CR>)
(<EQUAL? ,P-NUMBER 1>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,HISTORY-MENU>
<TELL ,SCREEN-TEXT CR>
<SETG MENU-LEVEL 1>)
(<EQUAL? ,P-NUMBER 2>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,CULTURE-MENU>
<TELL ,SCREEN-TEXT CR>
<SETG MENU-LEVEL 2>)
(<EQUAL? ,P-NUMBER 3>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,TECHNOLOGY-MENU>
<TELL ,SCREEN-TEXT CR>
<SETG MENU-LEVEL 3>)
(<EQUAL? ,P-NUMBER 4>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,GEOGRAPHY-MENU>
<TELL ,SCREEN-TEXT CR>
<SETG MENU-LEVEL 4>)
(<EQUAL? ,P-NUMBER 5>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,PROJECT-MENU>
<TELL ,SCREEN-TEXT CR>
<SETG MENU-LEVEL 5>)
(<EQUAL? ,P-NUMBER 6>
<SETG MENU-LEVEL 6>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,INTERLOGIC-MENU>
<TELL ,SCREEN-TEXT CR>)
(<G? ,P-NUMBER 6>
<TELL ,NO-MEANING CR>)>)
(<EQUAL? ,MENU-LEVEL 1>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 0>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL ,SCREEN-TEXT CR>)
(<EQUAL? ,P-NUMBER 1>
<SETG MENU-LEVEL 11>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,11-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 2>
<SETG MENU-LEVEL 12>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,12-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 3>
<SETG MENU-LEVEL 13>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,13-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<G? ,P-NUMBER 3>
<TELL ,NO-MEANING CR>)>)
(<EQUAL? ,MENU-LEVEL 2>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 0>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL ,SCREEN-TEXT CR>)
(<EQUAL? ,P-NUMBER 1>
<SETG MENU-LEVEL 21>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,21-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 2>
<SETG MENU-LEVEL 22>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,22-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 3>
<SETG MENU-LEVEL 23>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,23-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<G? ,P-NUMBER 4>
<TELL ,NO-MEANING CR>)>)
(<EQUAL? ,MENU-LEVEL 3>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 0>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL ,SCREEN-TEXT CR>)
(<EQUAL? ,P-NUMBER 1>
<SETG MENU-LEVEL 31>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,31-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 2>
<SETG MENU-LEVEL 32>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,32-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 3>
<SETG MENU-LEVEL 33>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,33-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 4>
<SETG MENU-LEVEL 34>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,34-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 5>
<SETG MENU-LEVEL 35>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,35-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<G? ,P-NUMBER 5>
<TELL ,NO-MEANING CR>)>)
(<EQUAL? ,MENU-LEVEL 4>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 0>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL ,SCREEN-TEXT CR>)
(<EQUAL? ,P-NUMBER 1>
<SETG MENU-LEVEL 41>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,41-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 2>
<SETG MENU-LEVEL 42>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,42-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 3>
<SETG MENU-LEVEL 43>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,43-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<G? ,P-NUMBER 3>
<TELL ,NO-MEANING CR>)>)
(<EQUAL? ,MENU-LEVEL 5>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 0>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL ,SCREEN-TEXT CR>)
(<EQUAL? ,P-NUMBER 1>
<SETG MENU-LEVEL 51>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,51-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 2>
<SETG MENU-LEVEL 52>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,52-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 3>
<SETG MENU-LEVEL 53>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,53-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<G? ,P-NUMBER 3>
<TELL ,NO-MEANING CR>)>)
(<EQUAL? ,MENU-LEVEL 6>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 0>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,MAIN-MENU>
<TELL ,SCREEN-TEXT CR>)
(<EQUAL? ,P-NUMBER 1>
<SETG MENU-LEVEL 61>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,61-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>
<COND (<IN? ,FLOYD ,HERE>
<SETG FLOYD-SPOKE T>
<TELL
"Floyd, peering over your shoulder, says \"Oh, I love that game! Solved every
problem, except couldn't figure out how to get into white house.\"" CR>)>)
(<EQUAL? ,P-NUMBER 2>
<SETG MENU-LEVEL 62>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,62-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<EQUAL? ,P-NUMBER 3>
<SETG MENU-LEVEL 63>
<TELL ,TEXT-APPEARS CR>
<SETG SCREEN-TEXT ,63-TEXT>
<TELL ,SCREEN-TEXT CR>
<TELL ,MORE-INFO CR>)
(<G? ,P-NUMBER 3>
<TELL ,NO-MEANING CR>)>)
(<AND <G? ,MENU-LEVEL 10>
<L? ,MENU-LEVEL 20>>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 1>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,HISTORY-MENU>
<TELL ,SCREEN-TEXT CR>)
(T
<TELL ,LOW-END CR>)>)
(<AND <G? ,MENU-LEVEL 20>
<L? ,MENU-LEVEL 30>>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 2>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,CULTURE-MENU>
<TELL ,SCREEN-TEXT CR>)
(T
<TELL ,LOW-END CR>)>)
(<AND <G? ,MENU-LEVEL 30>
<L? ,MENU-LEVEL 40>>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 3>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,TECHNOLOGY-MENU>
<TELL ,SCREEN-TEXT CR>)
(T
<TELL ,LOW-END CR>)>)
(<AND <G? ,MENU-LEVEL 40>
<L? ,MENU-LEVEL 50>>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 4>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,GEOGRAPHY-MENU>
<TELL ,SCREEN-TEXT CR>)
(T
<TELL ,LOW-END CR>)>)
(<AND <G? ,MENU-LEVEL 50>
<L? ,MENU-LEVEL 60>>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 5>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,PROJECT-MENU>
<TELL ,SCREEN-TEXT CR>)
(T
<TELL ,LOW-END CR>)>)
(<AND <G? ,MENU-LEVEL 60>
<L? ,MENU-LEVEL 70>>
<COND (<EQUAL? ,P-NUMBER 0>
<SETG MENU-LEVEL 6>
<TELL ,SCREEN-CLEARS CR>
<SETG SCREEN-TEXT ,INTERLOGIC-MENU>
<TELL ,SCREEN-TEXT CR>)
(T
<TELL ,LOW-END CR>)>)>>
<CONSTANT NO-MEANING "The terminal feeps, and a message briefly appears on the
screen explaining that typing that character has no meaning at the moment.">
<CONSTANT SCREEN-CLEARS "The screen clears and a different menu appears:|">
<CONSTANT TEXT-APPEARS "The screen clears and some text appears:|">
<CONSTANT MORE-INFO
"|
\"Foor moor deetaald infoormaashun on xis tapik, konsult xe
liibrereein foor xe aproopreeit spuulz. Tiip zeeroo tuu goo tuu
aa hiiyur levul.\"">
<CONSTANT LOW-END "\"Yuu hav reect xe loowist levul uv xe liibreree indeks.
Pleez tiip zeeroo tuu goo tuu aa hiiyur levul. If yuu reekwiir
asistins, kawl xe liibrereein.\"">
<CONSTANT MAIN-MENU
" 1. Histooree|
2. Kulcur|
3. Teknolojee|
4. Jeeografee|
5. Xe Prajekt|
6. Inturlajik Gaamz">
<CONSTANT HISTORY-MENU
" 0. Maan Menyuu|
1. Raashul Orijinz|
2. Graat Hiiaatus|
3. Riiz uv xe Nuu Teknakrasee">
<CONSTANT CULTURE-MENU
" 0. Maan Menyuu|
1. Lituracur|
2. Art|
3. Muusik">
<CONSTANT TECHNOLOGY-MENU
" 0. Maan Menyuu|
1. Medisin|
2. Agrikultcur|
3. Tranzportaashun|
4. Roobotiks|
5. Planateree Sistumz">
<CONSTANT GEOGRAPHY-MENU
" 0. Maan Menyuu|
1. Planit Landmasiz|
2. Undursee Reejunz|
3. Spaas Kolooneez">
<CONSTANT PROJECT-MENU
" 0. Maan Menyuu|
1. Orijinz uv xe Dizeez|
2. Xe Instalaashunz|
3. Prajekt Kuntrool|">
<CONSTANT INTERLOGIC-MENU
" 0. Maan Menyuu|
1. Zoork|
2. Dedliin and Witnis|
3. Starkros and Suspendid">
<CONSTANT 11-TEXT
"\"Xe aancint lejindz saa xat ships frum xe Sekund Yuunyun wuns fild ar skiis
and wil wun daa kum agen. Madern siientists, huu wuns dismist suc lejindz
and felt xat liif eevolvd heer on Resida, now feel xat ar planit wuz reelee
setuld bii men uv xe Sekund Yuunyun.\"">
<CONSTANT 12-TEXT
"\"Wexur oor not xe lejindz uv xe Sekund Yuunyun ar truu, arkeeoloojists ar
surtin xat aa peereeid uv hii teknoolojikul and sooshul deevelupmint egzistid
xowzindz uv yeerz agoo, but foor sum reezin sivilizaashun slid intuu aa dark
aaj lasteeng senshureez.\"">
<CONSTANT 13-TEXT
"\"Wixin xe last fiiv senshureez, xe riiz uv xe Nuu Teknakrasee haz reeturnd
sivilizaashun tuu xe levul ataand beefoor xe Hiiaatus. Sooshul histooreeunz
xink xat wen xe Dizeez struk, ar raas had aceevd aa levul uv sufistikaashun
eekwal tuu xe pree-Hiiaatus.\"">
<CONSTANT 21-TEXT
"\"Menee volyuumz on xe deevelupmint uv Residan lituracur ar on fiil in xe
liibreree. Alsoo, kopeez uv awl graat wurks uv riiteeng, sum daateeng bak tuu
xe mixikul daaz uv xe Sekund Yuunyun, ar lookaatid heer.\"">
<CONSTANT 22-TEXT
"\"Histoorikul studeez and reeproodukshunz uv Residan art ar avaalibul heer
foor awl xree maajur peereeids uv art deevelupmint: xe Primitiv peereeid, xe
Renasans peereeid uv xe urlee poost-Hiiaatus, and xe moost reesint peereeid
uv videeoo and laazur art.\"">
<CONSTANT 23-TEXT
"\"Reekoordeengz uv awl impoortint kompoozishunz uv xe last fiiv hundrid yeerz
ar lookaatid in xe liibrereez data banks.\"">
<CONSTANT 31-TEXT
"\"Awl maajur dizeezuz hav bin kyuuribul foor oovur aa senshuree. Xe
deevelupmint uv kriioojeniks now alowz dokturz tuu put paashints in staasis
until aa kyuur iz fownd. Avurij Residan liif ekspektinsee iz now 147
revooluushunz.\"">
<CONSTANT 32-TEXT
"\"Durt farmeeng iz awl but obsooleet, wix moost fuud kumeeng frum xe
hiidrooponiks kompleksiz oor xe undurwatur aljee farmz.\"">
<CONSTANT 33-TEXT
"\"Planateree travul iz noormulee priivit skuutur foor shoort hops, and aarbus
foor longur trips. Spaas travul haz reesintlee bin revooluushuniizd bii xe
invenshun uv nuukleeur-fyuuld enjinz.\"">
<CONSTANT 34-TEXT
"\"Untoold senshureez agoo, entiir teemz uv roobots wur reekwiird tuu purfoorm
eevin xe simplist tasks...wun roobot wud handul viszuuwul funkshunz, wun roobot
wud handul awditooree funkshunz, and soo foorx. Now, xanks tuu advansis in
mineeatshurizaashun, xeez tasks kan bee purfoormd bii singul roobots, suc az
xe multiipurpis B-19 seereez.\"">
<CONSTANT 35-TEXT
"\"Xe priimeree Planateree Sistumz ar Kors Kuntrool (foor maantaaneeng an
iideel kliimit), Deefens (foor destroieeng pootenshulee daanjuris meeteeoorz),
and xe reesintlee adid Prajekt Kuntrool (foor monitureeng proogres uv
Xe Prajekt).\"">
<CONSTANT 41-TEXT
"\"Sins xe staabulizaashun uv xe oorbit uv Resida, preesiislee 47.79 pursent
uv xe planits surfis iz land. Xe land iz diviidid intuu tuu priimeree
landmasiz, Andoor and Fruulik, plus siks lesur landmasiz. Xe gloobul kapitul,
Pilandoor, iz on xe eesturn koost uv Andoor.\"">
<CONSTANT 42-TEXT
"\"Xe furst undursee habutats wur oopind in 2992, and tuudaa, neerlee tuu
senshureez laatur, abowt 9 pursent uv Residaz popyuulaashun livz in wun
uv xe twentee sprawleeng undursee siteez.\"">
<CONSTANT 43-TEXT
"\"Alxoo setulmints hav bin establisht on Fristin, and on sevrul uv xe muunz
uv xe gas jiiunt Blustin, xe vast majooritee uv of-woorldurz liv in xe
spaas kolooneez establisht at Residaz troojin points.\"">
<CONSTANT 51-TEXT
"\"Xe oorijin uv Xe Dizeez haz bin linkt tuu xe Sentur foor Advanst Kriioojenik
Reesurc, wic wuz kondukteeng reesurc intuu waaz uv ekstendeeng xe Kriioojenik
peereeid indefinitlee. Alxoo xis reesurc wuz aa sukses, sumhow Xe Dizeez
wuz reeleest and beegan spredeeng.\"">
<CONSTANT 52-TEXT
"\"Xe tuu kompleksiz wur establisht on xe twin peek platooz uv Kalamontee and
Lawanda. Xeez lookaashunz wur coozin beekawz xaar hiit wud maak
transpoortaashun and komyuunikaashunz eezeeur, and soo xat xe vast reeakturz
and kriioojeniks caamburz kud bee kunstruktid in xe mowntinz beeloo.\"">
<CONSTANT 53-TEXT
"\"Faaz Wun: xe kunstrukshun uv xe Kalamontee and Lawanda Kompleksiz. Faaz
Tuu: mass kriioojenik freezeeng uv Residan popyuulaashun. Faaz Xree:
siimultaaneeus monitureeng uv kriioojeniks wiil awtoomaatid reesurc iz
konduktid bii inkrediblee soofistikaatid kumpyuuturiizd fasiliteez. Faaz
Foor: reeviivul and inokyuulaashun uv xe popyuulaashun.\"">
<CONSTANT 61-TEXT
"\"Xe Zoork triloojee, an adventshur klasik, taaks plaas in aa deeliitful
but daanjuris undurgrownd seteeng.\"">
<CONSTANT 62-TEXT
"\"Dedliin iz xe furst graat misturee uv xe kumpyuutur aaj, and Witnis iz
its wurxee suksesur.\"">
<CONSTANT 63-TEXT
"\"Starkros iz Infookamz miind-bendeeng siiens-fikshun adventshur. Suspendid
iz aa kriioojenik siiens-fikshun niitmaar.\"">
<OBJECT SPOOL-READER
(LOC LIBRARY)
(DESC "microfilm reader")
(FDESC
"On the desk is a machine with a screen and a small circular opening. It
seems to be turned off.")
(LDESC
"There is a microfilm reader on one of the tables.")
(SYNONYM READER SCREEN OPENING MACHINE)
(ADJECTIVE MICROFILM SMALL CIRCULAR)
(CAPACITY 3)
(FLAGS LIGHTBIT CONTBIT SEARCHBIT OPENBIT)
(ACTION SPOOL-READER-F)>
<GLOBAL SPOOL-TEXT <>>
<ROUTINE SPOOL-READER-F ()
<COND (<VERB? LAMP-ON>
<COND (<FSET? ,SPOOL-READER ,ONBIT>
<TELL "The spool reader is already on." CR>)
(T
<FSET ,SPOOL-READER ,ONBIT>
<FSET ,SPOOL-READER ,TOUCHBIT>
<COND (<FIRST? ,SPOOL-READER>
<TELL ,SPOOL-TEXT CR>)
(T
<TELL
"The machine hums quietly, and the screen lights up with the phrase
\"Pleez insurt spuul.\"" CR>)>)>)
(<VERB? LAMP-OFF>
<COND (<FSET? ,SPOOL-READER ,ONBIT>
<FCLEAR ,SPOOL-READER ,ONBIT>
<TELL "The spool reader is now off." CR>)
(T
<TELL "It's not on!" CR>)>)
(<VERB? EXAMINE>
<TELL
"The machine has a small screen, and below that, a small circular opening.
The screen is currently ">
<COND (<AND <FSET? ,SPOOL-READER ,ONBIT>
<FIRST? ,SPOOL-READER>>
<TELL "displaying some information:" CR>
<TELL ,SPOOL-TEXT CR>)
(T
<TELL "blank." CR>)>)
(<VERB? READ>
<COND (<AND <FSET? ,SPOOL-READER ,ONBIT>
<FIRST? ,SPOOL-READER>>
<TELL ,SPOOL-TEXT CR>)
(T
<TELL "The screen is blank." CR>)>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,SPOOL-READER>>
<COND (<FIRST? ,SPOOL-READER>
<TELL "There's already a spool in the reader." CR>)
(<EQUAL? ,PRSO ,GREEN-SPOOL>
<SETG SPOOL-TEXT ,GREEN-TEXT>
<MOVE ,GREEN-SPOOL ,SPOOL-READER>
<FSET ,GREEN-SPOOL ,TRYTAKEBIT>
<TELL ,SPOOL-FITS>
<COND (<FSET? ,SPOOL-READER ,ONBIT>
<TELL ,SOME-INFO>)>
<TELL CR>)
(<EQUAL? ,PRSO ,RED-SPOOL>
<SETG SPOOL-TEXT ,RED-TEXT>
<MOVE ,RED-SPOOL ,SPOOL-READER>
<FSET ,RED-SPOOL ,TRYTAKEBIT>
<TELL ,SPOOL-FITS>
<COND (<FSET? ,SPOOL-READER ,ONBIT>
<TELL ,SOME-INFO>)>
<TELL CR>)
(T
<TELL "It doesn't fit in the circular opening." CR>)>)
(<VERB? CLOSE>
<NO-CLOSE>
<RTRUE>)>>
<CONSTANT SPOOL-FITS "The spool fits neatly into the opening.">
<CONSTANT SOME-INFO " Some information appears on the screen.">
<CONSTANT GREEN-TEXT
"\"Oonlee peepul wix propur traaneeng shud piilot xe helikopturz. Reekwiird
ekwipmint inkluudz aa Helikoptur Akses Kard and aa Kuntrool Panul Kee. Xeez
kan bee obtaand frum Tranzportaashun Stoorij.\"|
The rest is all very technical.">
<CONSTANT RED-TEXT
"\"Xe jestaashun peereeid uv Xe Dizeez, folooweeng ekspoozur, vaareez
treemenduslee frum pursin tuu pursin, raanjeeng frum wun daa tuu sevrul
rootaashunz. Wuns xe furst simptumz ar shoon, dex alwaaz okurz in aat tuu
ten daaz.|
Xe priimeree simptum iz aa hii feevur. Xe sekunderee simptum iz aa sharp
inkrees in xe amownt uv sleep needid eec niit.\"|
The rest of the information is about symptoms which can be detected only by
using complicated medical procedures.">
<ROOM PROJECT-CORRIDOR-WEST
(LOC ROOMS)
(DESC "Project Corridor West")
(LDESC
"This is a curving hallway leading east and northwest. There is an opening
to the west.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 25 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO SANFAC-F)
(EAST TO PROJECT-CORRIDOR)
(NW TO FORK)
(FLAGS RLANDBIT ONBIT)>
<ROOM SANFAC-F
(LOC ROOMS)
(DESC "SanFac F")
(LDESC
"This is another dusty sanitary facility. Unlike the ones near the dorms,
this one is smaller and has no bathing fixtures.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO PROJECT-CORRIDOR-WEST)
(OUT TO PROJECT-CORRIDOR-WEST)
(FLAGS FLOYDBIT RLANDBIT ONBIT)
(PSEUDO "FIXTURES" TOILET-PSEUDO "TOILET" TOILET-PSEUDO)>
<ROOM PROJECT-CORRIDOR
(LOC ROOMS)
(DESC "Project Corridor")
(LDESC
"You are at the center of a long east-west hallway. A doorway, labelled
\"PrajKon Awfis\", opens to the south.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO PROJECT-CORRIDOR-EAST)
(WEST TO PROJECT-CORRIDOR-WEST)
(SOUTH TO PROJCON-OFFICE)
(FLAGS RLANDBIT ONBIT)>
<ROOM PROJCON-OFFICE
(LOC ROOMS)
(DESC "ProjCon Office")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO PROJECT-CORRIDOR)
(SOUTH TO CRYO-ELEVATOR IF CRYO-ELEVATOR-DOOR IS OPEN
ELSE "You can't go that way.")
(EAST TO COMPUTER-ROOM)
(FLAGS RLANDBIT FLOYDBIT ONBIT)
(GLOBAL CRYO-ELEVATOR-DOOR)
(PSEUDO "MURAL" MURAL-PSEUDO "LOGO" LOGO-PSEUDO)
(ACTION PROJCON-OFFICE-F)>
<ROUTINE PROJCON-OFFICE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This office looks like a headquarters of some kind. Exits lead north and
east. The west wall displays a logo. ">
<COND (,COMPUTER-FIXED
<TELL
"The mural that previously adorned the south wall has slid away, revealing
an open doorway to a large elevator!" CR>)
(T
<TELL
"The south wall is completely covered by a garish mural which clashes
with the other decor of the room." CR>)>)
(<AND <EQUAL? .RARG ,M-END>
<IN? ,FLOYD ,HERE>
<NOT ,MURAL-FLAG>>
<SETG MURAL-FLAG T>
<SETG FLOYD-SPOKE T>
<TELL
"Floyd surveys the mural and scratches his head. \"I don't remember seeing
this before,\" he comments." CR>)>>
<GLOBAL MURAL-FLAG <>>
<OBJECT CRYO-ELEVATOR-DOOR
(LOC LOCAL-GLOBALS)
(DESC "cryo-elevator door")
(SYNONYM DOOR)
(ADJECTIVE CRYO-ELEVATOR ELEVATOR)
(FLAGS NDESCBIT INVISIBLE)>
<ROOM CRYO-ELEVATOR
(LOC ROOMS)
(DESC "Cryo-Elevator")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH PER CRYO-EXIT-F)
(GLOBAL CRYO-ELEVATOR-DOOR)
(FLAGS RLANDBIT ONBIT)
(PSEUDO "BUTTON" CRYO-BUTTON-PSEUDO)
(ACTION CRYO-ELEVATOR-F)>
<ROUTINE CRYO-ELEVATOR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a large, plain elevator with one solitary button and a door
to the north which is ">
<DDESC ,CRYO-ELEVATOR-DOOR>
<TELL "." CR>)>>
<ROUTINE CRYO-EXIT-F ()
<COND (<FSET? ,CRYO-ELEVATOR-DOOR ,OPENBIT>
<COND (,CRYO-SCORE-FLAG
,CRYO-ANTEROOM)
(T
,PROJCON-OFFICE)>)
(T
<DOOR-CLOSED>
<RFALSE>)>>
<GLOBAL CRYO-SCORE-FLAG <>>
<ROUTINE I-CRYO-ELEVATOR-ARRIVE ()
<FSET ,CRYO-ELEVATOR-DOOR ,OPENBIT>
<TELL CR "The elevator door opens onto a room to the north." CR>>
<ROOM CRYO-ANTEROOM
(LOC ROOMS)
(DESC "Cryo-Anteroom")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(FLAGS RLANDBIT ONBIT)
(ACTION CRYO-ANTEROOM-F)>
<ROUTINE CRYO-ANTEROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The elevator closes as you leave it, and you find yourself in a small,
chilly room. To the north, through a wide arch, is an enormous chamber lined
from floor to ceiling with thousands of cryo-units. You can see similar
chambers beyond, and your mind staggers at the thought of the millions of
individuals asleep for countless centuries.|
|
In the anteroom where you stand is a solitary cryo-unit, its cover frosted.
Next to the cryo-unit is a complicated control panel." CR CR>)
(<EQUAL? .RARG ,M-END>
<TELL
"A door slides open and a medical robot glides in. It opens the cryo-unit
and administers an injection to its inhabitant. As the robot glides away, a
figure rises from the cryo-unit -- a handsome, middle-aged woman with flowing
red hair. She spends some time studying readouts from the control panel">
<COND (<AND ,COMM-FIXED ,DEFENSE-FIXED>
<TELL ", pressing several keys." CR>)
(T
<TELL "." CR>)>
<COND (,COURSE-CONTROL-FIXED
<TELL
"|
As other cryo-units in the chambers beyond begin opening, the woman turns
to you, bows gracefully, and speaks in a beautiful, lilting
voice. \"I am Veldina, leader of Resida. Thanks to you, the cure has been
discovered, and the planetary systems repaired. We are eternally
grateful.\"" CR>
<COND (<AND ,COMM-FIXED ,DEFENSE-FIXED>
<TELL
"|
\"You will also be glad to hear that a ship of your Stellar Patrol now orbits
the planet. I have sent them the coordinates for this room.\" As if on cue,
a landing party from the S.P.S. Flathead materializes nearby. Blather is with
them, having been picked up from deep space in another escape pod, babbling
cravenly. Captain Sterling of the Flathead acknowledges your heroic actions,
and informs you of your promotion to Lieutenant First Class.|
|
As a team of mutant hunters head for the cryo-elevator, Veldina mentions that
the grateful people of Resida offer you leadership of their world. Captain
Sterling points out that, even if you choose to remain on Resida, Blather
(demoted to Ensign Twelfth Class) has been assigned as your personal toilet
attendant.|
|
You feel a sting from your arm and turn to see a medical robot moving
away after administering the antidote for The Disease.|
|
A team of robot technicians step into the anteroom. They part their ranks, and
a familiar figure comes bounding toward you! \"Hi!\" shouts Floyd, with
uncontrolled enthusiasm. \"Floyd feeling better now!\" Smiling from ear to
ear, he says, \"Look what Floyd found!\" He hands you a helicopter key,
a reactor elevator card, and a paddleball set. \"Maybe we can use them in
the sequel...\"" CR CR>
<FINISH <>>)
(T
<TELL
"|
\"Unfortunately, a second ship from your Stellar Patrol has ">
<COND (<NOT ,DEFENSE-FIXED>
<TELL
"been destroyed by our malfunctioning meteor defenses.">)
(T
<TELL
"come looking for survivors, and because of our malfunctioning communications
system, has given up and departed.">)>
<TELL
" I fear that you are stranded on Resida, possibly forever. However, we
show our gratitude by offering you an unlimited bank account and a house
in the country.\"" CR CR>
<FINISH <>>)>)
(T
<TELL
"|
She turns to you and, with a strained voice says, \"You have fixed our
computer and a Cure has been discovered, and we are grateful. But alas,
it was all in vain. Our planetary course control system has malfunctioned,
and the orbit has now decayed beyond correction. Soon Resida will plunge
into the sun.\"" CR CR>
<COND (<AND ,COMM-FIXED ,DEFENSE-FIXED>
<TELL
"Veldina examines the control panel again. \"Fortunately, another ship from
your Stellar Patrol has arrived, so at least you will survive.\" At that
moment, a landing party from the S.P.S. Flathead materializes, and takes you
away from the doomed world." CR CR>)>
<FINISH <>>)>)>>
;(OLD HACK ENDING:
"A parchment containing Mike Dornbrook's phone number appears in the trophy
case. A holographic image of the Dungeon Master appears in the air before
you. He is carrying a letter from Chief Inspector Klutz. \"I hope to meet you
in person some day,\" he says.")
<ROOM PROJECT-CORRIDOR-EAST
(LOC ROOMS)
(DESC "Project Corridor East")
(LDESC
"The hallway ends here but continues back toward the west. Doorways lead
north, south and east.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO LIBRARY-LOBBY)
(SOUTH TO COMPUTER-ROOM)
(WEST TO PROJECT-CORRIDOR)
(EAST TO MAIN-LAB)
(FLAGS RLANDBIT ONBIT)>
<ROOM COMPUTER-ROOM
(LOC ROOMS)
(DESC "Computer Room")
(LDESC
"This is the main computer room for the Project. The only sign of activity is
a glowing red light. The exits are north, west, and northeast. To the south
is a small booth.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 25 ;"NORTH" 0>)
(NORTH TO PROJECT-CORRIDOR-EAST)
(WEST TO PROJCON-OFFICE)
(SOUTH TO MINI-BOOTH)
(IN TO MINI-BOOTH)
(NE TO MAIN-LAB)
(FLAGS RLANDBIT FLOYDBIT ONBIT)
(GLOBAL LIGHTS)
(PSEUDO "BOOTH" NEAR-BOOTH-PSEUDO)>
<GLOBAL COMPUTER-FLAG <>>
<ROUTINE COMPUTER-ACTION ()
<SETG COMPUTER-FLAG T>
<SETG FLOYD-SPOKE T>
<TELL "Floyd examines the ">
<COND (<EQUAL? ,HERE ,COMPUTER-ROOM>
<TELL "glowing light">)
(T
<TELL "computer printout">)>
<TELL ". With a concerned frown, he says, \"Uh oh. Computer is
broken. A Doctor-person once told Floyd that Computer is the most important
part of the Project.\"" CR>>
<OBJECT PRINT-OUT
(LOC COMPUTER-ROOM)
(DESC "pile of computer output")
(SYNONYM PILE PAPER OUTPUT PRINTOUT)
(ADJECTIVE COMPUTER)
(SIZE 20)
(FLAGS ACIDBIT TAKEBIT READBIT)
(ACTION PRINT-OUT-F)>
<ROUTINE PRINT-OUT-F ()
<COND (<VERB? READ EXAMINE>
<FIXED-FONT-ON>
<TELL
"The printout is hundreds of pages long. It would take many chrons to
read it all. The last page looks pretty interesting, though:|
|
\"Daalee Statis Reeport:|
PREELIMINEREE REESURC: 100.000%|
INTURMEEDEEIT REESURC: 100.000%|
FIINUL REESURC: 100.000%|
DRUG PROODUKSHUN: 100.000%|
DRUG TESTEENG: 99.985%|
Proojektid tiim tuu reeviivul prooseedzur: 0 daaz, 0.8 kronz|
|
|
*** ALURT! ALURT! ***|
Malfunkshun in Sekshun 384! Sumuneeng reepaar roobot.\"|
|
The printout ends at this point." CR>
<FIXED-FONT-OFF>)>>
<ROOM MINI-BOOTH
(LOC ROOMS)
(DESC "Miniaturization Booth")
(LDESC
"This is a small room barely large enough for one person. Mounted on the wall
is a small slot, and next to it a keyboard with numeric keys. The exit is to
the north.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO COMPUTER-ROOM)
(OUT TO COMPUTER-ROOM)
(FLAGS RLANDBIT ONBIT)
(GLOBAL SLOT)
(PSEUDO "KEYBOARD" KEYBOARD-PSEUDO "BOOTH" IN-BOOTH-PSEUDO)>
<OBJECT MINI-CARD
(LOC BIO-LOCK-EAST)
(DESC "miniaturization access card")
(SYNONYM CARD CARDS)
(ADJECTIVE MINIATURIZATION MINI ACCESS)
(SIZE 3)
(FLAGS TAKEBIT NDESCBIT INVISIBLE READBIT)
(VALUE 1)
(TEXT "The card is embossed \"minitcurizaashun akses kard.\"")
(ACTION MINI-CARD-F)>
<ROUTINE MINI-CARD-F ()
<COND (<AND <FSET? ,MINI-CARD ,NDESCBIT>
<VERB? RUB MOVE TURN SET TAKE PUSH PULL SMELL>>
<TELL "It's in the next room." CR>)>>
<ROOM MAIN-LAB
(LOC ROOMS)
(DESC "Main Lab")
(LDESC
"This is the heart of the Project's vast laboratory complex. There are exits
to the west and southwest, and heavy metal doors to the northeast and
southeast. A small doorway leads south.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 25 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO PROJECT-CORRIDOR-EAST)
(SOUTH TO LAB-STORAGE)
(SW TO COMPUTER-ROOM)
(SE TO BIO-LOCK-WEST IF BIO-DOOR-WEST IS OPEN)
(NE TO RADIATION-LOCK-WEST IF RAD-DOOR-WEST IS OPEN)
(FLAGS RLANDBIT FLOYDBIT ONBIT)
(GLOBAL BIO-DOOR-WEST RAD-DOOR-WEST)>
<ROOM LAB-STORAGE
(LOC ROOMS)
(DESC "Lab Storage")
(LDESC
"This is a tiny room for the storage of laboratory supplies. The sole exit is
to the north.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO MAIN-LAB)
(OUT TO MAIN-LAB)
(FLAGS RLANDBIT FLOYDBIT ONBIT)
(GLOBAL SHELVES)
(PSEUDO "RACK" CARPET-PSEUDO "SUPPLIES" SUPPLIES-PSEUDO)>
<OBJECT LAB-UNIFORM
(LOC LAB-STORAGE)
(DESC "lab uniform")
(FDESC
"Hanging on a rack is a pale blue lab uniform. Sewn onto its pocket is a
nondescript logo.")
(SYNONYM UNIFORM SUIT POCKET LOGO)
(ADJECTIVE PALE BLUE LAB)
(SIZE 10)
(CAPACITY 5)
(FLAGS TAKEBIT CONTBIT SEARCHBIT WEARBIT)
(ACTION LAB-UNIFORM-F)>
<GLOBAL UNIFORM-OPENED <>>
<ROUTINE LAB-UNIFORM-F ()
<COND (<VERB? EXAMINE>
<TELL
"It is a plain lab uniform. The logo above the pocket depicts a flame burning
above some kind of sleep chamber. The pocket is ">
<DDESC ,LAB-UNIFORM>
<TELL "." CR>)
(<VERB? SEARCH OPEN>
<COND (<FSET? ,LAB-UNIFORM ,OPENBIT>
<TELL "The pocket is already open." CR>)
(T
<FSET ,LAB-UNIFORM ,OPENBIT>
<COND (,UNIFORM-OPENED
<COND (<FIRST? ,LAB-UNIFORM>
<TELL
"Opening the uniform's pocket reveals ">
<PRINT-CONTENTS ,LAB-UNIFORM>
<TELL "." CR>)
(T
<TELL "The pocket is empty." CR>)>)
(T
<FSET ,LAB-UNIFORM ,OPENBIT>
<SETG UNIFORM-OPENED T>
<TELL
"You discover a small piece of paper and a teleportation access card in the
pocket of the uniform." CR>)>)>)
(<AND <VERB? WEAR>
<FSET? ,PATROL-UNIFORM ,WORNBIT>>
<TELL "It won't fit on top of the Patrol uniform." CR>)>>
<OBJECT TELEPORTATION-CARD
(LOC LAB-UNIFORM)
(DESC "teleportation access card")
(SYNONYM CARD CARDS)
(ADJECTIVE TELEPORT TELEPORTATION ACCESS)
(SIZE 3)
(FLAGS TAKEBIT READBIT)
(TEXT "The card is embossed \"teliportaashun akses kard.\"")>
;<OBJECT MODULATOR-PIN
(LOC LAB-UNIFORM)
(DESC "modulator pin")
(SYNONYM PIN)
(ADJECTIVE DIGGER MODULATOR)
(SIZE 2)
(FLAGS TAKEBIT)>
<OBJECT COMBINATION-PAPER
(LOC LAB-UNIFORM)
(DESC "piece of paper")
(SYNONYM PIECE PAPER)
(FLAGS ACIDBIT TAKEBIT READBIT)
(SIZE 2)
(ACTION COMBINATION-PAPER-F)>
<ROUTINE COMBINATION-PAPER-F ()
<COND (<VERB? READ EXAMINE>
<TELL
"Week uv 14-Juun--2882. Kombinaashun tuu Konfurins Ruum: " N ,NUMBER-NEEDED
"." CR>)>>
<ROOM BIO-LOCK-WEST
(LOC ROOMS)
(DESC "Bio Lock West")
(LDESC
"This is the first half of a sterilization chamber to prevent contamination
of the delicate biological experiments in the Bio Lab which lies beyond. The
door to the west leads to the main lab, and the bio lock continues eastward.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST"10 ;"NE" 0 ;"NORTH" 0>)
(EAST TO BIO-LOCK-EAST)
(WEST TO MAIN-LAB IF BIO-DOOR-WEST IS OPEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL BIO-DOOR-WEST)>
<ROOM BIO-LOCK-EAST
(LOC ROOMS)
(DESC "Bio Lock East")
(LDESC
"The is the second half of the sterilization chamber leading from the main
lab to the Bio Lab. The door to the east, leading to the Bio Lab, has a
window. The bio lock continues to the west.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST"10 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO BIO-LAB IF BIO-DOOR-EAST IS OPEN)
(WEST TO BIO-LOCK-WEST)
(FLAGS RLANDBIT ONBIT)
(GLOBAL BIO-DOOR-EAST WINDOW)
(ACTION BIO-LOCK-EAST-F)>
<GLOBAL WAITING-COUNTER 0>
<ROUTINE BIO-LOCK-EAST-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-END>
<IN? ,FLOYD ,HERE>
<FSET? ,FLOYD ,RLANDBIT>
<NOT <EQUAL? ,FLOYD ,WINNER>>>
<COND (,FLOYD-WAITING
<COND (<G? ,WAITING-COUNTER 3>
<SETG FLOYD-WAITING <>>
<SETG FLOYD-GAVE-UP T>
<SETG FLOYD-SPOKE T>
<SETG FLOYD-FOLLOW <>>
<MOVE ,FLOYD ,BIO-LOCK-WEST>
<ENABLE <QUEUE I-FLOYD 1>>
<TELL
"\"Okay,\" says Floyd with uncharacteristic annoyance. \"Forget about the
stupid card.\" He goes to the other end of the bio-lock and sulks." CR>)
(<NOT ,FLOYD-FORAYED>
<SETG FLOYD-SPOKE T>
<SETG WAITING-COUNTER <+ ,WAITING-COUNTER 1>>
<TELL
"Floyd looks at you with a dash of impatience and a healthy helping of
nervousness. \"Well?\" he asks. \"Are you going to open the door?\"" CR>)>)
(<AND <NOT ,FLOYD-GAVE-UP>
<NOT ,FLOYD-PEERED>>
<SETG FLOYD-SPOKE T>
<SETG FLOYD-PEERED T>
<ENABLE <QUEUE I-CLEAR-FLOYD-PEER 40>>
<FCLEAR ,MINI-CARD ,INVISIBLE>
<TELL
"Floyd stands on his tiptoes and peers in the window. ">
<COND (,COMPUTER-FLAG
<SETG FLOYD-WAITING T>
<TELL
"\"Looks dangerous in there,\" says Floyd. \"I don't think you should go
inside.\" He peers in again. \"We'll need card there to fix computer. Hmmm...
I know! Floyd will get card. Robots are tough. Nothing can hurt robots. You
open the door, then Floyd will rush in. Then you close door. When Floyd knocks,
open door again. Okay? Go!\" Floyd's voice trembles slightly as he waits for
you to open the door.">)
(T
<TELL
"\"Ooo, look,\" he says. \"There's a miniaturization booth access card!\"">)>
<TELL CR>)>)>>
<GLOBAL FLOYD-PEERED <>>
<ROUTINE I-CLEAR-FLOYD-PEER ()
<SETG FLOYD-PEERED <>>
<RFALSE>>
<ROOM RADIATION-LOCK-WEST
(LOC ROOMS)
(DESC "Radiation Lock West")
(LDESC
"This is the western half of a decontamination chamber to prevent dangerous
radioactive materials from leaving the Radiation Lab which lies to the east.
The door leads west to the main lab.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO RADIATION-LOCK-EAST)
(WEST TO MAIN-LAB IF RAD-DOOR-WEST IS OPEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL RAD-DOOR-WEST)>
<ROOM RADIATION-LOCK-EAST
(LOC ROOMS)
(DESC "Radiation Lock East")
(LDESC
"This is the eastern half of the decontamination chamber. The door to the
east leads to the Radiation Lab, and the chamber continues westward. A sign
on the wall reads \"WORNEENG! Raadeeaashun suuts must bee worn beeyond xis
point.\"")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO RADIATION-LAB IF RAD-DOOR-EAST IS OPEN)
(WEST TO RADIATION-LOCK-WEST)
(FLAGS RLANDBIT ONBIT)
(GLOBAL RAD-DOOR-EAST)>
<OBJECT BIO-DOOR-EAST
(LOC LOCAL-GLOBALS)
(DESC "lab door")
(SYNONYM DOOR)
(ADJECTIVE LAB)
(FLAGS DOORBIT NDESCBIT)
(ACTION BIO-DOOR-EAST-F)>
<OBJECT BIO-DOOR-WEST
(LOC LOCAL-GLOBALS)
(DESC "bio-lock door")
(SYNONYM DOOR)
(ADJECTIVE BIO-LOCK)
(FLAGS DOORBIT NDESCBIT)
(ACTION BIO-DOOR-WEST-F)>
<OBJECT RAD-DOOR-EAST
(LOC LOCAL-GLOBALS)
(DESC "lab door")
(SYNONYM DOOR)
(ADJECTIVE LAB)
(FLAGS DOORBIT NDESCBIT)
(ACTION RAD-DOOR-EAST-F)>
<OBJECT RAD-DOOR-WEST
(LOC LOCAL-GLOBALS)
(DESC "radiation-lock door")
(SYNONYM DOOR)
(ADJECTIVE RADIATION)
(FLAGS DOORBIT NDESCBIT)
(ACTION RAD-DOOR-WEST-F)>
<ROUTINE BIO-DOOR-EAST-F ()
<COND (<VERB? OPEN>
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<ALREADY-OPEN>)
(<FSET? ,BIO-DOOR-WEST ,OPENBIT>
<TELL ,BOTH-DOORS CR>)
(<AND ,FLOYD-WAITING
<FSET? ,FLOYD ,RLANDBIT>
<EQUAL? ,FORAY-COUNTER 0>>
<ENABLE <QUEUE I-FLOYD-FORAY -1>>
<SETG FLOYD-FORAYED T>
<FSET ,BIO-DOOR-EAST ,OPENBIT>
<REMOVE ,FLOYD>
<DISABLE <INT I-FLOYD>>
<TELL
"The door opens and Floyd, pausing only for the briefest moment, plunges into
the Bio Lab. Immediately, he is set upon by hideous, mutated monsters! More
are heading straight toward the open door! Floyd shrieks and yells to you to
close the door." CR>)
(<AND <NOT ,FLOYD-FORAYED>
<EQUAL? <GET <INT I-CHASE-SCENE> ,C-ENABLED?> 0>>
<JIGS-UP
"Opening the door reveals a Bio-Lab full of horrible mutations. You stare at
them, frozen with horror. Growling with hunger and delight, the mutations
march into the bio-lock and devour you.">)
(T
<FSET ,BIO-DOOR-EAST ,OPENBIT>
<ENABLE <QUEUE I-BIO-EAST-CLOSES 30>>
<TELL ,DOOR-OPENS CR>)>)
(<VERB? CLOSE>
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<COND (<EQUAL? ,FORAY-COUNTER 4>
<SETG C-ELAPSED 95>)>
<FCLEAR ,BIO-DOOR-EAST ,OPENBIT>
<TELL "The door closes">
<COND (<EQUAL? <GET <INT I-CHASE-SCENE> ,C-ENABLED?> 1>
<TELL ", but not soon enough!" CR>)
(T
<TELL "." CR>)>)
(T
<IS-CLOSED>)>)>>
<ROUTINE I-BIO-EAST-CLOSES ()
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<FCLEAR ,BIO-DOOR-EAST ,OPENBIT>
<COND (<EQUAL? ,HERE ,BIO-LOCK-EAST ,BIO-LOCK-WEST ,BIO-LAB>
<TELL CR
"The door at the eastern end of the bio-lock closes silently." CR>)>)>>
<ROUTINE BIO-DOOR-WEST-F ()
<COND (<VERB? OPEN>
<COND (<FSET? ,BIO-DOOR-WEST ,OPENBIT>
<ALREADY-OPEN>)
(<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<TELL ,BOTH-DOORS CR>)
(T
<TELL ,DOOR-OPENS CR>
<ENABLE <QUEUE I-BIO-WEST-CLOSES 30>>
<FSET ,BIO-DOOR-WEST ,OPENBIT>)>)
(<VERB? CLOSE>
<COND (<FSET? ,BIO-DOOR-WEST ,OPENBIT>
<FCLEAR ,BIO-DOOR-WEST ,OPENBIT>
<TELL ,DOOR-CLOSES CR>)
(T
<IS-CLOSED>)>)>>
<ROUTINE I-BIO-WEST-CLOSES ()
<COND (<FSET? ,BIO-DOOR-WEST ,OPENBIT>
<FCLEAR ,BIO-DOOR-WEST ,OPENBIT>
<COND (<EQUAL? ,HERE ,BIO-LOCK-WEST ,BIO-LOCK-EAST ,MAIN-LAB>
<TELL CR
"The door at the western end of the bio-lock closes silently." CR>)>)>>
<ROUTINE RAD-DOOR-EAST-F ()
<COND (<VERB? OPEN>
<COND (<FSET? ,RAD-DOOR-EAST ,OPENBIT>
<ALREADY-OPEN>)
(<FSET? ,RAD-DOOR-WEST ,OPENBIT>
<TELL ,BOTH-DOORS CR>)
(T
<FSET ,RAD-DOOR-EAST ,OPENBIT>
<TELL ,DOOR-OPENS CR>)>)
(<VERB? CLOSE>
<COND (<FSET? ,RAD-DOOR-EAST ,OPENBIT>
<FCLEAR ,RAD-DOOR-EAST ,OPENBIT>
<TELL ,DOOR-CLOSES CR>)
(T
<IS-CLOSED>)>)>>
<ROUTINE RAD-DOOR-WEST-F ()
<COND (<VERB? OPEN>
<COND (<FSET? ,RAD-DOOR-WEST ,OPENBIT>
<ALREADY-OPEN>)
(<FSET? ,RAD-DOOR-EAST ,OPENBIT>
<TELL ,BOTH-DOORS CR>)
(T
<TELL ,DOOR-OPENS CR>
<FSET ,RAD-DOOR-WEST ,OPENBIT>)>)
(<VERB? CLOSE>
<COND (<FSET? ,RAD-DOOR-WEST ,OPENBIT>
<FCLEAR ,RAD-DOOR-WEST ,OPENBIT>
<TELL ,DOOR-CLOSES CR>)
(T
<IS-CLOSED>)>)>>
<CONSTANT BOTH-DOORS
"A very bored-sounding recorded voice explains that, in order to prevent
contamination, both lock doors cannot be open simultaneously.">
<CONSTANT DOOR-OPENS "The door opens.">
<CONSTANT DOOR-CLOSES "The door closes.">
<GLOBAL FLOYD-WAITING <>>
<GLOBAL FLOYD-GAVE-UP <>>
<GLOBAL FLOYD-FORAYED <>>
<GLOBAL FORAY-COUNTER 0>
<ROUTINE I-FLOYD-FORAY ()
<SETG FORAY-COUNTER <+ ,FORAY-COUNTER 1>>
<COND (<EQUAL? ,FORAY-COUNTER 2>
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<CRLF>
<MONSTER-DEATH>)
(T
<TELL CR
"From within the lab you hear ferocious growlings, the sounds of a skirmish,
and then a high-pitched metallic scream!" CR>)>)
(<EQUAL? ,FORAY-COUNTER 3>
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<CRLF>
<MONSTER-DEATH>)
(T
<TELL CR
"You hear, slightly muffled by the door, three fast knocks, followed
by the distinctive sound of tearing metal." CR>)>)
(<EQUAL? ,FORAY-COUNTER 4>
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<MOVE ,FLOYD ,HERE>
<TELL CR
"Floyd stumbles out of the Bio Lab, clutching the mini-booth card. The
mutations rush toward the open doorway!" CR>)
(T
<TELL CR
"The three knocks come again, followed by a wild scream. Then, all is silence
from within the Bio Lab, except for an occasional metallic crunch." CR>
<FCLEAR ,FLOYD ,RLANDBIT>
<DISABLE <INT I-FLOYD-FORAY>>)>)
(<EQUAL? ,FORAY-COUNTER 5>
<COND (<FSET? ,BIO-DOOR-EAST ,OPENBIT>
<CRLF>
<MONSTER-DEATH>)
(T
<REMOVE ,FLOYD>
<FCLEAR ,FLOYD ,RLANDBIT>
<DISABLE <INT I-FLOYD>>
<FSET ,FLOYD ,INVISIBLE>
<MOVE ,DEAD-FLOYD ,HERE>
<MOVE ,MINI-CARD ,BIO-LOCK-EAST>
<FSET ,MINI-CARD ,TOUCHBIT>
<SETG SCORE <+ ,SCORE 2>>
<TELL CR
"And not a moment too soon! You hear a pounding from the door as the monsters
within vent their frustration at losing their prey.|
|
Floyd staggers to the ground, dropping the mini card. He is badly torn apart,
with loose wires and broken circuits everywhere. Oil flows from his
lubrication system. He obviously has only moments to live.|
|
You drop to your knees and cradle Floyd's head in your lap. Floyd looks up
at his friend with half-open eyes. \"Floyd did it ... got card. Floyd a
good friend, huh?\" Quietly, you sing Floyd's favorite song, the Ballad
of the Starcrossed Miner:|
|
O, they ruled the solar system|
Near ten thousand years before|
In their single starcrossed scout ships|
Mining ast'roids, spinning lore.|
|
Then one true courageous miner|
Spied a spaceship from the stars|
Boarded he that alien liner|
Out beyond the orb of Mars.|
|
Yes, that ship was filled with danger|
Mighty monsters barred his way|
Yet he solved the alien myst'ries|
Mining quite a lode that day.|
|
O, they ruled the solar system|
Near ten thousand years before|
'Til one brave advent'rous spirit|
Brought that mighty ship to shore.|
|
As you finish the last verse, Floyd smiles with contentment, and then his
eyes close as his head rolls to one side. You sit in silence for a moment,
in memory of a brave friend who gave his life so that you might live." CR>
<FCLEAR ,FLOYD ,RLANDBIT>
<FCLEAR ,MINI-CARD ,NDESCBIT>
<DISABLE <INT I-FLOYD-FORAY>>)>)>>
<ROUTINE MONSTER-DEATH ()
<JIGS-UP
"The biological nightmares reach you. Gripping coils wrap around your limbs
as powerful teeth begin tearing at your flesh. Something bites your leg,
and you feel a powerful poison begin to work its numbing effects...">>
<ROOM BIO-LAB
(LOC ROOMS)
(DESC "Bio Lab")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO LAB-OFFICE IF OFFICE-DOOR IS OPEN)
(WEST TO BIO-LOCK-EAST IF BIO-DOOR-EAST IS OPEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL BIO-DOOR-EAST WINDOW OFFICE-DOOR)
(PSEUDO "CRACK" CRACK-PSEUDO)
(ACTION BIO-LAB-F)>
<ROUTINE BIO-LAB-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a huge laboratory filled with many biological experiments.
The lighting is ">
<COND (,LAB-LIGHTS-ON
<TELL "bright.">)
(T
<TELL
"dim, and a faint blue glow comes from a gaping crack in the northern wall.">)>
<TELL
" Some of the experiments seem to be out of control..." CR>)
(<EQUAL? .RARG ,M-END>
<ENABLE <QUEUE I-CHASE-SCENE -1>>
<COND (,LAB-FLOODED
<TELL
"The air is filled with mist, which is affecting the mutants. They appear
to be stunned and confused, but are slowly recovering." CR>
<COND (<NOT <FSET? ,GAS-MASK ,WORNBIT>>
<JIGS-UP
" Unfortunately, you don't seem to be that hardy.">)>)
(T
<JIGS-UP
"The mutants attack you and rip you to shreds within seconds.">)>)>>
<GLOBAL EXTRA-MOVE-FLAG <>>
<GLOBAL CRYO-MOVE-FLAG <>>
<GLOBAL LAST-CHASE-ROOM <>>
<GLOBAL SECOND-TO-LAST-ROOM <>>
<ROUTINE I-CHASE-SCENE ()
<COND (<AND <IN? ,RAT-ANT ,HERE>
<NOT ,LAB-FLOODED>>
<JIGS-UP
"|
Dozens of hungry eyes fix on you as the mutations surround you
and begin feasting.">)
(<NOT ,LAB-FLOODED>
<COND (<AND <EQUAL? ,HERE ,BIO-LOCK-WEST>
<NOT ,EXTRA-MOVE-FLAG>>
<SETG EXTRA-MOVE-FLAG T>
<TELL CR
"The monsters gallop toward you, smacking their lips." CR>)
(<AND <EQUAL? ,HERE ,CRYO-ELEVATOR>
<NOT ,CRYO-MOVE-FLAG>>
<SETG CRYO-MOVE-FLAG T>
<TELL CR
"The monsters are storming straight toward the elevator door!" CR>)
(<AND <EQUAL? ,HERE ,SECOND-TO-LAST-ROOM>
<VERB? WALK>>
<JIGS-UP
"|
You stupidly run right into the jaws of the pursuing mutants.">)
(T
<COND (<EQUAL? ,HERE ,CRYO-ELEVATOR>
<CRLF>
<MONSTER-DEATH>)>
<MOVE ,RAT-ANT ,HERE>
<MOVE ,TRIFFID ,HERE>
<MOVE ,TROLL ,HERE>
<MOVE ,GRUE ,HERE>
<TELL CR "The mutants ">
<COND (<EQUAL? ,HERE ,BIO-LOCK-WEST>
<TELL "are almost upon you now!" CR>)
(T
<TELL "burst into the room right on your heels! "
<PICK-ONE ,MONSTER-ENTRANCES> CR>)>)>)>
<SETG SECOND-TO-LAST-ROOM ,LAST-CHASE-ROOM>
<SETG LAST-CHASE-ROOM ,HERE>>
<CONSTANT MONSTER-ENTRANCES
<PLTABLE
"The growling humanoid is charging straight at you, waving his
axe-like implement!"
"A pair of slavering fangs removes part of your clothing!"
"Needle-sharp mandibles nip at your arms!"
"The mobile plant whips its poisonous tentacles against
your ankles!">>
<ROOM RADIATION-LAB
(LOC ROOMS)
(DESC "Radiation Lab")
(LDESC
"This room is filled with unfathomable equipment and large canisters bearing
radioactive warnings. Many of the canisters are split open. You can see the
Bio Lab through a large crack in the south wall. Sinister-looking forms move
about within the Bio Lab. Although the lights here are off, the room is
suffused with a pale blue glow.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO RADIATION-LOCK-EAST IF RAD-DOOR-EAST IS OPEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL TABLES RAD-DOOR-EAST)
(PSEUDO "CRACK" CRACK-PSEUDO "EQUIPMENT" EQUIPMENT-PSEUDO)
(ACTION RADIATION-LAB-F)>
<ROUTINE RADIATION-LAB-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,RADIATION-LAB ,TOUCHBIT>>>
<ENABLE <QUEUE I-NUKED-BLUE 50>>)>>
<GLOBAL NUKED-COUNTER 0>
<ROUTINE I-NUKED-BLUE ()
<ENABLE <QUEUE I-NUKED-BLUE -1>>
<SETG NUKED-COUNTER <+ ,NUKED-COUNTER 1>>
<COND (<EQUAL? ,NUKED-COUNTER 1>
<TELL CR "You suddenly feel sick and dizzy." CR>)
(<EQUAL? ,NUKED-COUNTER 2>
<TELL CR
"You feel incredibly nauseous and begin vomiting. Also, all your
hair has fallen out.">
<COND (<IN? ,FLOYD ,HERE>
<TELL
" Floyd points at you and laughs hysterically. \"You look funny with no
hair,\" he gasps.">)>
<CRLF>)
(<EQUAL? ,NUKED-COUNTER 3>
<JIGS-UP
"|
It seems you have picked up a bad case of radiation poisoning.">)>>
<OBJECT BROWN-SPOOL
(LOC RADIATION-LAB)
(DESC "brown spool")
(FDESC
"Sitting on a long table is a small brown spool.")
(SYNONYM SPOOL SPOOLS OBJECT)
(ADJECTIVE BROWN SMALL)
(SIZE 3)
(TEXT
"The spool is labelled \"Instrukshunz foor Reepaareeng Reepaar Roobots.\"")
(FLAGS ACIDBIT TAKEBIT READBIT)>
<OBJECT LAMP
(LOC RADIATION-LAB)
(DESC "portable lamp")
(FDESC
"There is a powerful portable lamp here, currently off.")
(SYNONYM LAMP LANTERN LIGHT)
(ADJECTIVE POWERFUL PORTABLE)
(SIZE 20)
(FLAGS TAKEBIT)
(ACTION LAMP-F)>
<ROUTINE LAMP-F ()
<COND (<VERB? LAMP-ON>
<COND (<FSET? ,LAMP ,ONBIT>
<TELL "It is on." CR>)
(T
<FSET ,LAMP ,ONBIT>
<FSET ,LAMP ,TOUCHBIT>
<TELL "The lamp is now producing a bright light." CR>)>)
(<VERB? LAMP-OFF>
<COND (<FSET? ,LAMP ,ONBIT>
<FCLEAR ,LAMP ,ONBIT>
<TELL "The lamp goes dark." CR>)
(T
<TELL "It isn't on." CR>)>)>>
<ROOM LAB-OFFICE
(LOC ROOMS)
(DESC "Lab Office")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(WEST TO BIO-LAB IF OFFICE-DOOR IS OPEN)
(SOUTH TO AUXILIARY-BOOTH)
(IN TO AUXILIARY-BOOTH)
(GLOBAL OFFICE-DOOR)
(FLAGS RLANDBIT ONBIT)
(PSEUDO "FILES" CABINETS-PSEUDO "BOOTH" NEAR-BOOTH-PSEUDO)
(ACTION LAB-OFFICE-F)>
<ROUTINE LAB-OFFICE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the office for storing files on Bio Lab experiments. A large and
messy desk is surrounded by locked files. A small booth lies to the south. ">
<COND (<FSET? ,OFFICE-DOOR ,OPENBIT>
<TELL "An open">)
(T
<TELL "A closed">)>
<TELL " door to the west is labelled \"Biioo Lab.\" You
realize with shock and horror that the only way out is through the
mutant-infested Bio Lab.|
|
On the wall are three buttons: a white button labelled \"Lab Liits On\",
a black button labelled \"Lab Liits Of\", and a red button labelled
\"Eemurjensee Sistum.\"" CR>)
(<AND <EQUAL? .RARG ,M-END>
<FSET? ,OFFICE-DOOR ,OPENBIT>>
<COND (,LAB-FLOODED
<TELL
"Through the open doorway you can see the Bio Lab. It seems to be filled
with a light mist. Horrifying biological nightmares stagger about making
choking noises." CR>)
(T
<JIGS-UP
"Mutated monsters from the Bio Lab pour into the office. You are
devoured.">)>)>>
<OBJECT OFFICE-DOOR
(LOC LOCAL-GLOBALS)
(DESC "office door")
(SYNONYM DOOR)
(ADJECTIVE OFFICE)
(FLAGS VOWELBIT DOORBIT NDESCBIT)>
<OBJECT LAB-DESK
(LOC LAB-OFFICE)
(DESC "desk")
(SYNONYM DESK)
(ADJECTIVE LARGE MESSY)
(FLAGS CONTBIT SEARCHBIT NDESCBIT)
(CAPACITY 10)
(ACTION LAB-DESK-F)>
<ROUTINE LAB-DESK-F ()
<COND (<AND <VERB? EXAMINE SEARCH>
<NOT <FSET? ,LAB-DESK ,TOUCHBIT>>>
<MOVE ,MEMO ,ADVENTURER>
<FSET ,LAB-DESK ,TOUCHBIT>
<TELL
"After inspecting the various papers on the desk, you find only
one item of interest, a memo of some sort. The desk itself is ">
<COND (<FSET? ,LAB-DESK ,OPENBIT>
<TELL "open">)
(T
<TELL
"closed, but it doesn't look locked">)>
<TELL "." CR>)
(<AND <VERB? OPEN>
<IN? ,GAS-MASK ,LAB-DESK>>
<THIS-IS-IT ,GAS-MASK>
<RFALSE>)>>
<OBJECT GAS-MASK
(LOC LAB-DESK)
(DESC "gas mask")
(SYNONYM MASK)
(ADJECTIVE GAS)
(FLAGS ACIDBIT TAKEBIT WEARBIT)
(SIZE 10)>
<OBJECT MEMO
(DESC "memo")
(SYNONYM MEMO)
(FLAGS READBIT ACIDBIT TAKEBIT)
(TEXT
"\"Memoo tuu awl lab pursunel: Duu tuu xe daanjuris naatshur uv xe biioo
eksperiments, an eemurjensee sistum haz bin instawld. Xis sistum wud flud
xe entiir Biioo Lab wic aa dedlee fungasiid. Propur preecawshunz shud bee
taakin if xis sistum iz evur yuuzd.\"")>
<OBJECT LIGHT-BUTTON
(LOC LAB-OFFICE)
(DESC "white button")
(SYNONYM BUTTON)
(ADJECTIVE WHITE LIGHT)
(FLAGS NDESCBIT)
(ACTION LIGHT-BUTTON-F)>
<OBJECT DARK-BUTTON
(LOC LAB-OFFICE)
(DESC "black button")
(SYNONYM BUTTON)
(ADJECTIVE BLACK DARK DARKNESS)
(FLAGS NDESCBIT)
(ACTION DARK-BUTTON-F)>
<OBJECT FUNGICIDE-BUTTON
(LOC LAB-OFFICE)
(DESC "red button")
(SYNONYM BUTTON)
(ADJECTIVE RED FUNGICIDE EMERGENCY)
(FLAGS NDESCBIT)
(ACTION FUNGICIDE-BUTTON-F)>
<GLOBAL LAB-LIGHTS-ON <>>
<GLOBAL LAB-FLOODED <>>
<ROUTINE LIGHT-BUTTON-F ()
<COND (<VERB? PUSH>
<COND (,LAB-LIGHTS-ON
<TELL "Nothing happens." CR>)
(T
<SETG LAB-LIGHTS-ON T>
<TELL ,FAINT-SOUND CR>)>)>>
<ROUTINE DARK-BUTTON-F ()
<COND (<VERB? PUSH>
<COND (,LAB-LIGHTS-ON
<SETG LAB-LIGHTS-ON <>>
<TELL ,FAINT-SOUND CR>)
(T
<TELL "Nothing happens." CR>)>)>>
<CONSTANT FAINT-SOUND "You hear the faint sound of a relay clicking.">
<ROUTINE FUNGICIDE-BUTTON-F ()
<COND (<VERB? PUSH>
<SETG LAB-FLOODED T>
<ENABLE <QUEUE I-UNFLOOD 50>>
<TELL
"You hear a hissing from beyond the door to the west." CR>)>>
<ROUTINE I-UNFLOOD ()
<SETG LAB-FLOODED <>>
<COND (<EQUAL? ,HERE ,BIO-LAB>
<TELL CR
"The last traces of mist in the air vanish. The mutants, recovering
quickly, notice you and begin salivating." CR>)
(<AND <EQUAL? ,HERE ,LAB-OFFICE>
<FSET? ,OFFICE-DOOR ,OPENBIT>>
<TELL CR
"The mist in the Bio Lab clears. The mutants recover and rush
toward the door!" CR>)>>
<ROOM AUXILIARY-BOOTH
(LOC ROOMS)
(DESC "Auxiliary Booth")
(LDESC
"This is another small booth. Unlike the Miniaturization Booth, this room
has no slot or keyboard, so presumably it is intended only as a receiving
station. The exit is on the northern side.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO LAB-OFFICE)
(OUT TO LAB-OFFICE)
(FLAGS RLANDBIT ONBIT)
(VALUE 4)
(PSEUDO "BOOTH" IN-BOOTH-PSEUDO)>
^L
;"INSIDE THE COMPUTER"
<GLOBAL MINI-ACTIVATED <>>
<ROUTINE I-TURNOFF-MINI ()
<SETG MINI-ACTIVATED <>>
<COND (<EQUAL? ,HERE ,MINI-BOOTH>
<TELL CR
"A recorded voice says \"Miniaturization booth deactivated.\"" CR>)>>
<ROOM STATION-384
(LOC ROOMS)
(DESC "Station 384")
(LDESC
"You are standing on a square plate of heavy metal. Above your head, parallel
to the plate beneath you, is an identical metal plate. To the east is a wide,
metallic strip.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(EAST TO STRIP-NEAR-STATION)
(FLAGS RLANDBIT ONBIT)
(GLOBAL STRIP)
(PSEUDO "PLATE" PLATE-PSEUDO "PLATES" PLATE-PSEUDO)
(ACTION STATION-384-F)>
<ROUTINE STATION-384-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<COND (,BEEN-HERE
<SETG BEEN-HERE <>>
<COND (,COMPUTER-FIXED
<TELL
"A voice seems to whisper in your ear \"Main Miniaturization and Teleportation
Booth has malfunctioned...switching to Auxiliary Booth...\" ">
<ENABLE <QUEUE I-ANNOUNCEMENT 130>>
<TELL ,FAMILIAR-WRENCHING CR>
<GOTO ,AUXILIARY-BOOTH>
<RFATAL>)
(T
<TELL ,FAMILIAR-WRENCHING CR>
<GOTO ,MINI-BOOTH <>>)>)>)>>
<ROUTINE I-ANNOUNCEMENT ()
<TELL CR "A recorded announcement blares from the public address
system. \"Revival procedure beginning. Cryo-chamber access from Project
Control Office now open.\"" CR>>
<GLOBAL BEEN-HERE <>>
<GLOBAL COMPUTER-FIXED <>>
<CONSTANT FAMILIAR-WRENCHING
"You feel the familiar wrenching of your innards, and find yourself in a vast
room whose distant walls are rushing straight toward you...|">
<ROOM STRIP-NEAR-STATION
(LOC ROOMS)
(DESC "Strip Near Station")
(LDESC
"You are standing on a silicon filament, which looks to you like a wide
metal highway. South of here, the filament makes a right angle and heads
straight down, like a cliff overlooking a black void. The filament can be
followed north, however. Station 384 lies westward.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(SOUTH SORRY "The plunge would probably be fatal.")
(EAST SORRY "The plunge would probably be fatal.")
(NORTH TO MIDDLE-OF-STRIP)
(WEST TO STATION-384)
(FLAGS RLANDBIT ONBIT)
(VALUE 4)
(PSEUDO "VOID" VOID-PSEUDO)
(GLOBAL STRIP)>
<ROOM MIDDLE-OF-STRIP
(LOC ROOMS)
(DESC "Middle of Strip")
(LDESC
"You are standing on a section of the strip with a bottomless void stretching
out on both sides. The strip continues to the north and south.")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH TO STRIP-NEAR-RELAY)
(SOUTH TO STRIP-NEAR-STATION IF NO-MICROBE ELSE "Not a chance -- unless,
of course, you don't mind walking into the gullet of a hungry microbe.")
(EAST SORRY "Do you have a penchant for bottomless voids?")
(WEST SORRY "Do you have a penchant for bottomless voids?")
(FLAGS RLANDBIT ONBIT)
(ACTION MIDDLE-OF-STRIP-F)
(PSEUDO "VOID" VOID-PSEUDO)
(GLOBAL STRIP)>
<GLOBAL NO-MICROBE T>
<GLOBAL MICROBE-DISPATCHED <>>
<ROUTINE MIDDLE-OF-STRIP-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<COND (<AND ,COMPUTER-FIXED
,NO-MICROBE
<NOT ,MICROBE-DISPATCHED>>
<MOVE ,MICROBE ,HERE>
<ENABLE <QUEUE I-MICROBE -1>>
<SETG NO-MICROBE <>>
<TELL
"Suddenly, with a loud plop, a giant elephant-sized monster lands on the strip
just in front of you. It is amorphously shaped, its skin a slimy translucent
red membrane. While most of your brain screams with panic about the disgusting
monster that now blocks your exit, some small section in the back of your mind
calmly realizes that this is merely some tiny microbe which has somehow
violated the sterile environment of the computer interior.|
|
As you stand frozen with fear, the microbe slithers toward you,
extending slimy pseudopods thick with waving cilia. It looks pretty
hungry, and seems intent on having you for lunch." CR CR>)>)>>
<ROOM STRIP-NEAR-RELAY
(LOC ROOMS)
(DESC "Strip Near Relay")
(C-MOVE <TABLE
;"OUT" 0 ;"IN" 0 ;"DOWN" 0 ;"UP" 0
;"NW" 0 ;"WEST" 0 ;"SW" 0 ;"SOUTH" 0
;"SE" 0 ;"EAST" 0 ;"NE" 0 ;"NORTH" 0>)
(NORTH SORRY "There is a huge featureless wall there, remember?")
(SOUTH TO MIDDLE-OF-STRIP IF NO-MICROBE ELSE "Not a chance -- unless,
of course, you don't mind walking into the gullet of a hungry microbe.")
(EAST PER RELAY-EXIT-F)
(WEST SORRY "Do you have a penchant for bottomless voids?")
(FLAGS RLANDBIT ONBIT)
(GLOBAL STRIP)
(PSEUDO "VOID" VOID-PSEUDO)
(ACTION STRIP-NEAR-RELAY-F)>
<ROUTINE STRIP-NEAR-RELAY-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"North of here, the filament ends at a huge featureless wall, presumably the
side of some microcomponent. ">
<COND (<IN? ,RELAY ,HERE>
<TELL
"To the east is a vacuu-sealed microrelay, sealed in transparent red
plastic. You could probably see into the microrelay." CR>)
(T
<TELL
"To the east are the shattered remains of some large object." CR>)>)
(<AND <EQUAL? .RARG ,M-ENTER>
<NOT ,NO-MICROBE>>
<MOVE ,MICROBE ,HERE>
<SETG MICROBE-COUNTER 0>
<TELL
"The microbe, writhing angrily, follows you northward." CR>)>>
<ROUTINE RELAY-EXIT-F ()
<COND (<IN? ,RELAY ,HERE>
<TELL
"The relay is sealed. Although you cannot enter it, you could look into
it." CR>
<RFALSE>)
(T
<TELL
"You would slice yourself to ribbons on the shattered relay." CR>
<RFALSE>)>>
<OBJECT RELAY
(LOC STRIP-NEAR-RELAY)
(DESC "microrelay")
(SYNONYM RELAY MICRORELAY)
(ADJECTIVE MICRO)
(FLAGS NDESCBIT TRANSBIT)
(ACTION RELAY-F)>
<ROUTINE RELAY-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL
"This is a vacuum-sealed microrelay, encased in red translucent plastic.">
<COND (<NOT ,COMPUTER-FIXED>
<TELL
" Within, you can see that some sort of speck or impurity has wedged itself
into the contact point of the relay, preventing it from closing. The speck,
presumably of microscopic size, resembles a blue boulder to you in your
current size.">)>
<TELL CR>)>>
<OBJECT SPECK
(LOC RELAY)
(DESC "speck")
(SYNONYM SPECK BOULDER IMPURITY)
(ADJECTIVE BLUE)
(FLAGS NDESCBIT)>
^L
;"Laserium"
<OBJECT LASER
(LOC TOOL-ROOM)
(DESC "laser")
(FDESC
"A small device, labelled \"Akmee Portabul Laazur\", is resting on one of
the lower shelves.")
(SYNONYM DEVICE LASER UNIT DEPRESSION)
(ADJECTIVE PORTABLE ACME)
(SIZE 25)
(CAPACITY 5)
(FLAGS MUNGBIT TAKEBIT OPENBIT TRANSBIT CONTBIT)
(ACTION LASER-F)>
<OBJECT LASER-DIAL
(LOC LASER)
(DESC "laser setting dial")
(SYNONYM DIAL)
(ADJECTIVE LASER SETTING)
(FLAGS MUNGBIT NDESCBIT)
(ACTION LASER-DIAL-F)>
<ROUTINE LASER-DIAL-F ()
<COND (<AND <VERB? SET>
<EQUAL? ,PRSI ,INTNUM>>
<COND (<FSET? ,LASER-DIAL ,MUNGEDBIT>
<TELL
"The laser dial seems to have become damaged and will not turn." CR>)
(<EQUAL? ,P-NUMBER ,LASER-SETTING>
<TELL "That's where it's set now!" CR>)
(<OR <G? ,P-NUMBER 6>
<EQUAL? ,P-NUMBER 0>>
<TELL "The dial can only be set from 1 to 6." CR>)
(T
<SETG LASER-SETTING ,P-NUMBER>
<TELL "The dial is now set to " N ,P-NUMBER "." CR>)>)
(<VERB? EXAMINE>
<TELL "The dial is currently set to " N ,LASER-SETTING "." CR>)>>
<OBJECT OLD-BATTERY
(LOC LASER)
(DESC "old battery")
(LDESC "There is a worn-out laser battery here.")
(SYNONYM BATTERY)
(ADJECTIVE LASER WORN-OUT OLD)
(SIZE 5)
(FLAGS VOWELBIT ACIDBIT TAKEBIT)>
<OBJECT NEW-BATTERY
(LOC LAB-STORAGE)
(DESC "new battery")
(FDESC
"The odds and ends on the shelves include a small round object, which closer
inspection reveals to be a fresh laser battery.")
(SYNONYM OBJECT BATTERY)
(ADJECTIVE LASER SMALL ROUND FRESH NEW)
(SIZE 5)
(FLAGS ACIDBIT TAKEBIT)>
<GLOBAL LASER-SETTING 5> ;"dial on laser -- 1 is red, 2 is orange, etc."
<GLOBAL SPECK-HIT <>> ;"set to T first time you hit speck, takes two hits"
<GLOBAL OLD-SHOTS 0> ;"number of shots left in the old-battery"
<GLOBAL NEW-SHOTS 0> ;"number of shots left in the new-battery"
<ROUTINE ZAP-COUNT () ;"checks to see if if have any shots left"
<COND (<IN? ,OLD-BATTERY ,LASER>
<COND (<G? ,OLD-SHOTS 0>
<SETG OLD-SHOTS <- ,OLD-SHOTS 1>>
<RFALSE>)>
<RTRUE>)
(<IN? ,NEW-BATTERY ,LASER>
<COND (<G? ,NEW-SHOTS 0>
<SETG NEW-SHOTS <- ,NEW-SHOTS 1>>
<RFALSE>)>
<RTRUE>)
(T <RTRUE>)>>
<ROUTINE LASER-F ("OPTIONAL" (RARG <>))
<COND (<AND <VERB? SET>
<EQUAL? ,PRSI ,INTNUM>>
<PERFORM ,V?SET ,LASER-DIAL ,PRSI>
<RTRUE>)
(<VERB? EXAMINE>
<TELL
"The laser, though portable, is still fairly heavy. It has a long, slender
barrel and a dial with six settings, labelled \"1\" through \"6.\" This dial
is currently on setting " N ,LASER-SETTING ". There is a depression on the
top of the laser which ">
<COND (<IN? ,OLD-BATTERY ,LASER>
<TELL "contains an " D ,OLD-BATTERY>)
(<IN? ,NEW-BATTERY ,LASER>
<TELL "contains a " D ,NEW-BATTERY>)
(T
<TELL "is empty">)>
<TELL "." CR>)
(<VERB? OPEN CLOSE>
<TELL
"There doesn't seem to be any way to do that to this laser." CR>)
(<VERB? PUT>
<COND (<EQUAL? ,PRSO ,OLD-BATTERY>
<COND (<IN? ,NEW-BATTERY ,LASER>
<ALREADY-BATTERY>)
(T
<MOVE ,OLD-BATTERY ,LASER>
<BATTERY-NOW>)>)
(<EQUAL? ,PRSO ,NEW-BATTERY>
<COND (<IN? ,OLD-BATTERY ,LASER>
<ALREADY-BATTERY>)
(T
<MOVE ,NEW-BATTERY ,LASER>
<BATTERY-NOW>)>)
(<NOT <EQUAL? ,LASER ,PRSO>>
<TELL
"The " D ,PRSO " doesn't fit the depression." CR>)>)
(<VERB? ZAP>
<COND (<NOT <IN? ,LASER ,ADVENTURER>>
<NOT-HOLDING>
<RTRUE>)>
<COND (<NOT ,LASER-SCORE-FLAG>
<SETG LASER-SCORE-FLAG T>
<SETG SCORE <+ ,SCORE 2>>)>
<COND (<OR <EQUAL? ,PRSI ,LASER>
<EQUAL? ,PRSI ,LASER-DIAL>
<AND <EQUAL? ,PRSI ,OLD-BATTERY>
<IN? ,OLD-BATTERY ,LASER>>
<AND <EQUAL? ,PRSI ,NEW-BATTERY>
<IN? ,NEW-BATTERY ,LASER>>>
<TELL
"Sorry, the laser doesn't have a rubber barrel." CR>)
(<ZAP-COUNT>
<TELL "Click." CR>)
(<FSET? ,LASER ,MUNGEDBIT>
<TELL
"The laser sparks a few times, whines, and then stops." CR>)
(T
<ENABLE <QUEUE I-WARMTH -1>>
<SETG LASER-JUST-SHOT T>
<COND (<EQUAL? ,PRSI ,SPECK>
<SHOOT-SPECK>
<RTRUE>)
(<EQUAL? ,PRSI ,MICROBE>
<SHOOT-MICROBE>
<RTRUE>)
(<OR <FSET? ,PRSI ,WORNBIT>
<EQUAL? ,PRSI ,ME ,HANDS ,ADVENTURER>>
<TELL
"Ouch! You managed to burn yourself nicely." CR>)
(T
<TELL "The laser emits a narrow ">
<BEAM-COLOR>
<TELL " beam of light">
<COND (,PRSI
<COND (<OR <EQUAL? ,PRSI
,TOWEL
,BROCHURE
,COMBINATION-PAPER>
<EQUAL? ,PRSI
,PRINT-OUT
,LAB-UNIFORM
,PATROL-UNIFORM>
<EQUAL? ,PRSI
,ID-CARD
,KITCHEN-CARD
,MINI-CARD>
<EQUAL? ,PRSI
,TELEPORTATION-CARD
,SHUTTLE-CARD
,UPPER-ELEVATOR-CARD>
<EQUAL? ,PRSI
,LOWER-ELEVATOR-CARD
,DIARY>>
<REMOVE ,PRSI>
<COND (<EQUAL? ,PRSI
,SPOUT-PLACED>
<SETG SPOUT-PLACED
,GROUND>)>
<TELL
" which strikes the " D ,PRSI ". The " D ,PRSI " bursts into flame,
blinding you momentarily, and is quickly consumed." CR>)
(<AND <EQUAL? ,PRSI ,FLOYD>
<FSET? ,FLOYD ,RLANDBIT>>
<TELL
" which strikes Floyd. \"Yow!\" yells Floyd. He jumps to the other end
of the room and eyes you warily." CR>)
(<AND <EQUAL? ,PRSI ,PSEUDO-OBJECT>
<EQUAL? ,HERE ,PROJCON-OFFICE>>
<TELL
" which strikes the " D ,PRSI ". However, this doesn't seem to affect it." CR>)
(T
<TELL
" which strikes the " D ,PRSI ". The " D ,PRSI " grows a bit warm, but
nothing else happens." CR>)>)
(T
<TELL "." CR>)>)>)>)
(<VERB? DROP>
<DISABLE <INT I-WARMTH>>
<COND (<AND <IN? ,MICROBE ,HERE>
<G? ,WARMTH-FLAG 7>>
<REMOVE ,LASER>
<TELL
"The microbe rushes to envelop the laser. You hear a faint burp as the
monster begins to look around for other morsels..." CR>)
(T
<RFALSE>)>)>>
<ROUTINE ALREADY-BATTERY ()
<TELL "There's already a battery there." CR>>
<ROUTINE BATTERY-NOW ()
<TELL "The battery is now resting in the depression, attached
to the laser." CR>>
;<ROUTINE LASER-CONTENTS ()
<TELL "The laser ">
<COND (<IN? ,OLD-BATTERY ,LASER>
<TELL "contains an " D ,OLD-BATTERY>)
(<IN? ,NEW-BATTERY ,LASER>
<TELL "contains a " D ,NEW-BATTERY>)
(T
<TELL "is empty">)>
<TELL "." CR>>
<GLOBAL WARMTH-FLAG 0>
<GLOBAL LASER-JUST-SHOT <>>
<ROUTINE I-WARMTH ()
<COND (,LASER-JUST-SHOT
<SETG LASER-JUST-SHOT <>>
<SETG WARMTH-FLAG <+ ,WARMTH-FLAG 1>>
<COND (<EQUAL? ,WARMTH-FLAG 3>
<LASER-FEELS "slightly warm now">)
(<EQUAL? ,WARMTH-FLAG 6>
<LASER-FEELS "somewhat warm now">)
(<EQUAL? ,WARMTH-FLAG 9>
<LASER-FEELS "very warm now">)
(<EQUAL? ,WARMTH-FLAG 12>
<LASER-FEELS "quite hot">)>)
(T
<COND (<EQUAL? ,WARMTH-FLAG 0>
<DISABLE <INT I-WARMTH>>)
(T
<SETG WARMTH-FLAG <- ,WARMTH-FLAG 1>>
<COND (<EQUAL? ,WARMTH-FLAG 12>
<LASER-COOLS "quite hot">)
(<EQUAL? ,WARMTH-FLAG 9>
<LASER-COOLS "very warm">)
(<EQUAL? ,WARMTH-FLAG 6>
<LASER-COOLS "somewhat warm">)
(<EQUAL? ,WARMTH-FLAG 3>
<LASER-COOLS "slightly warm">)>)>)>>
<ROUTINE LASER-FEELS (STRING)
<TELL CR
"The laser feels " .STRING
", but that doesn't seem to affect its performance at all." CR>>
<ROUTINE LASER-COOLS (STRING)
<TELL CR
"The laser has cooled, but it still feels " .STRING "." CR>>
<GLOBAL LASER-SCORE-FLAG <>>
<GLOBAL MARKSMANSHIP-COUNTER 0>
<ROUTINE BEAM-COLOR ()
<COND (<EQUAL? ,LASER-SETTING 1>
<TELL "red">)
(<EQUAL? ,LASER-SETTING 2>
<TELL "orange">)
(<EQUAL? ,LASER-SETTING 3>
<TELL "yellow">)
(<EQUAL? ,LASER-SETTING 4>
<TELL "green">)
(<EQUAL? ,LASER-SETTING 5>
<TELL "blue">)
(<EQUAL? ,LASER-SETTING 6>
<TELL "violet">)>>
<ROUTINE SHOOT-SPECK ()
<COND (<EQUAL? ,LASER-SETTING 1>
<COND (<PROB ,MARKSMANSHIP-COUNTER>
<COND (,SPECK-HIT
<SETG COMPUTER-FIXED T>
<FSET ,CRYO-ELEVATOR-DOOR ,OPENBIT>
<FCLEAR ,PROJCON-OFFICE ,TOUCHBIT>
<FCLEAR ,CRYO-ELEVATOR-DOOR ,INVISIBLE>
<ENABLE <QUEUE I-FRY 200>>
<SETG SCORE <+ ,SCORE 8>>
<REMOVE ,SPECK>
<TELL
"The beam hits the speck again! This time, it vaporizes into a fine cloud
of ash. The relay slowly begins to close, and a voice whispers in your ear
\"Sector 384 will activate in 200 millichrons. Proceed to exit station.\"" CR>)
(T
<SETG SPECK-HIT T>
<TELL
"The speck is hit by the beam! It sizzles a little,
but isn't destroyed yet." CR>)>)
(T
<SETG MARKSMANSHIP-COUNTER <+ ,MARKSMANSHIP-COUNTER 12>>
<TELL <PICK-ONE ,BEAM-MISSES> CR>)>)
(T
<REMOVE ,RELAY>
<TELL "A thin ">
<BEAM-COLOR>
<TELL
" beam shoots from the laser and slices through the red plastic covering of
the relay like a hot knife through butter. Air rushes into the relay, which
collapses into a heap of plastic shards." CR>)>>
<CONSTANT BEAM-MISSES
<PLTABLE
"The beam just misses the speck!"
"A near miss!"
"A good shot, but just a little wide of the target.">>
<ROUTINE I-FRY ()
<COND (<EQUAL? ,HERE ,MIDDLE-OF-STRIP
,STRIP-NEAR-STATION
,STRIP-NEAR-RELAY>
<CRLF>
<JIGS-UP
"|
With a furious storm of electrical mayhem, Sector 384 comes to life. A
few microvolts course through the silicon strip on which you stand.
Unfortunately, at your current size, this is enough to barbecue you.">)>>
^L
;"The microbe battle"
<OBJECT MICROBE
(DESC "microbe")
(LDESC
"A hungry microbe blocks your way, its cilia waving and its pseudopods
towering over you.")
(SYNONYM MICROBE BUG MONSTER)
(ADJECTIVE HUNGRY)
(FLAGS ACTORBIT)
(ACTION MICROBE-F)>
<ROUTINE MICROBE-F ()
<COND (<OR <VERB? HELLO TALK>
<EQUAL? ,MICROBE ,WINNER>>
<TELL
"You don't seem to have bridged the vast communication gulf
between yourself and the microbe." CR>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<RFATAL>)
(<AND <VERB? THROW GIVE>
<EQUAL? ,PRSI ,MICROBE>>
<COND (<AND <EQUAL? ,PRSO ,LASER>
<G? ,WARMTH-FLAG 7>>
<REMOVE ,LASER>
<DISABLE <INT I-WARMTH>>
<COND (<G? ,WARMTH-FLAG 10>
<DISABLE <INT I-MICROBE>>
<TELL
"The microbe gobbles up the laser and turns toward you. A moment later,
it begins writhing in pain. Apparently, eating the hot laser was a bit
too much for it. With a bellow of agony, it rolls off the edge of
the strip. (Whew!)" CR>
<REMOVE ,LASER>
<REMOVE ,MICROBE>
<SETG NO-MICROBE T>
<SETG MICROBE-DISPATCHED T>)
(T
<TELL
"The microbe greedily devours the laser, and turns toward you." CR>)>)
(T
<TELL
"The microbe ignores the " D ,PRSO ", but does attempt to digest
your arm." CR>)>)>>
<ROUTINE I-MICROBE ()
<COND (<EQUAL? ,MICROBE-HIT T>
<TELL CR <PICK-ONE ,WINNER-ATTACKED>>
<COND (<AND <G? ,WARMTH-FLAG 13>
<IN? ,LASER ,ADVENTURER>>
<JIGS-UP
" The microbe, whipped into a rabid frenzy by the waves of heat from the
pulsing laser, literally lunges at it. You jump back and, losing your
balance, fall over the edge of the strip. The microbe, writhing madly, hurls
itself after its prey. You and the microbe both plunge into the void below.">)
(<AND <G? ,WARMTH-FLAG 7>
<IN? ,LASER ,ADVENTURER>>
<TELL
" Another pseudopod, perhaps attracted by the warmth of the laser, tries to
envelop the weapon. You snatch it away from the monster's grasp.">)>
<CRLF>)
(T
<COND (<EQUAL? ,MICROBE-COUNTER 2>
<JIGS-UP
"|
The microbe wraps several pseudopods around you and shoves you into its
mucus-covered gullet. Digestive juices begin their work. The experience
is not pleasant.">)
(T
<SETG MICROBE-COUNTER <+ ,MICROBE-COUNTER 1>>
<TELL CR <PICK-ONE ,MONSTER-CLOSES> CR>)>)>
<SETG MICROBE-HIT <>>>
<CONSTANT WINNER-ATTACKED
<PLTABLE
"A pseudopod extends toward you. You jump back just in time
to avoid being engulfed."
"A slimy pseudopod brushes against your shoulder. You twist
away in the nick of time."
"A pseudopod shoots out toward your head! Ducking quickly,
you save your life."
"Two protoplasm-filled blobs sneak toward you from the left.
You jump to the side and almost fall off the strip into the void below!">>
<CONSTANT MONSTER-CLOSES
<PLTABLE
"The microbe slithers closer. The cilia around its gullet glisten
with mucus, giving the impression that the microbe is salivating."
"The microbe flows toward you. It towers above you, its cilia
waving madly in your face."
"The monster wriggles nearer. It is now so close that you can make
out details in the protoplasm beneath its translucent skin.">>
<GLOBAL MICROBE-HIT <>>
<GLOBAL MICROBE-COUNTER 0>
<ROUTINE SHOOT-MICROBE ()
<TELL "The laser beam strikes the microbe">
<COND (<EQUAL? ,LASER-SETTING 1>
<TELL ", but passes harmlessly through its red skin." CR>)
(T
<SETG MICROBE-HIT T>
<TELL ". ">
<TELL <PICK-ONE ,MICROBE-STRIKES> CR>)>>
<CONSTANT MICROBE-STRIKES
<PLTABLE
"The microbe's outer membrane sizzles a bit, and some protoplasm
oozes out. The microbe recoils momentarily, but quickly recovers."
"The beam slices through the microbe's skin! A tremendous shudder
passes through the microbe, but the wound quickly seals itself."
"The monster rears back for a moment, but almost as soon as the
beam goes off, it advances again.">>
<OBJECT STRIP
(LOC LOCAL-GLOBALS)
(DESC "silicon strip")
(SYNONYM STRIP SIDE EDGE)
(ADJECTIVE SILICON)
(FLAGS NDESCBIT)
(ACTION STRIP-F)>
<ROUTINE STRIP-F ()
<COND (<VERB? THROW-OFF>
<COND (<AND <EQUAL? ,PRSO ,LASER>
<G? ,WARMTH-FLAG 7>>
<DISABLE <INT I-WARMTH>>
<DISABLE <INT I-MICROBE>>
<TELL
"As the laser flies over the edge of the strip, the hungry microbe lunges after
it. Both the laser and the microbe plummet into the void. (Whew!)" CR>
<REMOVE ,LASER>
<REMOVE ,MICROBE>
<SETG NO-MICROBE T>
<SETG MICROBE-DISPATCHED T>)
(T
<COND (<EQUAL? ,PRSO ,LASER>
<DISABLE <INT I-WARMTH>>)>
<REMOVE ,PRSO>
<TELL
"The " D ,PRSO " flies over the edge of the strip and disappears into the
void." CR>)>)>>
^L
;"Endgame -- The mutant chase scene"
<OBJECT RAT-ANT
(LOC BIO-LAB)
(DESC "rat-like, ant-like man-sized monster")
(LDESC "A ferocious feral creature, with a hairy shelled body and
a whip-like tail snaps its enormous mandibles at you.")
(SYNONYM MONSTER MUTANT RAT-ANT)
(ADJECTIVE RAT-LIKE ANT-LIKE MAN-SIZED)
(FLAGS ACTORBIT)>
<OBJECT TROLL
(LOC BIO-LAB)
(DESC "hairy growling biped")
(LDESC "Rushing toward you is an ugly, deformed humanoid, bellowing
in a guttural tongue. It brandishes a piece of lab equipment shaped
somewhat like a battle axe.")
(SYNONYM TROLL BIPED MUTANT MONSTER)
(ADJECTIVE HAIRY GROWLING UGLY DEFORMED)
(FLAGS ACTORBIT)>
<OBJECT GRUE
(LOC BIO-LAB)
(DESC "lurking fanged creature")
(LDESC "Lurking nearby is a vicious-looking creature with slavering
fangs. Squinting in the light, it eyes you hungrily.")
(SYNONYM GRUE CREATURE MUTANT MONSTER)
(ADJECTIVE LURKING SINISTER FANGED VICIOUS HUNGRY SILENT)
(FLAGS ACTORBIT)
(ACTION GRUE-F)>
<ROUTINE GRUE-F ()
<COND (<AND <VERB? EXAMINE>
<NOT <IN? ,GRUE ,HERE>>>
<TELL
"Grues are vicious, carnivorous beasts first introduced to Earth by a
visiting alien spaceship during the late 22nd century. Grues spread throughout
the galaxy alongside man. Although now extinct on all civilized planets,
they still exist in some backwater corners of the galaxy. Their favorite diet
is Ensigns Seventh Class, but their insatiable appetite is tempered by their
fear of light." CR>)>>
<OBJECT TRIFFID
(LOC BIO-LAB)
(DESC "mobile man-eating plant")
(LDESC "A giant plant, teeming with poisonous tentacles, is shuffling
toward you on three leg-like stalks.")
(SYNONYM TRIFFID PLANT MUTANT MONSTER)
(ADJECTIVE MOBILE MAN-EATING GIANT)
(FLAGS ACTORBIT)>