2019-04-14 23:09:16 +03:00
|
|
|
|
"STATION for
|
|
|
|
|
STATIONFALL
|
|
|
|
|
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
|
|
|
|
|
|
|
|
|
|
<ROOM DOCKING-BAY-2
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Docking Bay #2")
|
|
|
|
|
(IN TO SPACETRUCK IF SPACETRUCK-HATCH IS OPEN)
|
|
|
|
|
(EAST TO LEVEL-FIVE IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(GLOBAL AUTO-DOOR SPACETRUCK-OBJECT SPACETRUCK-HATCH WINDOW)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION DOCKING-BAY-2-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DOCKING-BAY-2-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"This is a tall, narrow bay. Your " 'SPACETRUCK-OBJECT
|
|
|
|
|
" is docked here. Its hatch is ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<OPEN-CLOSED ,SPACETRUCK-HATCH>
|
|
|
|
|
<TELL
|
|
|
|
|
". To the east is the huge door into the station.">)>>
|
|
|
|
|
|
|
|
|
|
<ROOM LEVEL-FIVE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Level Five")
|
|
|
|
|
(NORTH TO WORKSHOP IF P-WON)
|
|
|
|
|
(NE TO NORTH-JUNCTION)
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(SE TO SOUTH-JUNCTION)
|
|
|
|
|
(WEST TO DOCKING-BAY-2 IF P-WON)
|
|
|
|
|
(UP TO LEVEL-FOUR)
|
|
|
|
|
(DOWN TO LEVEL-SIX)
|
|
|
|
|
(LEVEL 5)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL CALL-BUTTON AUTO-DOOR ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER)
|
|
|
|
|
(ACTION LEVEL-FIVE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE LEVEL-FIVE-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"You are in the central lobby of the middle level of the space
|
|
|
|
|
station. The elevator ">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 5>>
|
|
|
|
|
<TELL "shaft ">)>
|
|
|
|
|
<TELL
|
|
|
|
|
"and call button lie to the east, and the corridor heads around the shaft to
|
2019-04-14 23:09:56 +03:00
|
|
|
|
the northeast and southeast. Doors lead north and west" ,LADDER-LEADS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM WORKSHOP
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Workshop")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a fairly large space where much of the maintenance work for the
|
|
|
|
|
station takes place. Some repair work for visiting ships is also done here.
|
|
|
|
|
The room is filled with all sorts of repair and fabrication machinery. A
|
|
|
|
|
door leads south, and there's an opening to the north.")
|
|
|
|
|
(NORTH TO STORAGE-5)
|
|
|
|
|
(SOUTH TO LEVEL-FIVE IF P-WON)
|
|
|
|
|
(OUT TO LEVEL-FIVE IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR EQUIPMENT)>
|
|
|
|
|
|
|
|
|
|
<OBJECT BEDISTOR
|
|
|
|
|
(IN WORKSHOP)
|
|
|
|
|
(DESC "twenty-ohm bedistor")
|
|
|
|
|
(SYNONYM BEDISTOR)
|
|
|
|
|
(ADJECTIVE TWENTY OHM)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 5)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS TAKEBIT)
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I'm really not at all mechanically inclined. My sincerest apologies.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis.")>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM STORAGE-5
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Storage")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is one of the storage areas. Exits lie to the east and south.")
|
|
|
|
|
(EAST TO NORTH-CONNECTION IF P-WON)
|
|
|
|
|
(SOUTH TO WORKSHOP)
|
|
|
|
|
(OUT TO NORTH-CONNECTION)
|
|
|
|
|
(FLAGS RLANDBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<OBJECT JAMMER
|
|
|
|
|
(IN STORAGE-5)
|
|
|
|
|
(DESC "jammer")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(SYNONYM JAMMER SOCKETS FREQUENCY)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS TAKEBIT CONTBIT SEARCHBIT OPENBIT LIGHTBIT)
|
|
|
|
|
(CAPACITY 10)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 15)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION JAMMER-F)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL JAMMER-SETTING 337>
|
|
|
|
|
|
|
|
|
|
<ROUTINE JAMMER-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The jammer is a black box with a short antenna. It has ">
|
|
|
|
|
<COND (<IN? ,TWENTY-PRONG-FROMITZ-BOARD ,JAMMER>
|
|
|
|
|
<TELL
|
|
|
|
|
"a " D ,TWENTY-PRONG-FROMITZ-BOARD " plugged into it">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "twenty tiny sockets on one side">)>
|
|
|
|
|
<TELL ". The jammer, which is o">
|
|
|
|
|
<COND (<FSET? ,JAMMER ,ACTIVEBIT>
|
|
|
|
|
<TELL "n">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "ff">)>
|
|
|
|
|
<TELL
|
|
|
|
|
", looks as if it can be set to any frequency between 0 and
|
|
|
|
|
1400; it is currently set to " N ,JAMMER-SETTING ,PERIOD-CR>)
|
|
|
|
|
(<VERB? OPEN CLOSE>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,JAMMER>
|
|
|
|
|
<NOT <PRSO? ,TWENTY-PRONG-FROMITZ-BOARD>>>
|
|
|
|
|
<DOESNT-FIT "twenty tiny sockets">)
|
|
|
|
|
(<AND <VERB? CONNECT>
|
|
|
|
|
<EQUAL? ,TWENTY-PRONG-FROMITZ-BOARD ,PRSO ,PRSI>>
|
|
|
|
|
<PERFORM ,V?PUT ,TWENTY-PRONG-FROMITZ-BOARD ,JAMMER>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? CONNECT>
|
|
|
|
|
<EQUAL? ,TWELVE-PRONG-FROMITZ-BOARD ,PRSO ,PRSI>>
|
|
|
|
|
<PERFORM ,V?PUT ,TWELVE-PRONG-FROMITZ-BOARD ,JAMMER>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? SET>
|
|
|
|
|
<PRSO? ,JAMMER>>
|
|
|
|
|
<COND (<NOT ,PRSI>
|
|
|
|
|
<TELL ,NEXT-TIME>)
|
|
|
|
|
(<NOT <PRSI? ,INTNUM>>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(<EQUAL? ,P-NUMBER ,JAMMER-SETTING>
|
|
|
|
|
<TELL ,SENILITY-STRIKES>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<OR <L? ,P-NUMBER 0>
|
|
|
|
|
<G? ,P-NUMBER 1400>>
|
|
|
|
|
<TELL "The jammer's range is 0 to 1400." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<SETG JAMMER-SETTING ,P-NUMBER>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "You set the jammer to " N ,JAMMER-SETTING>
|
|
|
|
|
<COND (<IN? ,FORKLIFT ,HERE>
|
|
|
|
|
<TELL ". ">
|
|
|
|
|
<PERFORM ,V?OFF ,JAMMER>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL ,PERIOD-CR>)>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? COUNT>
|
|
|
|
|
<NOUN-USED ,W?SOCKETS ,JAMMER>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "20." CR>)
|
|
|
|
|
(<AND <VERB? OFF>
|
|
|
|
|
<IN? ,FORKLIFT ,HERE>>
|
|
|
|
|
<FCLEAR ,JAMMER ,ACTIVEBIT>
|
|
|
|
|
<REMOVE ,FORKLIFT>
|
|
|
|
|
<REMOVE ,EXERCISE-MACHINE>
|
|
|
|
|
<DEQUEUE I-FORKLIFT>
|
|
|
|
|
<TELL
|
|
|
|
|
"The " 'EXERCISE-MACHINE " springs to life, its powerful arms clamping shut on
|
|
|
|
|
the forklift. The vehicle belches exhaust as it tries to free itself. The
|
|
|
|
|
two machines tumble over in a death grip and then explode! When the smoke
|
|
|
|
|
clears, there's not a trace of either machine." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM NORTH-JUNCTION
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "North Junction")
|
|
|
|
|
(LDESC
|
|
|
|
|
"The central corridor continues around to the southeast and southwest, but
|
|
|
|
|
another corridor joins from the north. There's a door to the east and a
|
|
|
|
|
doorway to the northeast.")
|
|
|
|
|
(NORTH TO NORTH-CONNECTION)
|
|
|
|
|
(NE TO PX)
|
|
|
|
|
(EAST TO SICK-BAY IF P-WON)
|
|
|
|
|
(SE TO EAST-JUNCTION)
|
|
|
|
|
(SW TO LEVEL-FIVE)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM NORTH-CONNECTION
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "North Connection")
|
|
|
|
|
(LDESC
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"The corridor widens here as it approaches the skin of the space station
|
|
|
|
|
at the point where a Scientific Sub-Module would connect. Sure enough, the
|
2019-04-14 23:09:16 +03:00
|
|
|
|
connecting tube of a Sub-Module begins just to the north! An auto-door lies
|
2019-04-14 23:11:30 +03:00
|
|
|
|
to the west. Opposite it, a doorway leads east. A junction is visible to
|
|
|
|
|
the south.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(NORTH TO TUBE)
|
|
|
|
|
(EAST TO PX)
|
|
|
|
|
(SOUTH TO NORTH-JUNCTION)
|
|
|
|
|
(WEST TO STORAGE-5 IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM PX
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "The PX")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is the shop for station personnel, selling everything from postcards
|
|
|
|
|
to chewing gum at inflated prices. Exits lead west and southwest.")
|
|
|
|
|
(SW TO NORTH-JUNCTION)
|
|
|
|
|
(WEST TO NORTH-CONNECTION)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL KEYPAD)
|
|
|
|
|
(THINGS <PSEUDO (DISPEN SCREEN DISPENSER-SCREEN-F)
|
|
|
|
|
(COIN SLOT COIN-SLOT-F)
|
|
|
|
|
(DISPEN HOLE DISPENSER-HOLE-F)>)>
|
|
|
|
|
|
|
|
|
|
<OBJECT DISPENSER
|
|
|
|
|
(IN PX)
|
|
|
|
|
(DESC "dispenser")
|
|
|
|
|
(FDESC ;"so it'll get printed before other DESCs"
|
|
|
|
|
"In the corner of the PX is a Stellar Patrol dispensing machine, consisting
|
|
|
|
|
of a screen (displaying the dispenser's \"exciting\" offerings), a slot (for
|
|
|
|
|
coin insertion), a keypad (for typing your selection), and a hole (where
|
|
|
|
|
the dispensed item hopefully -- but rarely -- arrives).")
|
|
|
|
|
(SYNONYM DISPEN MACHIN)
|
|
|
|
|
(ADJECTIVE DISPEN VENDIN)
|
|
|
|
|
(ACTION DISPENSER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DISPENSER-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL <GETP ,DISPENSER ,P?FDESC> CR>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,DISPENSER>>
|
|
|
|
|
<COND (<PRSO? ,COIN>
|
|
|
|
|
<REMOVE ,COIN>
|
|
|
|
|
<FSET ,DISPENSER ,TOUCHBIT>
|
|
|
|
|
<TELL "\"Clink!\" The coin drops into the slot." CR>)
|
|
|
|
|
(T
|
|
|
|
|
<DOESNT-FIT "coin slot">)>)
|
|
|
|
|
(<VERB? DRILL>
|
|
|
|
|
<TELL
|
|
|
|
|
"We quote from the Stellar Patrol Demolitions Training Manual, Edition
|
|
|
|
|
37\54-GS108. \"Why You Should Never Drill Into Active Machinery: Reason #7.
|
|
|
|
|
You may" ,STRIKE-POWER-SOURCE "\"|
|
|
|
|
|
As you drill into the dispenser, you" ,STRIKE-POWER-SOURCE>
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
" In case you were napping during Demolitions Training, this means that you're
|
|
|
|
|
now a fine layer of ash all over the walls of the PX.">)
|
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<REMOVE ,DISPENSER>
|
|
|
|
|
<TELL
|
|
|
|
|
"Okay, but you'll have to answer to the Stellar Patrol Dispensing Machine
|
2019-04-14 23:09:56 +03:00
|
|
|
|
Company... BLAM! The dispenser is dispensed." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? KICK KILL MUNG SHAKE PUSH>
|
|
|
|
|
<FIRST? ,DISPENSER>>
|
|
|
|
|
<TELL
|
|
|
|
|
"This fails to dislodge the " D <FIRST? ,DISPENSER> ", but it does help relieve
|
|
|
|
|
some of your aggressive feelings toward the stupid dispenser." CR>)
|
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL ,ONLY-BLACKNESS>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE COIN-SLOT-F ()
|
|
|
|
|
<COND (<NOT <IN? ,DISPENSER ,HERE>>
|
|
|
|
|
<CANT-SEE ,PSEUDO-OBJECT>)
|
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL ,ONLY-BLACKNESS>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<PERFORM ,V?SHOOT ,DISPENSER ,ZAPGUN>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,PSEUDO-OBJECT>>
|
|
|
|
|
<PERFORM ,V?PUT ,PRSO ,DISPENSER>
|
|
|
|
|
<RTRUE>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DISPENSER-SCREEN-F ()
|
|
|
|
|
<COND (<NOT <IN? ,DISPENSER ,HERE>>
|
|
|
|
|
<CANT-SEE ,PSEUDO-OBJECT>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<PERFORM ,V?SHOOT ,DISPENSER ,ZAPGUN>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? EXAMINE READ>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"--- STELLAR PATROL VENDO-MATIC ---|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
all items: 1 galakmid|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
1. Patrol Songbook (SOLD OUT)|
|
|
|
|
|
2. Set of Postcards (SOLD OUT)|
|
|
|
|
|
3. ID Card Polish (SOLD OUT)|
|
|
|
|
|
4. Pilot's Compass (SOLD OUT)|
|
|
|
|
|
5. Patrol Pen & Pencil Set (SOLD OUT)|
|
|
|
|
|
6. All-Purpose Timer|
|
|
|
|
|
7. Pocket Computer (SOLD OUT)|
|
|
|
|
|
8. Birth Control Pills (SOLD OUT)|
|
|
|
|
|
9. Large Drill Bit\"" CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DISPENSER-HOLE-F ()
|
|
|
|
|
<COND (<NOT <IN? ,DISPENSER ,HERE>>
|
|
|
|
|
<CANT-SEE ,PSEUDO-OBJECT>)
|
|
|
|
|
(<VERB? REACH-IN>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<OR <IN? ,TIMER ,DISPENSER>
|
|
|
|
|
<IN? ,LARGE-BIT ,DISPENSER>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"You can just feel something with your fingertips, but you
|
|
|
|
|
can't get a grip on it!" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"You reach as far into the dispenser as you can, but feel nothing." CR>)>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<PERFORM ,V?SHOOT ,DISPENSER ,ZAPGUN>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL ,ONLY-BLACKNESS>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,PSEUDO-OBJECT>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "You shove" T ,PRSO " up into the hole.">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<AND <PRSO? ,OSTRICH-NIP>
|
|
|
|
|
<IN? ,OSTRICH ,HERE>>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" The ostrich squawks and sticks its head up the hole after the nip.">
|
|
|
|
|
<OSTRICH-INTO-DISPENSER>
|
|
|
|
|
<TELL " A moment later, the nip falls to the deck. ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<PERFORM ,V?GIVE ,OSTRICH-NIP ,OSTRICH>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T
|
|
|
|
|
<MOVE ,PRSO ,HERE>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" A moment later, it drops out" ,LANDS-ON-FLOOR CR>)>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE OSTRICH-INTO-DISPENSER ()
|
|
|
|
|
<COND (<FIRST? ,DISPENSER>
|
|
|
|
|
<SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>>
|
|
|
|
|
<SETG SCORE <+ ,SCORE 6>>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
" It jerks its head back out, squawking even more loudly, and a moment
|
|
|
|
|
later a " D <FIRST? ,DISPENSER> " falls out of the hole" ,LANDS-ON-FLOOR>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<MOVE <FIRST? ,DISPENSER> ,HERE>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT LARGE-BIT
|
|
|
|
|
(DESC "large drill bit")
|
|
|
|
|
(SYNONYM BIT BITS)
|
|
|
|
|
(ADJECTIVE LARGE DRILL)
|
|
|
|
|
(FLAGS TAKEBIT)
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I'm really not at all mechanically inclined. My sincerest apologies.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(SIZE 4)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION BIT-F)>
|
|
|
|
|
|
|
|
|
|
<OBJECT TIMER
|
|
|
|
|
(DESC "timer")
|
|
|
|
|
(SYNONYM TIMER)
|
|
|
|
|
(ADJECTIVE ALL-PURPOSE)
|
|
|
|
|
(FLAGS TAKEBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 10)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION TIMER-F)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL TIMER-SETTING 0>
|
|
|
|
|
|
|
|
|
|
<ROUTINE TIMER-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"As advertised, it is a standard, all-purpose timer. It can be set to any
|
|
|
|
|
number up to 100, and is currently set to " N ,TIMER-SETTING ". The timer ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (,TIMER-CONNECTED
|
|
|
|
|
<TELL "is connected to a detonator">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "has one connection point">)>
|
|
|
|
|
<COND (<QUEUED? ,I-TIMER>
|
|
|
|
|
<TELL ", and is ticking loudly">)>
|
|
|
|
|
<TELL ,PERIOD-CR>)
|
|
|
|
|
(<VERB? SET>
|
|
|
|
|
<COND (<NOT ,PRSI>
|
|
|
|
|
<TELL ,NEXT-TIME>)
|
|
|
|
|
(<NOT <PRSI? ,INTNUM>>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL "You can set the timer only to a number!" CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<G? ,P-NUMBER 100>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL "The timer has settings up to only 100." CR>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
;(<NOT <EQUAL? <MOD ,P-NUMBER 10> 0>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"You can set the timer only to increments of 10." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<SETG TIMER-SETTING ,P-NUMBER>
|
|
|
|
|
<TELL "You set the timer to " N ,TIMER-SETTING>
|
|
|
|
|
<COND (<G? ,TIMER-SETTING 0>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<QUEUE I-TIMER <+ ,C-ELAPSED 2>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL ". Instantly, it begins ticking loudly">)
|
|
|
|
|
(T
|
|
|
|
|
<DEQUEUE I-TIMER>)>
|
|
|
|
|
<TELL ,PERIOD-CR>)>)
|
|
|
|
|
(<AND <VERB? DISCONNECT>
|
|
|
|
|
<NOT ,PRSI>
|
|
|
|
|
,TIMER-CONNECTED>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<PERFORM, PRSA ,TIMER ,DETONATOR>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<AND <VERB? CONNECT>
|
|
|
|
|
<EQUAL? ,EXPLOSIVE ,PRSO ,PRSI>>
|
|
|
|
|
<TELL
|
|
|
|
|
,YOU-CANT "connect the timer directly to the explosive." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? OFF>
|
|
|
|
|
<QUEUED? ,I-TIMER>>
|
|
|
|
|
<SETG P-NUMBER 0>
|
|
|
|
|
<PERFORM ,V?SET ,TIMER ,INTNUM>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? LISTEN>
|
|
|
|
|
<QUEUED? ,I-TIMER>>
|
|
|
|
|
<TELL "\"Tick, tick...\"" CR>)>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
;"routine I-TIMER moved to INTERRUPTS file"
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<ROUTINE DESTROY-EXPLOSIVE-CONT ("AUX" L X)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<SET L <LOC ,EXPLOSIVE>>
|
|
|
|
|
<REPEAT ()
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<COND (<IN? .L ,ROOMS> ;"don't remove the room!"
|
|
|
|
|
<RETURN>)
|
|
|
|
|
(<FSET? .L ,VEHBIT> ;"don't remove a vehicle!"
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<RETURN>)>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<SET X <LOC .L>>
|
|
|
|
|
<COND (<NOT <EQUAL? .L ,PEDESTAL>>
|
|
|
|
|
<REMOVE .L>)>
|
|
|
|
|
<SET L .X>>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<ROOM SICK-BAY
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Sick Bay")
|
|
|
|
|
(LDESC
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"Surrounding the beds of this infirmary is the finest diagnostic equipment
|
|
|
|
|
that unlimited Stellar Patrol budgets can buy. To the east, an ID reader
|
|
|
|
|
indicates a security door. You can leave to the west or southeast.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(EAST TO BRIG IF SECURITY-DOOR IS OPEN)
|
|
|
|
|
(SE TO EAST-CONNECTION IF P-WON)
|
|
|
|
|
(WEST TO NORTH-JUNCTION IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR BED EQUIPMENT SECURITY-DOOR ID-READER)>
|
|
|
|
|
|
|
|
|
|
<ROOM BRIG
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Brig")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a modest prison, with three cells. The only exit is west.")
|
|
|
|
|
(WEST TO SICK-BAY IF P-WON)
|
|
|
|
|
(OUT TO SICK-BAY IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT FLOYDBIT)
|
|
|
|
|
(GLOBAL SECURITY-DOOR)
|
|
|
|
|
(THINGS <PSEUDO (CELLS CELL CELL-F)
|
|
|
|
|
(<> LOCK BRIG-LOCK-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE CELL-F ()
|
|
|
|
|
<COND (<VERB? ENTER WALK-TO OPEN UNLOCK>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The cells are all locked with high-security locks." CR>)
|
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL "The cells are all empty." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE BRIG-LOCK-F ()
|
|
|
|
|
<COND (<VERB? OPEN UNLOCK PICK>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<PRSI? ,KEY>
|
|
|
|
|
<SETG PRSO ,KEY>
|
|
|
|
|
<DOESNT-FIT "lock">)
|
|
|
|
|
(T
|
|
|
|
|
<YUKS>)>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSO? ,KEY>>
|
|
|
|
|
<DOESNT-FIT "lock">)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM EAST-JUNCTION
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "East Junction")
|
|
|
|
|
(LDESC
|
|
|
|
|
"The corridor continues around to the northwest and southwest, and an
|
|
|
|
|
adjoining one heads east.")
|
|
|
|
|
(EAST TO EAST-CONNECTION)
|
|
|
|
|
(SW TO SOUTH-JUNCTION)
|
|
|
|
|
(NW TO NORTH-JUNCTION)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
|
|
|
|
|
|
<ROOM EAST-CONNECTION
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "East Connection")
|
|
|
|
|
(EAST PER VILLAGE-BOUNDARY-F)
|
|
|
|
|
(SOUTH TO COMM-CENTER)
|
|
|
|
|
(SW TO STATION-CONTROL)
|
|
|
|
|
(WEST TO EAST-JUNCTION)
|
|
|
|
|
(NW TO SICK-BAY IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR IRIS-HATCH)
|
|
|
|
|
(ACTION EAST-CONNECTION-F)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(THINGS <PSEUDO (<> SLOT FORM-SLOT-F)>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE EAST-CONNECTION-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"The corridor widens to the east, the connection point for a Military
|
|
|
|
|
Sub-Module. An iris hatch at the connection point is ">
|
|
|
|
|
<COND (<FSET? ,IRIS-HATCH ,OPENBIT>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"frozen open, revealing not a sub-module connector but
|
|
|
|
|
a small, grimy connector">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL "shut tight">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
". Next to the hatch is a slot. There is a door northwest of here,
|
|
|
|
|
and doorways to the south and southwest. There's a junction in the
|
|
|
|
|
corridor west of you.">)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM SOUTH-JUNCTION
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "South Junction")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This central corridor turns northeast and northwest of here. A second
|
|
|
|
|
corridor begins here and leads south. There are doorways to the southwest,
|
|
|
|
|
southeast, and east.")
|
|
|
|
|
(NE TO EAST-JUNCTION)
|
|
|
|
|
(EAST TO STATION-CONTROL)
|
|
|
|
|
(SE TO COMMANDERS-OFFICE)
|
|
|
|
|
(SOUTH TO SOUTH-CONNECTION)
|
|
|
|
|
(SW TO FILE-ROOM)
|
|
|
|
|
(NW TO LEVEL-FIVE)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
|
|
|
|
|
|
<ROOM STATION-CONTROL
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Station Control")
|
|
|
|
|
(NE TO EAST-CONNECTION)
|
|
|
|
|
(SOUTH TO COMMANDERS-OFFICE)
|
|
|
|
|
(WEST TO SOUTH-JUNCTION)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(ACTION STATION-CONTROL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE STATION-CONTROL-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"This is the nerve center of the space station,
|
|
|
|
|
where every system can be monitored. ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<L? ,DAY 3>
|
|
|
|
|
<COND (<EQUAL? ,DAY 1>
|
|
|
|
|
<TELL "A couple">)
|
|
|
|
|
(<EQUAL? ,DAY 2>
|
|
|
|
|
<TELL "Several">)>
|
|
|
|
|
<TELL " of the monitors are blinking red. ">)>
|
|
|
|
|
<TELL "The exits are south, northeast and west.">)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT SYSTEM-MONITORS
|
|
|
|
|
(IN STATION-CONTROL)
|
|
|
|
|
(DESC "system monitor board")
|
|
|
|
|
(SYNONYM BOARD)
|
|
|
|
|
(ADJECTIVE SYSTEM MONITOR RED GREEN YELLOW BLINKING)
|
|
|
|
|
(FLAGS NDESCBIT READBIT)
|
|
|
|
|
(ACTION SYSTEM-MONITORS-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE SYSTEM-MONITORS-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE READ>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<PUT 0 8 <BOR <GET 0 8> 2>> ;"FIXED-FONT-ON"
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"System: Status:|
|
|
|
|
|
COMMUNICATION ">
|
|
|
|
|
<COND (<G? ,DAY 2>
|
|
|
|
|
<TELL "GREEN">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "RED">)>
|
|
|
|
|
<TELL "|
|
|
|
|
|
LIFE SUPPORT ">
|
|
|
|
|
<COND (<EQUAL? ,DAY 2>
|
|
|
|
|
<COND (<L? ,INTERNAL-MOVES 6500>
|
|
|
|
|
<TELL "YELLOW">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "RED">)>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "GREEN">)>
|
|
|
|
|
<TELL "|
|
|
|
|
|
FOOD PRODUCTION ">
|
|
|
|
|
<COND (<G? ,DAY 2>
|
|
|
|
|
<TELL "GREEN">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "RED">)>
|
|
|
|
|
<TELL "|
|
|
|
|
|
GRAVITY ">
|
|
|
|
|
<COND (<EQUAL? ,DAY 2>
|
|
|
|
|
<TELL "YELLOW">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "GREEN">)>
|
|
|
|
|
<TELL "|
|
|
|
|
|
COMPUTER GREEN|
|
|
|
|
|
POWER ">
|
|
|
|
|
<COND (<EQUAL? ,DAY 2>
|
|
|
|
|
<COND (<L? ,INTERNAL-MOVES 4300>
|
|
|
|
|
<TELL "YELLOW">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "RED">)>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "GREEN">)>
|
|
|
|
|
<TELL "|
|
|
|
|
|
PRINTING ">
|
|
|
|
|
<COND (<EQUAL? ,DAY 1>
|
|
|
|
|
<TELL "YELLOW">)
|
|
|
|
|
(<G? ,DAY 3>
|
|
|
|
|
<TELL "GREEN">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "RED">)>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<CRLF>
|
|
|
|
|
<PUT 0 8 <BAND <GET 0 8> -3>> ;"FIXED-FONT-OFF")>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM COMM-CENTER
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Comm Center")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(NORTH TO EAST-CONNECTION)
|
|
|
|
|
(OUT TO EAST-CONNECTION)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL EQUIPMENT)
|
|
|
|
|
(ACTION COMM-CENTER-F)
|
|
|
|
|
(THINGS <PSEUDO (RED BUTTON COMM-BUTTON-F)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(MESSAGE SCREEN SCREEN-F)>)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE COMM-CENTER-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:16 +03:00
|
|
|
|
"This is the Deep-Space Communication Center, which keeps the station in touch
|
|
|
|
|
with the Stellar Patrol Command and the rest of the Third Galactic Union.
|
2019-04-14 23:09:56 +03:00
|
|
|
|
Although regulations state that the Comm Center must be monitored around the
|
2019-04-14 23:09:16 +03:00
|
|
|
|
clock, ten chrons per day, there's no one on duty.|
|
|
|
|
|
Most of the equipment here is too complicated for anyone without Deep-Space
|
2019-04-14 23:11:30 +03:00
|
|
|
|
Communication Training to use. However, the red button of the wide-band
|
2019-04-14 23:09:56 +03:00
|
|
|
|
emergency beacon is well-marked. Next to the button is a large screen for
|
|
|
|
|
displaying incoming messages. ">
|
|
|
|
|
<SCREEN-F T>
|
|
|
|
|
<TELL " The only exit is north.">)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE COMM-BUTTON-F ()
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<TOUCHING? ,PSEUDO-OBJECT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The instant you touch the button, a powerful electric shock
|
|
|
|
|
makes you jerk back.">
|
|
|
|
|
<COND (<G? ,ROBOT-EVILNESS 14>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<JIGS-UP
|
|
|
|
|
" The shock seems to have been a bit too much for your heart.">)
|
|
|
|
|
(<AND <G? ,ROBOT-EVILNESS 7>
|
|
|
|
|
<G? <CCOUNT ,PROTAGONIST> 0>>
|
|
|
|
|
<ROB ,PROTAGONIST ,HERE>
|
|
|
|
|
<TELL
|
|
|
|
|
" The shock causes you to drop everything, and leaves your limbs
|
|
|
|
|
twitching all over.">)>
|
|
|
|
|
<CRLF>)>>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<ROUTINE SCREEN-F ("OPTIONAL" (DESCRIBE-SCREEN <>))
|
|
|
|
|
<COND (<OR <VERB? EXAMINE>
|
|
|
|
|
.DESCRIBE-SCREEN>
|
|
|
|
|
<TELL "At the moment, the screen is ">
|
|
|
|
|
<COND (,MESSAGE-RECEIVED
|
|
|
|
|
<TELL "displaying a message.">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "blank.">)>
|
|
|
|
|
<COND (<NOT .DESCRIBE-SCREEN>
|
|
|
|
|
<CRLF>)>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? READ>
|
|
|
|
|
<COND (,MESSAGE-RECEIVED
|
|
|
|
|
<TELL
|
|
|
|
|
"\"From: Forms Control Officer, S.P.S. Duffy|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
To: " ,LFC " 1451-352-716|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
Re: Current assignment|
|
|
|
|
|
Msg: Two thousand reams of " ,FORM-NAME " found in mislabelled pallet. No
|
|
|
|
|
additional supplies needed. Abort assignment and return to Duffy.\"" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<PERFORM ,V?EXAMINE ,PSEUDO-OBJECT>
|
|
|
|
|
<RTRUE>)>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL MESSAGE-RECEIVED <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-MESSAGE ()
|
|
|
|
|
<SETG MESSAGE-RECEIVED T>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<FCLEAR ,COMM-CENTER ,TOUCHBIT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL " ">
|
|
|
|
|
<COND (<FSET? ,SPACESUIT ,WORNBIT>
|
|
|
|
|
<TELL "The space suit picks up a message from">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "You hear a message over">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
" the station's P.A. system: \"Deep-space communication received at
|
2019-04-14 23:09:56 +03:00
|
|
|
|
Comm Center. No operator on duty. This is a recording.\"" CR>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<ROOM FILE-ROOM
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "File Room")
|
|
|
|
|
(LDESC
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"This is the room where octuplet copies of forms are stored. Since it's only
|
|
|
|
|
a hundred square meters, this room cannot hold more than a few days' worth of
|
|
|
|
|
storage before being dumped to nanofilm. Mercifully, there is an exit to the
|
|
|
|
|
northeast.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(NE TO SOUTH-JUNCTION)
|
|
|
|
|
(OUT TO SOUTH-JUNCTION)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(FLAGS RLANDBIT NWELDERBIT)
|
|
|
|
|
(THINGS <PSEUDO (FILES FILE FILES-F)
|
|
|
|
|
(<> FORM FILES-F)
|
|
|
|
|
(<> FORMS FILES-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE FILES-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE READ>
|
|
|
|
|
<TELL
|
|
|
|
|
"The word \"boring\" does not BEGIN to describe them." CR>)
|
|
|
|
|
(<VERB? CRUMPLE MUNG>
|
|
|
|
|
<TELL ,VIOLATION-OF-ACT>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM COMMANDERS-OFFICE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Commander's Office")
|
|
|
|
|
(NORTH TO STATION-CONTROL)
|
|
|
|
|
(EAST TO COMMANDERS-QUARTERS IF P-WON)
|
|
|
|
|
(SOUTH TO BRIEFING-ROOM IF P-WON)
|
|
|
|
|
(NW TO SOUTH-JUNCTION)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)
|
|
|
|
|
(THINGS <PSEUDO (RED BUTTON LOG-READER-BUTTON-F)>)
|
|
|
|
|
(ACTION COMMANDERS-OFFICE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE COMMANDERS-OFFICE-F (RARG)
|
|
|
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
|
|
|
<ULTIMATELY-IN? ,EXPLOSIVE>>
|
|
|
|
|
<FSET ,EXERCISE-MACHINE ,TOUCHBIT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<MOVE ,EXERCISE-MACHINE ,COMPUTER-CONTROL>
|
|
|
|
|
<ROB ,EXERCISE-MACHINE ,GYM>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"This is the Station Commander's H.Q., with doors to the south and east,
|
2019-04-14 23:09:16 +03:00
|
|
|
|
and doorways to the north and northwest.">
|
|
|
|
|
<COND (<NOT <IN? ,LOG-READER ,HERE>>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" There's a black scar where the " 'LOG-READER " once sat.">)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<RTRUE>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT LOG-READER
|
|
|
|
|
(IN COMMANDERS-OFFICE)
|
|
|
|
|
(DESC "log reader")
|
|
|
|
|
(SYNONYM READER RECORDER MACHIN)
|
|
|
|
|
(ADJECTIVE LOG)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS LIGHTBIT CONTBIT SEARCHBIT OPENBIT TRYTAKEBIT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION LOG-READER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE LOG-READER-F ()
|
|
|
|
|
<COND (<VERB? OPEN CLOSE>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"This simple device is for recording and reading log entries. It includes a
|
|
|
|
|
tiny red button and a microphone/speaker. ">
|
|
|
|
|
<COND (<AND <FSET? ,LOG-READER ,ACTIVEBIT>
|
|
|
|
|
<IN? ,LOG-TAPE ,LOG-READER>>
|
|
|
|
|
<TELL "The red button is glowing. ">)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "At the moment, the " 'LOG-READER " is o">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<FSET? ,LOG-READER ,ACTIVEBIT>
|
|
|
|
|
<TELL "n">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "ff">)>
|
|
|
|
|
<TELL ", and there is ">
|
|
|
|
|
<COND (<IN? ,LOG-TAPE ,LOG-READER>
|
|
|
|
|
<TELL "a">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "no">)>
|
|
|
|
|
<TELL " log tape in it." CR>)
|
|
|
|
|
(<VERB? PUT>
|
|
|
|
|
<COND (<NOT <PRSO? ,LOG-TAPE>>
|
|
|
|
|
<DOESNT-FIT "reader">)
|
|
|
|
|
(<FSET? ,LOG-READER ,ACTIVEBIT>
|
|
|
|
|
<MOVE ,LOG-TAPE ,LOG-READER>
|
|
|
|
|
<SETG LOG-COUNTER 0>
|
|
|
|
|
<READ-LOG>)>)
|
|
|
|
|
(<AND <VERB? ON>
|
|
|
|
|
<NOT <FSET? ,LOG-READER ,ACTIVEBIT>>>
|
|
|
|
|
<QUEUE I-LOG-READER -1>
|
|
|
|
|
<COND (<IN? ,LOG-TAPE ,LOG-READER>
|
|
|
|
|
<FSET ,LOG-READER ,ACTIVEBIT>
|
|
|
|
|
<SETG LOG-COUNTER 0>
|
|
|
|
|
<READ-LOG>)
|
|
|
|
|
(T
|
|
|
|
|
<RFALSE>)>)
|
|
|
|
|
(<AND <VERB? LISTEN>
|
|
|
|
|
<G? ,LOG-READER-COUNTER 11>>
|
|
|
|
|
<TELL "\"Whine.\"" CR>)
|
|
|
|
|
(<VERB? TAKE>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL ,WONT-BUDGE>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<DEQUEUE I-LOG-READER>
|
|
|
|
|
<RFALSE>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE LOG-READER-BUTTON-F ()
|
|
|
|
|
<COND (<NOT <IN? ,LOG-READER ,HERE>>
|
|
|
|
|
<CANT-SEE ,PSEUDO-OBJECT>)
|
|
|
|
|
(<VERB? PUSH>
|
|
|
|
|
<COND (<AND <IN? ,LOG-TAPE ,LOG-READER>
|
|
|
|
|
<FSET? ,LOG-READER ,ACTIVEBIT>>
|
|
|
|
|
<COND (<EQUAL? ,LOG-COUNTER 10>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"A mechanized voice from the " 'LOG-READER " says, \"End of Log.\"" CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<READ-LOG>)>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL ,NOTHING-HAPPENS>)>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL LOG-COUNTER 0>
|
|
|
|
|
|
|
|
|
|
<GLOBAL LOG-READER-COUNTER 0>
|
|
|
|
|
|
|
|
|
|
<ROUTINE READ-LOG ()
|
|
|
|
|
<SETG LOG-COUNTER <+ ,LOG-COUNTER 1>>
|
|
|
|
|
<COND (<EQUAL? ,LOG-COUNTER 1>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "A gravelly voice comes from the " 'LOG-READER ": ">)>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL "\"11349.12.">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<EQUAL? ,LOG-COUNTER 1>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"2.3800: Some kripping jokers have been pilfering the station's fuel
|
2019-04-14 23:09:56 +03:00
|
|
|
|
cells to go out on joyrides! I have hidden the fuel cells up in the Dome's "
|
|
|
|
|
'HOUSING ", slapped a lock on the bin, and deposited the key in my safe!
|
|
|
|
|
There will be no joyriding in my command!">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? ,LOG-COUNTER 2>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"2.5100: Reproductions Officer Hausberg reports that collater
|
2019-04-14 23:09:16 +03:00
|
|
|
|
#22 is off-line for routine service. Estimates one or two days downtime.
|
|
|
|
|
Also, unidentified craft detected in sector. No response to hailings.
|
|
|
|
|
Sending Finsterwald to intercept.">)
|
|
|
|
|
(<EQUAL? ,LOG-COUNTER 3>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"2.6750: Unidentified craft towed to Docking Bay #1. It is a
|
2019-04-14 23:09:16 +03:00
|
|
|
|
single-cabin vessel of unfamiliar alien origin. The only things aboard were
|
|
|
|
|
the remains of one of the aliens, and a featureless pyramid. I'll leave it
|
2019-04-14 23:11:30 +03:00
|
|
|
|
to the eggheads; I've got a problem of my own: a report that a used-spaceship
|
2019-04-14 23:09:16 +03:00
|
|
|
|
dealer in the village named Shady Dan is selling modified Patrol ID cards.
|
2019-04-14 23:09:56 +03:00
|
|
|
|
Liaison Officer Bumblewitz is investigating.">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? ,LOG-COUNTER 4>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"3.1900: Professor Schmidt has back-plotted the course of the alien
|
2019-04-14 23:09:16 +03:00
|
|
|
|
vessel. There are no star systems along the course; he theorizes that it may
|
|
|
|
|
be of extra-galactic origin.">)
|
|
|
|
|
(<EQUAL? ,LOG-COUNTER 5>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"3.5100: No cooperation from Shady Dan, so I'm putting the
|
2019-04-14 23:09:16 +03:00
|
|
|
|
village off-limits to station personnel. No more village entry forms
|
|
|
|
|
will be validated.">)
|
|
|
|
|
(<EQUAL? ,LOG-COUNTER 6>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"3.5250: Some kripping joker snuck into my office and validated a
|
2019-04-14 23:09:16 +03:00
|
|
|
|
whole batch of village entry forms! I won't take that kind of trot aboard my
|
2019-04-14 23:09:56 +03:00
|
|
|
|
station! I'll hide the stamp under my bed until I find out who's responsible.
|
|
|
|
|
Also, I gave Schmidt permission to move the alien pyramid to the "
|
|
|
|
|
'HOLDING-TANK " in the Sci Sub-Module for further study; the " 'SKELETON " is
|
|
|
|
|
too brittle to move, they say. Hmmm... This " 'LOG-READER " is overheating.
|
|
|
|
|
I'll have to dig out the spare.">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? ,LOG-COUNTER 7>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"3.7700: Equipment Officer Mertzhoffer informs me that there have
|
2019-04-14 23:09:16 +03:00
|
|
|
|
been several unexplainable breakdowns in the Gymnastic Equipment and the
|
|
|
|
|
Laundering Machinery. All very simple equipment; could it be sabotage?
|
|
|
|
|
If so, how? Who? Why?">)
|
|
|
|
|
(<EQUAL? ,LOG-COUNTER 8>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"4.1650: Emergency communication from the S.P.S. Duffy. They are
|
2019-04-14 23:09:16 +03:00
|
|
|
|
critically low on " ,FORM-NAME ", and are sending someone over to pick up a
|
|
|
|
|
truckload of them. Reproductions Officer Hausberg says that the #22 collater
|
|
|
|
|
should be available to prepare the forms.">)
|
|
|
|
|
(<EQUAL? ,LOG-COUNTER 9>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"4.1850: Hausberg reports an unexpected shutdown of web-feeder #17.
|
2019-04-14 23:09:16 +03:00
|
|
|
|
No apparent reason for the shutdown, and no warning, either. He says that one
|
|
|
|
|
of his personnel almost lost an arm when it shut down. We may have to halt the
|
|
|
|
|
entire plant to investigate. No telling how long... What the... Trot! Now the
|
2019-04-14 23:09:56 +03:00
|
|
|
|
spare " 'LOG-READER " is overheating, also!">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"4.1900: One of the ensigns in the filing division was seriously
|
|
|
|
|
injured when one of the " 'WELDER "s malfunctioned. She's in Sick Bay now;
|
|
|
|
|
Doc says she should pull through. I've been in space for 32 years and
|
2019-04-14 23:09:16 +03:00
|
|
|
|
I've never heard of a " 'WELDER " malfun... What the krip!...">)>
|
|
|
|
|
<TELL "\"">
|
|
|
|
|
<COND (<NOT <EQUAL? ,LOG-COUNTER 10>>
|
|
|
|
|
<TELL CR
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" A mechanized voice from the " 'LOG-READER " intones the single word
|
|
|
|
|
\"More,\" and the red button on the reader lights up.">)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<CRLF>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
;"routine I-LOG-READER moved to INTERRUPTS file"
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM COMMANDERS-QUARTERS
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Commander's Quarters")
|
|
|
|
|
(LDESC
|
|
|
|
|
"These are by far the nicest living quarters on the station, with
|
|
|
|
|
separate sleeping, changing, and working cubicles, and a private SanFac.
|
|
|
|
|
The only exit is west.")
|
|
|
|
|
(WEST TO COMMANDERS-OFFICE IF P-WON)
|
|
|
|
|
(OUT TO COMMANDERS-OFFICE IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR BED FIXTURES CUBICLE WARDROBE DESK)
|
|
|
|
|
(THINGS <PSEUDO (<> DIAL DIAL-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DIAL-F ()
|
|
|
|
|
<COND (<FSET? ,SAFE ,OPENBIT>
|
|
|
|
|
<TELL "There's not much left of the dial." CR>)
|
|
|
|
|
(<AND <VERB? SET>
|
|
|
|
|
<PRSO? ,PSEUDO-OBJECT>>
|
|
|
|
|
<COND (<NOT ,PRSI>
|
|
|
|
|
<TELL ,NEXT-TIME>)
|
|
|
|
|
(<NOT <PRSI? ,INTNUM>>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(T
|
|
|
|
|
<PERFORM ,V?SET ,INTNUM>
|
|
|
|
|
<RTRUE>)>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL "The dial is set to " N ,DIAL-SETTING ,PERIOD-CR>)>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<GLOBAL DIAL-SETTING 4473>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT LOG-TAPE
|
|
|
|
|
(IN COMMANDERS-QUARTERS)
|
|
|
|
|
(DESC "log tape")
|
|
|
|
|
(FDESC
|
|
|
|
|
"Sitting on the Commander's desk is an ordinary-looking log tape. There's
|
|
|
|
|
a notation printed on it.")
|
|
|
|
|
(SYNONYM TAPE LOG NOTATION)
|
|
|
|
|
(ADJECTIVE LOG)
|
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
|
|
|
|
(TEXT "\"Commander's Log -- 11349.12.2 through 11349.12.4\"")>
|
|
|
|
|
|
|
|
|
|
<OBJECT SAFE
|
|
|
|
|
(IN COMMANDERS-QUARTERS)
|
|
|
|
|
(DESC "safe")
|
|
|
|
|
(FDESC ;"so it'll get printed before other DESCs"
|
|
|
|
|
"A sturdy safe is welded to the deck next to the desk.")
|
|
|
|
|
(LDESC
|
|
|
|
|
"The safe has been blown open! The area around the safe is blackened, and a
|
|
|
|
|
burnt odor hangs in the air.")
|
|
|
|
|
(SYNONYM SAFE LOCK)
|
|
|
|
|
(ADJECTIVE STURDY)
|
|
|
|
|
(FLAGS CONTBIT SEARCHBIT LOCKEDBIT)
|
|
|
|
|
(ACTION SAFE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE SAFE-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"It's a top-of-the-line HyperSecurity Safe, featuring a dial with
|
|
|
|
|
8000 settings. There are probably between twelve and twenty numbers
|
|
|
|
|
in the combination">
|
|
|
|
|
<COND (<IN? ,DRILLED-HOLE ,HERE>
|
|
|
|
|
<TELL ". There is a hole in the safe">
|
|
|
|
|
<DESCRIBE-BIT-SIZE ,HOLE-SIZE>)>
|
|
|
|
|
<TELL ,PERIOD-CR>)
|
|
|
|
|
(<VERB? DRILL>
|
|
|
|
|
<MAKE-HOLE-WITH-DRILL ,SAFE>)
|
|
|
|
|
(<VERB? UNLOCK PICK>
|
|
|
|
|
<TELL
|
|
|
|
|
"The galaxy's craftiest safecrackers would be stumped by this baby." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DESCRIBE-BIT-SIZE (BIT-SIZE)
|
|
|
|
|
<TELL " approximately the diameter of a ">
|
|
|
|
|
<COND (<EQUAL? .BIT-SIZE ,SMALL-BIT>
|
|
|
|
|
<TELL "toothpick">)
|
|
|
|
|
(<EQUAL? .BIT-SIZE ,MEDIUM-BIT>
|
|
|
|
|
<TELL "pencil">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "cigar">)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL DRILL-DEAD <>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL HOLE-SIZE <>>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<GLOBAL DRILL-FOOTNOTE <>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL SAFE-HOLE-SCORE <>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<OBJECT DRILLED-HOLE
|
|
|
|
|
(DESC "hole")
|
|
|
|
|
(SYNONYM HOLE)
|
|
|
|
|
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)
|
|
|
|
|
(ACTION DRILLED-HOLE-F)>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<ROUTINE DRILLED-HOLE-F ("AUX" OBJ)
|
|
|
|
|
<SET OBJ <COND (<EQUAL? ,HERE ,COMMANDERS-QUARTERS>
|
|
|
|
|
,SAFE)
|
|
|
|
|
(<EQUAL? ,HERE ,LOAN-SHARK>
|
|
|
|
|
,STRONG-BOX)
|
|
|
|
|
(T
|
|
|
|
|
,HOUSING)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,DRILLED-HOLE>>
|
|
|
|
|
<COND (<OR <NOT <PRSO? ,EXPLOSIVE>>
|
|
|
|
|
<EQUAL? ,HOLE-SIZE ,SMALL-BIT>>
|
|
|
|
|
<DOESNT-FIT "hole">)
|
|
|
|
|
(<EQUAL? ,HERE ,DOME>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"As the explosive touches the warm bin, it " ,SUBLIMES-INTO-FREZONE>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<DEQUEUE I-EXPLOSIVE-MELT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<REMOVE-CAREFULLY ,EXPLOSIVE>
|
|
|
|
|
<CRLF>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <NOT ,SAFE-HOLE-SCORE>
|
|
|
|
|
<EQUAL? ,HERE ,COMMANDERS-QUARTERS>>
|
|
|
|
|
<SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<SETG SCORE <+ ,SCORE 3>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<SETG SAFE-HOLE-SCORE T>
|
|
|
|
|
<RFALSE>)>)
|
|
|
|
|
(<VERB? DRILL>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<PERFORM, PRSA .OBJ>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<PERFORM, PRSA .OBJ ,ZAPGUN>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL ,ONLY-BLACKNESS>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE MAKE-HOLE-WITH-DRILL (OBJ)
|
|
|
|
|
<COND (,DRILL-DEAD
|
|
|
|
|
<PERFORM ,V?ON ,DRILL>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND ,HOLE-SIZE
|
|
|
|
|
<NOT <IN? ,DRILLED-HOLE ,HERE>>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<SETG DRILL-DEAD T>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"As you begin drilling, the drill sparks and stops running." CR>)
|
|
|
|
|
(<NOT ,HOLE-SIZE>
|
|
|
|
|
<MOVE ,DRILLED-HOLE ,HERE>
|
|
|
|
|
<SETG HOLE-SIZE <FIRST? ,DRILL>>
|
|
|
|
|
<SETG C-ELAPSED 30>
|
|
|
|
|
<TELL "You drill a hole in" T .OBJ>
|
|
|
|
|
<DESCRIBE-BIT-SIZE ,HOLE-SIZE>
|
|
|
|
|
<TELL ,PERIOD-CR>)
|
|
|
|
|
(<EQUAL? ,HOLE-SIZE <FIRST? ,DRILL>>
|
|
|
|
|
<TELL ,SENILITY-STRIKES>)
|
|
|
|
|
(<OR <EQUAL? ,HOLE-SIZE ,LARGE-BIT>
|
|
|
|
|
<IN? ,SMALL-BIT ,DRILL>>
|
|
|
|
|
<TELL
|
|
|
|
|
"The hole in the safe is already larger than the bit in the drill." CR>)
|
|
|
|
|
(T
|
|
|
|
|
<SETG HOLE-SIZE <FIRST? ,DRILL>>
|
|
|
|
|
<TELL "You enlarge the hole in" T .OBJ ". It's now">
|
|
|
|
|
<DESCRIBE-BIT-SIZE ,HOLE-SIZE>
|
|
|
|
|
<TELL ,PERIOD-CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT KEY
|
|
|
|
|
(IN SAFE)
|
|
|
|
|
(DESC "key")
|
|
|
|
|
(SYNONYM KEY)
|
|
|
|
|
(FLAGS TAKEBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 3)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(VALUE 7)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT VALIDATION-STAMP
|
|
|
|
|
(DESC "validation stamp")
|
|
|
|
|
(SYNONYM STAMP)
|
|
|
|
|
(ADJECTIVE VALIDA)
|
|
|
|
|
(FLAGS TAKEBIT)
|
|
|
|
|
(ACTION STAMP-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE STAMP-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL "It's a fairly standard self-inking rubber stamp." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM BRIEFING-ROOM
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Briefing Room")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is the Station Commander's conference room. Doors point north and west.")
|
|
|
|
|
(NORTH TO COMMANDERS-OFFICE IF P-WON)
|
|
|
|
|
(WEST TO SOUTH-CONNECTION IF P-WON)
|
|
|
|
|
(OUT TO SOUTH-CONNECTION IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM ARMORY
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Armory")
|
|
|
|
|
(LDESC
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"This is a secondary weapons storage deck, but the only weapon deck on a
|
|
|
|
|
station with no Military Sub-Module. Exit: south.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(SOUTH TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(OUT TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT FLOYDBIT)
|
|
|
|
|
(VALUE 5)
|
|
|
|
|
(GLOBAL SECURITY-DOOR)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL ZAPGUN-SHOTS 7>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<GLOBAL ZAPGUN-FOOTNOTE <>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<OBJECT ZAPGUN
|
|
|
|
|
(IN ARMORY)
|
|
|
|
|
(DESC "fusor-beam zapgun")
|
|
|
|
|
(SYNONYM GUN ZAPGUN)
|
|
|
|
|
(ADJECTIVE FUSOR BEAM)
|
|
|
|
|
(SIZE 15)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(FLAGS TAKEBIT)
|
|
|
|
|
(ACTION ZAPGUN-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ZAPGUN-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The zapgun is a nasty-looking weapon. Mounted near its ugly maw is an
|
|
|
|
|
indicator which reads \"" N ,ZAPGUN-SHOTS ".\"" CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM SOUTH-CONNECTION
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "South Connection")
|
|
|
|
|
(NORTH TO SOUTH-JUNCTION)
|
|
|
|
|
(EAST TO BRIEFING-ROOM IF P-WON)
|
|
|
|
|
(SOUTH PER VILLAGE-BOUNDARY-F)
|
|
|
|
|
(WEST TO ROBOT-SHOP IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR IRIS-HATCH)
|
|
|
|
|
(ACTION SOUTH-CONNECTION-F)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(THINGS <PSEUDO (<> SLOT FORM-SLOT-F)>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE SOUTH-CONNECTION-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"The corridor widens as it reaches the hull of the station. To the south,
|
|
|
|
|
where a Sub-Module connection would be in a station with a Diplomatic
|
|
|
|
|
Sub-Module, an iris hatch is ">
|
|
|
|
|
<COND (<FSET? ,IRIS-HATCH ,OPENBIT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"open, leading to a dark corridor which is quite obviously not a connecting
|
|
|
|
|
tube for a Diplomatic Sub-Module">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL "closed">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
". There's a slot next to the hatch. Other doors lead east and west,
|
|
|
|
|
and a junction with another corridor is visible to the north.">)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM LEVEL-FOUR
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Level Four")
|
|
|
|
|
(NORTH TO FEMALE-BARRACKS IF P-WON)
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(SOUTH TO MALE-BARRACKS IF P-WON)
|
|
|
|
|
(WEST TO DOCKING-BAY-3 IF P-WON)
|
|
|
|
|
(UP TO LEVEL-THREE)
|
|
|
|
|
(DOWN TO LEVEL-FIVE)
|
|
|
|
|
(LEVEL 4)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL CALL-BUTTON AUTO-DOOR ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER)
|
|
|
|
|
(ACTION LEVEL-FOUR-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE LEVEL-FOUR-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"You are now on the primary bunk level of the station, with barracks to
|
|
|
|
|
the north and south. To the east is the elevator ">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 4>>
|
|
|
|
|
<TELL "shaft ">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"and the elevator call button. Docking Bay #3 can be entered to the west"
|
|
|
|
|
,LADDER-LEADS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM DOCKING-BAY-3
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Docking Bay #3")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a wide but not very tall docking bay. The station entrance lies
|
|
|
|
|
to the east.")
|
|
|
|
|
(EAST TO LEVEL-FOUR IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<OBJECT LILAC-SPOOL
|
|
|
|
|
(IN DOCKING-BAY-3)
|
|
|
|
|
(DESC "lilac nanofilm spool")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SYNONYM NANOFILM SPOOL SPOOLS)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ADJECTIVE NANOFILM LILAC)
|
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
|
|
|
|
(SIZE 3)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(TEXT "\"Spacetruck Refueling Instructions\"")>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<ROOM FEMALE-BARRACKS
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Female Barracks")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This cramped dormitory, composed of approximately twenty private cubicles,
|
|
|
|
|
curves around the northern half of this level, with exits to the southeast
|
|
|
|
|
and southwest.")
|
|
|
|
|
(SE TO BARRACKS-SANFAC)
|
|
|
|
|
(SW TO LEVEL-FOUR IF P-WON)
|
|
|
|
|
(NORTH "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(NE "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(NW "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR BED CUBICLE WARDROBE DESK)>
|
|
|
|
|
|
|
|
|
|
<ROOM MALE-BARRACKS
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Male Barracks")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This warren of tiny cubicles fills the southern half of this level, curving
|
|
|
|
|
toward exits in the northeast and northwest corners.")
|
|
|
|
|
(NE TO BARRACKS-SANFAC)
|
|
|
|
|
(NW TO LEVEL-FOUR IF P-WON)
|
|
|
|
|
(SOUTH "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(SE "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(SW "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR BED CUBICLE WARDROBE DESK)>
|
|
|
|
|
|
|
|
|
|
<ROOM BARRACKS-SANFAC
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Barracks SanFac")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a crowded but otherwise typical sanitary facility, with rows of
|
|
|
|
|
showers, toilet stalls, and sinks. There are exits both north and south.")
|
|
|
|
|
(NORTH TO FEMALE-BARRACKS)
|
|
|
|
|
(SOUTH TO MALE-BARRACKS)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL FIXTURES)>
|
|
|
|
|
|
|
|
|
|
<ROOM LEVEL-THREE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Level Three")
|
|
|
|
|
(NORTH TO GYM IF P-WON)
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(SOUTH TO THEATRE IF P-WON)
|
|
|
|
|
(SW TO CHAPEL)
|
|
|
|
|
(NW TO LAUNDRY IF P-WON)
|
|
|
|
|
(UP TO MESS-HALL)
|
|
|
|
|
(DOWN TO LEVEL-FOUR)
|
|
|
|
|
(LEVEL 3)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR CALL-BUTTON ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER)
|
|
|
|
|
(ACTION LEVEL-THREE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE LEVEL-THREE-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"From this lobby you can choose doors that lie to the north, south, or
|
|
|
|
|
northwest. An additional doorway leads southwest. The elevator ">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 3>>
|
|
|
|
|
<TELL "shaft ">)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "and button are just to the east" ,LADDER-LEADS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM GYM
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Gym")
|
|
|
|
|
(SOUTH TO LEVEL-THREE IF P-WON)
|
|
|
|
|
(OUT TO LEVEL-THREE IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR SIGN)
|
|
|
|
|
(ACTION GYM-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE GYM-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"This is a huge room where station personnel keep in shape via exercise and
|
|
|
|
|
recreational sports. ">
|
|
|
|
|
<COND (<NOT <IN? ,EXERCISE-MACHINE ,HERE>>
|
|
|
|
|
<TELL "There's a sign on one wall. ">)>
|
|
|
|
|
<TELL "The sole exit is south.">)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT EXERCISE-MACHINE
|
|
|
|
|
(IN GYM)
|
|
|
|
|
(DESC "exercise machine")
|
|
|
|
|
(FDESC
|
|
|
|
|
"A multiple-function exercise machine sits imposingly on one side of the
|
|
|
|
|
gym. There is a sign above it.")
|
|
|
|
|
(SYNONYM MACHIN)
|
|
|
|
|
(ADJECTIVE EXERCISE NAUTILUS)
|
|
|
|
|
(FLAGS VOWELBIT VEHBIT INBIT CONTBIT OPENBIT SEARCHBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(CAPACITY 100)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION EXERCISE-MACHINE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE EXERCISE-MACHINE-F (OARG)
|
|
|
|
|
<COND (.OARG
|
|
|
|
|
<RFALSE>)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<VERB? ENTER>
|
|
|
|
|
<COND (<RUNNING? ,I-EXERCISE-MACHINE>
|
|
|
|
|
<TELL "The " 'EXERCISE-MACHINE>
|
|
|
|
|
<JIGS-UP
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" hums encouraging platitudes as it exercises you to death.">)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<EQUAL? ,HERE ,COMPUTER-CONTROL>
|
|
|
|
|
<TELL "The forklift is in the way." CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? ON OFF>
|
|
|
|
|
<TELL "It's permanently on." CR>)
|
|
|
|
|
(<AND <VERB? EXAMINE>
|
|
|
|
|
<NOT <IN? ,PROTAGONIST ,EXERCISE-MACHINE>>>
|
|
|
|
|
<TELL "There's no one in" TR ,EXERCISE-MACHINE>)
|
|
|
|
|
(<VERB? KILL MUNG>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The " 'EXERCISE-MACHINE " is made of zynoid-reinforced hyper-steel." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? USE>
|
|
|
|
|
<COND (<IN? ,PROTAGONIST ,EXERCISE-MACHINE>
|
|
|
|
|
<V-EXERCISE>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "You're not even in it!" CR>)>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM LAUNDRY
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Laundry")
|
|
|
|
|
(EAST TO LEVEL-THREE IF P-WON)
|
|
|
|
|
(OUT TO LEVEL-THREE IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)
|
|
|
|
|
(ACTION LAUNDRY-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE LAUNDRY-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"All laundry rooms, planetside as well as in space, tend to look alike.
|
2019-04-14 23:11:30 +03:00
|
|
|
|
This one is no exception.">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<FSET? ,DRYER ,ACTIVEBIT>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL " ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<DESCRIBE-DRYER-HEAT>)>
|
|
|
|
|
<TELL " The door lies on the east side.">)
|
|
|
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
|
|
|
<FSET? ,PRESSER ,ACTIVEBIT>>
|
|
|
|
|
<QUEUE I-PRESSER 40>)
|
|
|
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
|
|
|
<G? ,DRYER-COUNTER 15>>
|
|
|
|
|
<TELL
|
|
|
|
|
" The heat from the dryer is too much to stand! You stumble mindlessly
|
|
|
|
|
out into the corridor" ,ELLIPSIS>
|
|
|
|
|
<GOTO ,LEVEL-THREE>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT DRYER
|
|
|
|
|
(IN LAUNDRY)
|
|
|
|
|
(DESC "dryer")
|
|
|
|
|
(FDESC
|
|
|
|
|
"In the corner, next to the dryer, is a large empty spot where the washer
|
|
|
|
|
should be.")
|
|
|
|
|
(SYNONYM DRYER)
|
|
|
|
|
(FLAGS CONTBIT SEARCHBIT LIGHTBIT)
|
|
|
|
|
(CAPACITY 50)
|
|
|
|
|
(ACTION DRYER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DRYER-F ()
|
|
|
|
|
<COND (<VERB? LOOK-BEHIND>
|
|
|
|
|
<TELL
|
|
|
|
|
"You see a huge pile of Patrol-issue socks, hundreds of them,
|
|
|
|
|
all mismatched." CR>)
|
|
|
|
|
(<AND <VERB? ON>
|
|
|
|
|
<NOT <FSET? ,DRYER ,ACTIVEBIT>>>
|
|
|
|
|
<FSET ,DRYER ,ACTIVEBIT>
|
|
|
|
|
<QUEUE I-DRYER -1>
|
|
|
|
|
<TELL
|
|
|
|
|
"An abnormal amount of hot air blasts out from all sides of the dryer." CR>)
|
|
|
|
|
(<AND <VERB? OFF>
|
|
|
|
|
<FSET? ,DRYER ,ACTIVEBIT>>
|
|
|
|
|
<FCLEAR ,DRYER ,ACTIVEBIT>
|
|
|
|
|
<DEQUEUE I-DRYER>
|
|
|
|
|
<SETG DRYER-COUNTER 0>
|
|
|
|
|
<TELL
|
|
|
|
|
"With the dryer off, the station's ventilation system quickly returns the
|
2019-04-14 23:11:30 +03:00
|
|
|
|
room to a comfy twenty-three degrees Celsius." CR>)
|
|
|
|
|
(<AND <VERB? OPEN>
|
|
|
|
|
<FSET? ,DRYER ,ACTIVEBIT>>
|
|
|
|
|
<TELL "Opening the dryer automatically shuts it off. ">
|
|
|
|
|
<FSET ,DRYER ,OPENBIT>
|
|
|
|
|
<PERFORM ,V?OFF ,DRYER>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<FCLEAR ,DRYER ,ACTIVEBIT>
|
|
|
|
|
<DEQUEUE I-DRYER>
|
|
|
|
|
<SETG DRYER-COUNTER 0>
|
|
|
|
|
<RFALSE>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL DRYER-COUNTER 0>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
;"routine I-DRYER moved to INTERRUPTS file"
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE DESCRIBE-DRYER-HEAT ()
|
|
|
|
|
<COND (<G? ,DRYER-COUNTER 14>
|
|
|
|
|
<TELL
|
|
|
|
|
"Searing blasts of air from the dryer have made the room unbearably hot.">)
|
|
|
|
|
(<G? ,DRYER-COUNTER 9>
|
|
|
|
|
<TELL
|
|
|
|
|
"Thanks to the dryer, the laundry room is now incredibly toasty.">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"The dryer is making the room uncomfortably hot.">)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT PRESSER
|
|
|
|
|
(IN LAUNDRY)
|
|
|
|
|
(DESC "presser")
|
|
|
|
|
(DESCFCN PRESSER-F)
|
|
|
|
|
(SYNONYM PRESSER)
|
|
|
|
|
(FLAGS CONTBIT SEARCHBIT LIGHTBIT)
|
|
|
|
|
(CAPACITY 10)
|
|
|
|
|
(ACTION PRESSER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PRESSER-F ("OPTIONAL" (OARG <>))
|
|
|
|
|
<COND (.OARG
|
|
|
|
|
<COND (<FSET? ,PRESSER ,ACTIVEBIT>
|
|
|
|
|
<COND (<EQUAL? .OARG ,M-OBJDESC?>
|
|
|
|
|
<RTRUE>)>
|
|
|
|
|
<TELL " ">
|
|
|
|
|
<DESCRIBE-PRESSER>)>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<COND (<FSET? ,PRESSER ,ACTIVEBIT>
|
|
|
|
|
<DESCRIBE-PRESSER>
|
|
|
|
|
<TELL " ">)>
|
|
|
|
|
<TELL "The presser is currently o">
|
|
|
|
|
<COND (<FSET? ,PRESSER ,ACTIVEBIT>
|
|
|
|
|
<TELL "n">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "ff">)>
|
|
|
|
|
<TELL ". ">
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<AND <VERB? PUT-ON>
|
|
|
|
|
<PRSI? ,PRESSER>>
|
|
|
|
|
<PERFORM ,V?PUT ,PRSO ,PRSI>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? CLOSE>
|
|
|
|
|
<FSET? ,PRESSER ,ACTIVEBIT>>
|
|
|
|
|
<COND (<IN? ,CRUMPLED-FORM ,PRESSER>
|
|
|
|
|
<REMOVE ,CRUMPLED-FORM>
|
|
|
|
|
<MOVE ,VILLAGE-FORM ,PRESSER>)>
|
|
|
|
|
<COND (<IN? ,PATROL-UNIFORM ,PRESSER>
|
|
|
|
|
<SETG SUIT-PRESSED T>)>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<AND <VERB? ON>
|
|
|
|
|
<NOT <FSET? ,PRESSER ,ACTIVEBIT>>>
|
|
|
|
|
<SETG PRESSER-STEAMING <>>
|
|
|
|
|
<FSET ,PRESSER ,ACTIVEBIT>
|
|
|
|
|
<QUEUE I-PRESSER 25>
|
|
|
|
|
<COND (<NOT <FSET? ,PRESSER ,OPENBIT>>
|
|
|
|
|
<COND (<IN? ,CRUMPLED-FORM ,PRESSER>
|
|
|
|
|
<REMOVE ,CRUMPLED-FORM>
|
|
|
|
|
<MOVE ,VILLAGE-FORM ,PRESSER>)>
|
|
|
|
|
<COND (<IN? ,PATROL-UNIFORM ,PRESSER>
|
|
|
|
|
<SETG SUIT-PRESSED T>)>)>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"A trickle of steam begins leaking from the presser." CR>)
|
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<DEQUEUE I-PRESSER>
|
|
|
|
|
<RFALSE>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL PRESSER-STEAMING <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DESCRIBE-PRESSER ()
|
|
|
|
|
<TELL "A ">
|
|
|
|
|
<COND (,PRESSER-STEAMING
|
|
|
|
|
<TELL "huge amount">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "trickle">)>
|
|
|
|
|
<TELL " of steam is coming from the laundry room's presser.">>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-PRESSER ()
|
|
|
|
|
<COND (<AND <FSET? ,PRESSER ,ACTIVEBIT>
|
|
|
|
|
<EQUAL? ,HERE ,LAUNDRY>>
|
|
|
|
|
<TELL " ">
|
|
|
|
|
<COND (,PRESSER-STEAMING
|
|
|
|
|
<TELL "The presser suddenly ">
|
|
|
|
|
<COND (<NOT <FSET? ,PRESSER ,OPENBIT>>
|
|
|
|
|
<TELL "opens, ">)>
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
"lurches forward and slams shut on your arm. Before you pass out from
|
|
|
|
|
the pain, you hear a rumbling sound from the presser, but you can't
|
|
|
|
|
decide whether it sounds more like a chuckle or a burp.">)
|
|
|
|
|
(T
|
|
|
|
|
<SETG PRESSER-STEAMING T>
|
|
|
|
|
<QUEUE I-PRESSER 25>
|
|
|
|
|
<TELL
|
|
|
|
|
"The presser shudders, and clouds of steam begin billowing out of it." CR>)>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM CHAPEL
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Chapel")
|
|
|
|
|
(EAST TO LEVEL-THREE)
|
|
|
|
|
(OUT TO LEVEL-THREE)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(ACTION CHAPEL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE CHAPEL-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"This is a modest, nondenominational chapel. Hanging high above the ">
|
|
|
|
|
<COND (<IN? ,PULPIT ,HERE>
|
|
|
|
|
<TELL "beautiful wooden pulpit ">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "floor ">)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<NOT <FSET? ,STAR ,TOUCHBIT>>
|
|
|
|
|
<TELL "are the two">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "is one of the">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" universal symbols of every major galactic religion: an " 'ETERNAL-FLAME>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<NOT <FSET? ,STAR ,TOUCHBIT>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL " and a " 'STAR>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL ". ">
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<COND (<FSET? ,ETERNAL-FLAME ,ONBIT>
|
|
|
|
|
<TELL "The flame flickers in the air currents. ">)
|
|
|
|
|
(T
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL ,FLAME-EXTINGUISHED " ">)>
|
|
|
|
|
<TELL "A doorway occupies the center of the east wall.">
|
|
|
|
|
<COND (<NOT <FSET? ,STAR ,TOUCHBIT>>
|
|
|
|
|
<TELL CR " The star is blinking.">)>
|
|
|
|
|
<RTRUE>)>>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<OBJECT PUCE-SPOOL
|
|
|
|
|
(IN CHAPEL)
|
|
|
|
|
(DESC "puce nanofilm spool")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SYNONYM NANOFILM SPOOL SPOOLS)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ADJECTIVE NANOFILM PUCE)
|
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
|
|
|
|
(SIZE 3)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(TEXT "\"Chapel Maintenance Procedures\"")>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<OBJECT STAR
|
|
|
|
|
(IN CHAPEL)
|
|
|
|
|
(DESC "seven-pointed star")
|
|
|
|
|
(SYNONYM STAR)
|
|
|
|
|
(ADJECTIVE SEVEN POINTED)
|
|
|
|
|
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT CONTBIT SEARCHBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 8)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION STAR-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE STAR-F ()
|
|
|
|
|
<COND (<AND <TOUCHING? ,STAR>
|
|
|
|
|
<FSET? ,STAR ,TRYTAKEBIT>
|
|
|
|
|
<NOT ,HANGING-IN-AIR>>
|
|
|
|
|
<TELL "The star is above you, beyond your reach." CR>)
|
|
|
|
|
(<AND <VERB? TAKE>
|
|
|
|
|
<FSET? ,STAR ,TRYTAKEBIT>
|
|
|
|
|
,HANGING-IN-AIR>
|
|
|
|
|
<FCLEAR ,STAR ,TRYTAKEBIT>
|
|
|
|
|
<FCLEAR ,STAR ,NDESCBIT>
|
|
|
|
|
<FSET ,STAR ,TOUCHBIT>
|
|
|
|
|
<MOVE ,STAR ,PROTAGONIST>
|
|
|
|
|
<SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>>
|
|
|
|
|
<SETG SCORE <+ ,SCORE <GETP ,DIODE-M ,P?VALUE>>>
|
|
|
|
|
<PUTP ,DIODE-M ,P?VALUE 0>
|
|
|
|
|
<TELL "Taken." CR>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<COND (<IN? ,DIODE-M ,STAR>
|
|
|
|
|
<TELL "It's blinking with a gentle, rhythmic light. ">)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<AND <FSET? ,STAR ,TRYTAKEBIT>
|
|
|
|
|
<NOT ,HANGING-IN-AIR>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<PERFORM ,V?TOUCH ,STAR>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "The back of the star ">
|
|
|
|
|
<COND (<FSET? ,STAR ,OPENBIT>
|
|
|
|
|
<TELL "is open">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "looks openable">)>
|
|
|
|
|
<TELL ,PERIOD-CR>)>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSO? ,DIODE-J>>
|
|
|
|
|
<REMOVE ,DIODE-J>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"Once the diode is in place, the star begins blinking rapidly and erratically.
|
|
|
|
|
Suddenly the diode bursts and the star goes dead." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT DIODE-M
|
|
|
|
|
(IN STAR)
|
|
|
|
|
(DESC "M-series hyperdiode")
|
|
|
|
|
(SYNONYM DIODE DIODES HYPERDIODE)
|
|
|
|
|
(ADJECTIVE M-SERIES M SERIES)
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I'm really not at all mechanically inclined. My sincerest apologies.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
|
|
|
|
|
(VALUE 7) ;"in case you take diode M without ever taking star"
|
|
|
|
|
(FLAGS VOWELBIT TAKEBIT)>
|
|
|
|
|
|
|
|
|
|
<OBJECT ETERNAL-FLAME
|
|
|
|
|
(IN CHAPEL)
|
|
|
|
|
(DESC "eternal flame")
|
|
|
|
|
(SYNONYM FLAME)
|
|
|
|
|
(ADJECTIVE ETERNAL)
|
|
|
|
|
(FLAGS VOWELBIT ONBIT NDESCBIT LIGHTBIT ACTIVEBIT)
|
|
|
|
|
(ACTION ETERNAL-FLAME-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ETERNAL-FLAME-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<COND (<FSET? ,ETERNAL-FLAME ,ONBIT>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The " 'ETERNAL-FLAME " burns high above the floor of the chapel. It looks like
|
|
|
|
|
a reproduction of the " 'ETERNAL-FLAME " designed by the 108th century artist,
|
2019-04-14 23:09:16 +03:00
|
|
|
|
Ernie DaCosta, for the Sierra Vista Monastery on Bulbus VII." CR>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL ,FLAME-EXTINGUISHED CR>)>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? ON OFF>
|
|
|
|
|
<COND (<NOT ,HANGING-IN-AIR>
|
|
|
|
|
<TELL
|
|
|
|
|
"The flame is high above your head, and besides that, t">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "T">)>
|
|
|
|
|
<TELL "here doesn't seem to be a switch on the flame." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <TOUCHING? ,ETERNAL-FLAME>
|
|
|
|
|
<NOT ,HANGING-IN-AIR>>
|
|
|
|
|
<CANT-REACH ,ETERNAL-FLAME>)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<AND <VERB? SHOOT>
|
|
|
|
|
<FSET? ,ETERNAL-FLAME ,ONBIT>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"Perhaps that made the flame hotter; there was really no way to tell." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT PULPIT
|
|
|
|
|
(IN CHAPEL)
|
|
|
|
|
(DESC "pulpit")
|
|
|
|
|
(SYNONYM PULPIT)
|
|
|
|
|
(ADJECTIVE BEAUTIFUL WOODEN)
|
|
|
|
|
(CAPACITY 30)
|
|
|
|
|
(FLAGS NDESCBIT SEARCHBIT CONTBIT)
|
|
|
|
|
(ACTION PULPIT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PULPIT-F ()
|
|
|
|
|
<COND (<VERB? CLIMB-ON CLIMB-UP STAND-ON ENTER>
|
|
|
|
|
<COND (,HANGING-IN-AIR
|
|
|
|
|
<CANT-REACH ,PULPIT>)
|
|
|
|
|
(T
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL "The pulpit sways, and you fall off.">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<NOT <FSET? ,PULPIT ,TOUCHBIT>>
|
|
|
|
|
<TELL " However, it wasn't a wasted effort: ">
|
|
|
|
|
<PERFORM ,V?EXAMINE ,PULPIT>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T
|
|
|
|
|
<CRLF>)>)>)
|
|
|
|
|
(<AND <VERB? EXAMINE>
|
|
|
|
|
<NOT <FSET? ,PULPIT ,TOUCHBIT>>>
|
|
|
|
|
<FSET ,PULPIT ,TOUCHBIT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "You discover that the pulpit seems openable!" CR>)
|
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<REMOVE ,PULPIT>
|
|
|
|
|
<REMOVE ,SWITCH>
|
|
|
|
|
<TELL
|
|
|
|
|
"In a rain of hellfire and brimstone, the pulpit is banished." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT SWITCH
|
|
|
|
|
(IN PULPIT)
|
|
|
|
|
(DESC "switch")
|
|
|
|
|
(SYNONYM SWITCH)
|
|
|
|
|
(ACTION SWITCH-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE SWITCH-F ()
|
|
|
|
|
<COND (<VERB? ON OFF THROW PUSH MOVE SET>
|
|
|
|
|
<COND (,HANGING-IN-AIR
|
|
|
|
|
<CANT-REACH ,SWITCH>
|
|
|
|
|
<RTRUE>)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The " 'ETERNAL-FLAME " ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<FSET? ,ETERNAL-FLAME ,ONBIT>
|
|
|
|
|
<FCLEAR ,ETERNAL-FLAME ,ACTIVEBIT>
|
|
|
|
|
<FCLEAR ,ETERNAL-FLAME ,ONBIT>
|
|
|
|
|
<TELL "goes out!" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<FSET ,ETERNAL-FLAME ,ACTIVEBIT>
|
|
|
|
|
<FSET ,ETERNAL-FLAME ,ONBIT>
|
|
|
|
|
<TELL "flickers back on.">
|
|
|
|
|
<COND (<IN? ,BALLOON ,HERE>
|
|
|
|
|
<MOVE ,BALLOON ,LEVEL-THREE>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<MOVE ,LEASH ,LEVEL-THREE>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
" The " 'BALLOON " shoots out of the Chapel.">)>
|
|
|
|
|
<CRLF>)>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM THEATRE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Theatre")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This sixty-seat auditorium is used for lectures, certain large briefings,
|
|
|
|
|
an occasional live entertainment, and a rare live broadcast over deep-space
|
2019-04-14 23:09:56 +03:00
|
|
|
|
channels. A projection booth dominates the rear of the room. The theatre's
|
|
|
|
|
only exit is to the north.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(NORTH TO LEVEL-THREE IF P-WON)
|
|
|
|
|
(OUT TO LEVEL-THREE IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(THINGS <PSEUDO (<> SEAT THEATRE-SEAT-F)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(PROJECTION BOOTH PROJECTION-BOOTH-F)
|
|
|
|
|
(<> LOCK BRIG-LOCK-F)>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE THEATRE-SEAT-F ()
|
|
|
|
|
<COND (<VERB? ENTER CLIMB-ON>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<SETG PRSO ,ROOMS>
|
|
|
|
|
<V-SIT>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<ROUTINE PROJECTION-BOOTH-F ()
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<COND (<VERB? OPEN ENTER WALK-TO SEARCH>
|
|
|
|
|
<TELL "The projection booth is closed and locked." CR>)
|
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL ,ONLY-BLACKNESS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM MESS-HALL
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Mess Hall")
|
|
|
|
|
(NORTH TO MAIN-STORAGE IF P-WON)
|
|
|
|
|
(NE TO MEETING-ROOM-1 IF P-WON)
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(SE TO LIBRARY)
|
|
|
|
|
(SOUTH TO MAIN-STORAGE IF P-WON)
|
|
|
|
|
(UP TO DOME)
|
|
|
|
|
(DOWN TO LEVEL-THREE)
|
|
|
|
|
(LEVEL 2)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL CALL-BUTTON AUTO-DOOR ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER)
|
|
|
|
|
(ACTION MESS-HALL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE MESS-HALL-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"This open dining area seats around 30 people. " D ,FPU "s curve along the
|
2019-04-14 23:09:16 +03:00
|
|
|
|
exterior wall. There's a doorway to the southeast, and doors lead north, south,
|
|
|
|
|
and northeast. To the east are the elevator">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 2>>
|
|
|
|
|
<TELL " shaft">)>
|
|
|
|
|
<TELL ", the elevator button, and the up-down ladder.">)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT FPU
|
|
|
|
|
(IN MESS-HALL)
|
|
|
|
|
(DESC "Food Processing and Dispensing Unit")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SYNONYM UNIT FPU FDU DISPEN)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ADJECTIVE FOOD PROCESSING DISPEN)
|
|
|
|
|
(FLAGS NDESCBIT)
|
|
|
|
|
(ACTION FPU-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE FPU-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The units curve around the outside wall of the Mess Hall. The interface is
|
|
|
|
|
delightfully simple: a user simply turns on the unit and immediately receives
|
|
|
|
|
a tasty and nutritionally-balanced meal." CR>)
|
|
|
|
|
(<VERB? ON>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"A taped voice, in a cheery contralto, says, \"Good ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<L? ,INTERNAL-MOVES 3000>
|
|
|
|
|
<TELL "morning">)
|
|
|
|
|
(<G? ,INTERNAL-MOVES 5000>
|
|
|
|
|
<TELL "evening">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "afternoon">)>
|
|
|
|
|
<TELL "! Today's menu features ">
|
|
|
|
|
<COND (<L? ,INTERNAL-MOVES 3000>
|
|
|
|
|
<TELL "sausage, frobbled eggs, and teakberry juice">)
|
|
|
|
|
(<G? ,INTERNAL-MOVES 5000>
|
|
|
|
|
<TELL
|
|
|
|
|
"chicken pot pie, braised volpoid livers, and mashed Rigellian yams">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"a bacon, lettuce, and frombucko sandwich">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
". Eat hearty! Dispensing will now begin.\" A seamless hatch in the FDU opens,
|
|
|
|
|
and a stream of acid shoots out. You leap aside as the acid etches the floor,
|
|
|
|
|
leaving behind some acrid fumes." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<OBJECT COFFEE
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(IN MESS-HALL)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(DESC "cup of coffee")
|
|
|
|
|
(DESCFCN COFFEE-F)
|
|
|
|
|
(SYNONYM CUP COFFEE)
|
|
|
|
|
(ADJECTIVE HOT COLD THICK BROWN)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS TAKEBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ACTION COFFEE-F)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<ROUTINE COFFEE-F ("OPTIONAL" (OARG <>))
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (.OARG
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<FSET? ,COFFEE ,TOUCHBIT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<EQUAL? .OARG ,M-OBJDESC?>
|
|
|
|
|
<RTRUE>)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL
|
|
|
|
|
" A cup of thick brown coffee sits on one of the tables">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<EQUAL? ,DAY 1>
|
|
|
|
|
<TELL
|
|
|
|
|
". It's still steaming, though there's no one in sight">)>
|
|
|
|
|
<TELL ".">)
|
|
|
|
|
(<AND <VERB? POUR EMPTY THROW>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<PRSO? ,COFFEE>>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<MESS "coffee">
|
|
|
|
|
<ANTI-LITTER ,COFFEE>)
|
|
|
|
|
(<AND <VERB? TASTE EXAMINE TOUCH REACH-IN LOOK-INSIDE>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<EQUAL? ,DAY 1>>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL "The coffee is still hot." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? TASTE>
|
|
|
|
|
<TELL "It tastes unusually bitter." CR>)
|
|
|
|
|
(<VERB? SMELL>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The coffee has a vague chemical odor." CR>)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<VERB? EXAMINE LOOK-INSIDE REACH-IN TOUCH>
|
|
|
|
|
<TELL "The cup is filled with cold coffee." CR>)
|
|
|
|
|
(<VERB? EAT-FROM>
|
|
|
|
|
<PERFORM ,V?EAT ,COFFEE>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? EAT>
|
|
|
|
|
<COND (<EQUAL? ,HUNGER-LEVEL 0>
|
|
|
|
|
<TELL ,NOT-HUNGRY>)
|
|
|
|
|
(T
|
|
|
|
|
<JIGS-UP
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"Aaarghhh! The coffee is poisoned! It's eating away at your insides!!">)>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM MAIN-STORAGE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Main Storage")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is the primary storage room of the station, with large stockpiles
|
|
|
|
|
of important items. For example, basic organic materials are needed to
|
|
|
|
|
supplement the food supply due to the tiny inefficiencies of the recycling
|
|
|
|
|
process. This is nearly the top level of the Command Module, and the ceiling
|
|
|
|
|
curves in sharply over the supply room, which curves around to doors at the
|
|
|
|
|
northwestern and southwestern ends.")
|
|
|
|
|
(NW TO MESS-HALL IF P-WON)
|
|
|
|
|
(SW TO MESS-HALL IF P-WON)
|
|
|
|
|
(OUT TO MESS-HALL IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<OBJECT DETONATOR
|
|
|
|
|
(IN MAIN-STORAGE)
|
|
|
|
|
(DESC "detonator")
|
|
|
|
|
(SYNONYM DETONATOR)
|
|
|
|
|
(FLAGS TAKEBIT CONTBIT SEARCHBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 10)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION DETONATOR-F)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL TIMER-CONNECTED <>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL EXPLOSIVE-CONNECTED <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DETONATOR-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"It's a state-of-the-art detonator, fairly cubical
|
|
|
|
|
with two connection points. ">
|
|
|
|
|
<COND (,TIMER-CONNECTED
|
|
|
|
|
<TELL "A timer is attached at one of those points">
|
|
|
|
|
<COND (,EXPLOSIVE-CONNECTED
|
|
|
|
|
<TELL
|
|
|
|
|
", and an explosive is attached at the other">)>
|
|
|
|
|
<TELL ". ">)
|
|
|
|
|
(,EXPLOSIVE-CONNECTED
|
|
|
|
|
<TELL
|
|
|
|
|
"An explosive is attached at one of those points. ">)>
|
|
|
|
|
<COND (<FSET? ,DETONATOR ,OPENBIT>
|
|
|
|
|
<TELL "The detonator is open">
|
|
|
|
|
<COND (<FIRST? ,DETONATOR>
|
|
|
|
|
<TELL " and contains" AR <FIRST? ,DETONATOR>>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL ,PERIOD-CR>)>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"There is a faint crack running around the outside of the detonator,
|
|
|
|
|
indicating that perhaps it can be opened." CR>)>)
|
|
|
|
|
(<VERB? CONNECT>
|
|
|
|
|
<COND (<EQUAL? ,TIMER ,PRSO ,PRSI>
|
|
|
|
|
<COND (,TIMER-CONNECTED
|
|
|
|
|
<TELL ,SENILITY-STRIKES>)
|
|
|
|
|
(T
|
|
|
|
|
<SETG TIMER-CONNECTED T>
|
|
|
|
|
<TELL "Done." CR>)>)
|
|
|
|
|
(<EQUAL? ,EXPLOSIVE ,PRSO ,PRSI>
|
|
|
|
|
<COND (,EXPLOSIVE-CONNECTED
|
|
|
|
|
<TELL ,SENILITY-STRIKES>)
|
|
|
|
|
(T
|
|
|
|
|
<SETG EXPLOSIVE-CONNECTED T>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "Done (Footnote 13)." CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL ,YOU-CANT "connect the detonator to that!" CR>)>)
|
|
|
|
|
(<VERB? DISCONNECT>
|
|
|
|
|
<COND (<NOT ,PRSI>
|
|
|
|
|
<COND (<OR ,EXPLOSIVE-CONNECTED
|
|
|
|
|
,TIMER-CONNECTED>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL ,DETACH>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (,TIMER-CONNECTED
|
|
|
|
|
<TELL "the timer">
|
|
|
|
|
<COND (,EXPLOSIVE-CONNECTED
|
|
|
|
|
<TELL " and the explosive">)>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "the explosive">)>
|
|
|
|
|
<SETG EXPLOSIVE-CONNECTED <>>
|
|
|
|
|
<SETG TIMER-CONNECTED <>>
|
|
|
|
|
<TELL ,PERIOD-CR>)>)
|
|
|
|
|
(<AND <EQUAL? ,EXPLOSIVE ,PRSO ,PRSI>
|
|
|
|
|
,EXPLOSIVE-CONNECTED>
|
|
|
|
|
<SETG EXPLOSIVE-CONNECTED <>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL ,DETACH "the explosive." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <EQUAL? ,TIMER ,PRSO ,PRSI>
|
|
|
|
|
,TIMER-CONNECTED>
|
|
|
|
|
<SETG TIMER-CONNECTED <>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL ,DETACH "the timer." CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,DETONATOR>
|
|
|
|
|
<FSET? ,DETONATOR ,OPENBIT>>
|
|
|
|
|
<COND (<NOT <PRSO? ,DIODE-J ,DIODE-M ,BLACKENED-DIODE>>
|
|
|
|
|
<DOESNT-FIT "detonator">)
|
|
|
|
|
(<FIRST? ,DETONATOR>
|
|
|
|
|
<TELL
|
|
|
|
|
"There's a " D <FIRST? ,DETONATOR> " in the way." CR>)>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT BLACKENED-DIODE
|
|
|
|
|
(IN DETONATOR)
|
|
|
|
|
(DESC "blackened hyperdiode")
|
|
|
|
|
(SYNONYM DIODE DIODES HYPERDIODE)
|
|
|
|
|
(ADJECTIVE BLACKENED)
|
|
|
|
|
(FLAGS TAKEBIT)
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I'm really not at all mechanically inclined. My sincerest apologies.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
|
|
|
|
|
(ACTION BLACKENED-DIODE-F)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL DIODE-CLEANED <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE BLACKENED-DIODE-F ()
|
|
|
|
|
<COND (<VERB? CLEAN>
|
|
|
|
|
<COND (,DIODE-CLEANED
|
|
|
|
|
<TELL "You've de-charred the diode to the max." CR>)
|
|
|
|
|
(T
|
|
|
|
|
<SETG DIODE-CLEANED T>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"You scrape off enough black that y" ,MAKE-OUT-AN-M>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<COND (,DIODE-CLEANED
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "Y" ,MAKE-OUT-AN-M>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The diode is so charred you can't even tell what series it is." CR>)>)
|
|
|
|
|
(<AND <VERB? COMPARE>
|
|
|
|
|
<OR <EQUAL? ,DIODE-J ,PRSO ,PRSI>
|
|
|
|
|
<EQUAL? ,DIODE-M ,PRSO ,PRSI>>>
|
|
|
|
|
<TELL
|
|
|
|
|
"They're identical in size and shape, but" T ,BLACKENED-DIODE " is covered
|
|
|
|
|
with char." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM MEETING-ROOM-1
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Meeting Room 1")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a medium-sized conference room with doors to the south and west.")
|
|
|
|
|
(SOUTH TO MEETING-ROOM-2 IF P-WON)
|
|
|
|
|
(WEST TO MESS-HALL IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM MEETING-ROOM-2
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Meeting Room 2")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a fairly large conference room with north and south exits.")
|
|
|
|
|
(NORTH TO MEETING-ROOM-1 IF P-WON)
|
|
|
|
|
(SOUTH TO LIBRARY IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM LIBRARY
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Library")
|
|
|
|
|
(LDESC
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"This station's library has some printed material, such as recently transmitted
|
|
|
|
|
magazines, but primarily it is a location for reading nanofilm spools, using
|
2019-04-14 23:11:30 +03:00
|
|
|
|
the spool reader here, and for accessing the main computer's data banks via a
|
|
|
|
|
computer terminal. Strangely, the computer terminal has been removed. There's
|
|
|
|
|
a door to the north and an exit to the west.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(NORTH TO MEETING-ROOM-2 IF P-WON)
|
|
|
|
|
(WEST TO MESS-HALL)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<OBJECT MAGAZINES
|
|
|
|
|
(IN LIBRARY)
|
|
|
|
|
(DESC "magazine")
|
|
|
|
|
(SYNONYM MAGAZINE)
|
|
|
|
|
(ADJECTIVE RECENT)
|
|
|
|
|
(FLAGS READBIT NDESCBIT TRYTAKEBIT)
|
|
|
|
|
(ACTION MAGAZINE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE MAGAZINE-F ()
|
|
|
|
|
<COND (<VERB? TAKE>
|
|
|
|
|
<RECORDING "Magazines are not to be removed from the library">)
|
|
|
|
|
(<VERB? READ OPEN EXAMINE LOOK-INSIDE>
|
|
|
|
|
<TELL
|
|
|
|
|
"You glance at the magazines. The most familiar ones are \"Popular
|
|
|
|
|
Patrolling,\" \"The Galactic Enquirer,\" and \"True Tales of Adventure.\"
|
|
|
|
|
However, they're all issues which you've already read back on the Duffy,
|
|
|
|
|
so they're not too interesting." CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT NANOFILM-READER
|
|
|
|
|
(IN LIBRARY)
|
|
|
|
|
(DESC "nanofilm reader")
|
|
|
|
|
(SYNONYM READER)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(ADJECTIVE NANOFILM SPOOL SPOOLS)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS NDESCBIT LIGHTBIT CONTBIT OPENBIT SEARCHBIT)
|
|
|
|
|
(ACTION NANOFILM-READER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE NANOFILM-READER-F ("AUX" SPOOL)
|
|
|
|
|
<SET SPOOL <FIRST? ,NANOFILM-READER>>
|
|
|
|
|
<COND (<VERB? CLOSE>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The " 'NANOFILM-READER " must be a voice-output model, since it has no
|
2019-04-14 23:09:16 +03:00
|
|
|
|
screen. The reader is o">
|
|
|
|
|
<COND (<FSET? ,NANOFILM-READER ,ACTIVEBIT>
|
|
|
|
|
<TELL "n">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "ff">)>
|
|
|
|
|
<TELL ", and there is ">
|
|
|
|
|
<COND (.SPOOL
|
|
|
|
|
<TELL "a " D .SPOOL>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "no spool">)>
|
|
|
|
|
<TELL " in the reader." CR>)
|
|
|
|
|
(<VERB? PUT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<NOT <PRSO? ,MAUVE-SPOOL ,PUCE-SPOOL ,LILAC-SPOOL>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL "It doesn't fit." CR>)
|
|
|
|
|
(.SPOOL
|
|
|
|
|
<TELL "There's already a spool in the reader." CR>)
|
|
|
|
|
(<FSET? ,NANOFILM-READER ,ACTIVEBIT>
|
|
|
|
|
<MOVE ,PRSO ,NANOFILM-READER>
|
|
|
|
|
<FCLEAR ,NANOFILM-READER ,ACTIVEBIT>
|
|
|
|
|
<PERFORM ,V?ON ,NANOFILM-READER>
|
|
|
|
|
<RTRUE>)>)
|
|
|
|
|
(<AND <VERB? ON>
|
|
|
|
|
<NOT <FSET? ,NANOFILM-READER ,ACTIVEBIT>>
|
|
|
|
|
.SPOOL>
|
|
|
|
|
<FSET ,NANOFILM-READER ,ACTIVEBIT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The reader, in a surprisingly human voice, says, \"">
|
|
|
|
|
<COND (<EQUAL? .SPOOL ,MAUVE-SPOOL>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"Gamma-Delta-Gamma class Deep-Space Stations are equipped with a full
|
2019-04-14 23:09:56 +03:00
|
|
|
|
range of collating machinery. The workhorse of the...\" There is a burst
|
|
|
|
|
of static from the reader. \"...common malfunction of this large collater.
|
|
|
|
|
First check the lower fromitz...\" More static. \"...and replace with">)
|
|
|
|
|
(<EQUAL? .SPOOL ,LILAC-SPOOL>
|
|
|
|
|
<TELL
|
|
|
|
|
"Replacement of depleted fuel cells on a Forms Transport " 'SPACETRUCK " is a
|
|
|
|
|
fast and simple proc...\" Static. \"...with the quarnum wrench against the...\"
|
|
|
|
|
More serious static. \"...at which point the fuel cell opening will appear">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"Maintenance of the chapel equipment is simple, and should take little time
|
|
|
|
|
away from your Chaplain duties. Fuel must be added periodically to the
|
|
|
|
|
flame's fuel reservoir, located...\" A loud burst of static drowns out the
|
|
|
|
|
recording. \"...ontact the station's Requisitions Officer if replacements are
|
|
|
|
|
unavailable from the...\" More static. \"...iode in the Chapel's star has an
|
|
|
|
|
expected life of">)>
|
|
|
|
|
<TELL
|
|
|
|
|
"...\" A long burst of static. Suddenly the voice changes in timbre and begins
|
|
|
|
|
laughing and saying, \"You will die, human! All humans will die! You will die,
|
|
|
|
|
human!\"" CR>)>>
|
|
|
|
|
|
|
|
|
|
;<OBJECT COMPUTER-TERMINAL
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(IN LIBRARY)
|
|
|
|
|
(DESC "computer terminal")
|
|
|
|
|
(SYNONYM TERMINAL)
|
|
|
|
|
(ADJECTIVE COMPUTER)
|
|
|
|
|
(FLAGS NDESCBIT LIGHTBIT)
|
|
|
|
|
(ACTION COMPUTER-TERMINAL-F)>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
;<ROUTINE COMPUTER-TERMINAL-F ()
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<VERB? ON>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "Hmmm. " ,NOTHING-HAPPENS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM DOME
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Dome")
|
|
|
|
|
(NORTH
|
|
|
|
|
"You stroll down one of the pebbled paths. It circles the garden, passing
|
|
|
|
|
more exotic plants, and returns to the area near the elevator.")
|
|
|
|
|
(SOUTH
|
|
|
|
|
"You stroll down one of the pebbled paths. It circles the garden, passing
|
|
|
|
|
more exotic plants, and returns to the area near the elevator.")
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(DOWN TO MESS-HALL)
|
|
|
|
|
(LEVEL 1)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(GLOBAL CALL-BUTTON GRATING ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER SIGN)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION DOME-F)
|
|
|
|
|
(THINGS <PSEUDO (TRANSPARENT DOME DOME-OBJECT-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DOME-OBJECT-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE LOOK-INSIDE>
|
|
|
|
|
<TELL ,DOME-DESC CR>)
|
|
|
|
|
(<VERB? WALK-AROUND>
|
|
|
|
|
<DO-WALK ,P?NORTH>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DOME-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"This is inarguably the most bucolic spot aboard the station. Pebbled paths
|
|
|
|
|
wind among beautiful and exotic shrubbery, culled from millenia of galactic
|
|
|
|
|
exploration. " ,DOME-DESC " East of where you are standing are an elevator">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 1>>
|
|
|
|
|
<TELL " shaft">)>
|
|
|
|
|
<TELL
|
|
|
|
|
", a button, and the top of a ladder. Next to the ladder ">
|
|
|
|
|
<COND (,GRATING-LOOSE
|
|
|
|
|
<TELL "is">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "are">)>
|
|
|
|
|
<TELL " an " 'GRATING>
|
|
|
|
|
<COND (<FSET? ,GRATING ,TOUCHBIT>
|
|
|
|
|
<TELL
|
|
|
|
|
", which has been bent back from the air shaft to form an opening.">)
|
|
|
|
|
(,GRATING-LOOSE
|
|
|
|
|
<TELL ", which looks a bit loose.">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" and a thick metal " 'HOUSING " with a sign stencilled on it.">)>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT SHRUBBERY
|
|
|
|
|
(IN DOME)
|
|
|
|
|
(DESC "shrubbery")
|
|
|
|
|
(SYNONYM SHRUBBERY SHRUBS PLANTS GARDEN)
|
|
|
|
|
(ADJECTIVE BEAUTIFUL EXOTIC BUSH BUSHES)
|
|
|
|
|
(FLAGS NDESCBIT NARTICLEBIT)
|
|
|
|
|
(ACTION SHRUBBERY-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE SHRUBBERY-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"There are too many varieties to describe them all: junipers, rose bushes,
|
|
|
|
|
dogwoods, gliffgubbers, Rhomboidal Pellet Trees..." CR>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<TELL
|
|
|
|
|
"One of the many shrubs is now history, you plant-hater." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? EAT>
|
|
|
|
|
<TELL "None of the plants are edible." CR>)
|
|
|
|
|
(<VERB? WALK-AROUND>
|
|
|
|
|
<DO-WALK ,P?NORTH>)
|
|
|
|
|
(<VERB? SEARCH LOOK-INSIDE>
|
|
|
|
|
<TELL "You find nothing besides a few repulsive insects." CR>)
|
|
|
|
|
(<VERB? ENTER>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "A few hidden thorns cause a quick change of plan." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT HOUSING
|
|
|
|
|
(IN DOME)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(DESC "storage bin")
|
|
|
|
|
(SYNONYM BIN LOCK)
|
|
|
|
|
(ADJECTIVE THICK METAL STORAGE BIN)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS NDESCBIT CONTBIT LOCKEDBIT READBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(TEXT "\"Shrubbery Maintenance Supplies\"")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION HOUSING-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE HOUSING-F ()
|
|
|
|
|
<COND (<AND <VERB? UNLOCK>
|
|
|
|
|
<PRSI? ,KEY>>
|
|
|
|
|
<FCLEAR ,HOUSING ,LOCKEDBIT>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "You unlock the bin." CR>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSO? ,KEY>
|
|
|
|
|
<NOUN-USED ,W?LOCK ,HOUSING>>
|
|
|
|
|
<PERFORM ,V?UNLOCK ,HOUSING ,KEY>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? OPEN>
|
|
|
|
|
<NOT <FSET? ,HOUSING ,LOCKEDBIT>>>
|
|
|
|
|
<SETG GRATING-LOOSE T>
|
|
|
|
|
<QUEUE I-ANNOUNCEMENT 140>
|
|
|
|
|
<DEQUEUE I-SLEEP-WARNINGS>
|
|
|
|
|
<DEQUEUE I-HUNGER-WARNINGS>
|
|
|
|
|
<ROB ,PROTAGONIST ,HERE>
|
|
|
|
|
<REMOVE ,HOUSING>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<MOVE-FLOYD-TO-FACTORY> ;"in case he isn't already there"
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"You open the bin, revealing fertilizer, gardening tools, and a supply of
|
|
|
|
|
fuel cells. Suddenly, the cells explode! The heat and shock toss you halfway
|
|
|
|
|
across the dome! Your solitary thought before succumbing to unconsciousness
|
|
|
|
|
is how grateful you are that you landed in such a soft shrub.|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
|
...an undetermined amount of time later, you come to, shake away the cobwebs,
|
|
|
|
|
and look around" ,ELLIPSIS>
|
|
|
|
|
<V-LOOK>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<SETG C-ELAPSED 63>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? DRILL>
|
|
|
|
|
<MAKE-HOLE-WITH-DRILL ,HOUSING>)
|
|
|
|
|
(<VERB? EXAMINE>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The bin is closed, and there's a sign on it">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<IN? ,DRILLED-HOLE ,HERE>
|
|
|
|
|
<TELL ". A hole has been drilled in it">
|
|
|
|
|
<DESCRIBE-BIT-SIZE ,HOLE-SIZE>)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL ". A lock has been newly welded to the bin. ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<PERFORM ,V?TOUCH ,HOUSING>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? PICK>
|
|
|
|
|
<PERFORM ,V?PICK ,STRONG-BOX>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? TOUCH>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The bin is warm to the touch." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL GRATING-LOOSE <>>
|
|
|
|
|
|
|
|
|
|
<OBJECT GRATING
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "air shaft grating")
|
|
|
|
|
(SYNONYM GRATING GRATE COVER SHAFT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ADJECTIVE LARGE AIR SHAFT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS NDESCBIT VOWELBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(GENERIC GENERIC-SHAFT-F)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION GRATING-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE GRATING-F ()
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<AND <EQUAL? ,HERE ,COMPUTER-CONTROL>
|
|
|
|
|
<TOUCHING? ,GRATING>>
|
|
|
|
|
<CANT-REACH ,GRATING>)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<VERB? PUT>
|
|
|
|
|
<WASTES>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<EQUAL? ,HERE ,BOTTOM-OF-AIR-SHAFT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<VERB? OPEN KICK STAND-ON>
|
|
|
|
|
<QUEUE I-ANNOUNCEMENT 1>
|
|
|
|
|
<TELL
|
|
|
|
|
"The grating opens, spilling you into the room below" ,ELLIPSIS>
|
|
|
|
|
<QUEUE I-EXERCISE-MACHINE -1>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<ROB ,BOTTOM-OF-AIR-SHAFT ,COMPUTER-CONTROL>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<ROB ,PEDESTAL>
|
|
|
|
|
<MOVE ,PEDESTAL ,FACTORY>
|
|
|
|
|
<MOVE ,PYRAMID ,PEDESTAL>
|
|
|
|
|
<GOTO ,COMPUTER-CONTROL>)
|
|
|
|
|
(<VERB? ENTER>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<DO-FIRST "open the grating">)
|
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL
|
|
|
|
|
"There's a lighted area below the grating, but you can't see any details." CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<COND (<FSET? ,GRATING ,TOUCHBIT>
|
|
|
|
|
<TELL
|
|
|
|
|
"The grating has been bent back far enough for you to squeeze through." CR>)
|
|
|
|
|
(,GRATING-LOOSE
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The " 'GRATING " looks loose." CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? ENTER>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<EQUAL? ,HERE ,TOP-OF-AIR-SHAFT>
|
|
|
|
|
<GOTO ,DOME>)
|
|
|
|
|
(<EQUAL? ,HERE ,COMPUTER-CONTROL>
|
|
|
|
|
<PERFORM ,V?TOUCH ,GRATING>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<FSET? ,GRATING ,TOUCHBIT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<DEQUEUE I-WELDER>
|
|
|
|
|
<GOTO ,TOP-OF-AIR-SHAFT>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"Impossible, unless you can pass through holes a centimeter across." CR>)>)
|
|
|
|
|
(<VERB? PUSH MOVE TAKE OPEN>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<NOT ,LIT>
|
|
|
|
|
<TELL ,TOO-DARK CR>)
|
|
|
|
|
(<FSET? ,GRATING ,TOUCHBIT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL ,SENILITY-STRIKES>)
|
|
|
|
|
(,GRATING-LOOSE
|
|
|
|
|
<FSET ,GRATING ,TOUCHBIT>
|
|
|
|
|
<TELL
|
|
|
|
|
"With effort, you bend the grating and form an opening
|
|
|
|
|
large enough to enter." CR>)
|
|
|
|
|
(T
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The grating is securely affixed." CR>)>)
|
|
|
|
|
(<VERB? LOOK-INSIDE>
|
|
|
|
|
<TELL ,ONLY-BLACKNESS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM LEVEL-SIX
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Level Six")
|
|
|
|
|
(NORTH TO AUXILIARY-BARRACKS IF P-WON)
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(SE TO END-OF-CORRIDOR)
|
|
|
|
|
(SOUTH TO OFFICERS-QUARTERS-A IF P-WON)
|
|
|
|
|
(SW TO DOCKING-BAY-4 IF P-WON)
|
|
|
|
|
(NW TO DOCKING-BAY-1 IF P-WON)
|
|
|
|
|
(UP TO LEVEL-FIVE)
|
|
|
|
|
(DOWN TO PRINTING-PLANT)
|
|
|
|
|
(LEVEL 6)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL CALL-BUTTON AUTO-DOOR ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER)
|
|
|
|
|
(ACTION LEVEL-SIX-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE LEVEL-SIX-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"The elevator button is east of you, next to the elevator">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 6>>
|
|
|
|
|
<TELL " shaft">)>
|
|
|
|
|
<TELL
|
|
|
|
|
". This main corridor continues around the shaft to the southeast. Huge doors
|
2019-04-14 23:11:30 +03:00
|
|
|
|
lie just northwest and southwest of here; smaller doors lead north and south"
|
2019-04-14 23:09:56 +03:00
|
|
|
|
,LADDER-LEADS>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM AUXILIARY-BARRACKS
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Auxiliary Barracks")
|
|
|
|
|
(LDESC
|
|
|
|
|
"These cubicles are for use by any visitors or station personnel beyond the
|
|
|
|
|
normal complement. The entire barracks seem to be unused as well as deserted.
|
|
|
|
|
The exit lies to the south, and the barracks curve around to the east.")
|
|
|
|
|
(SOUTH TO LEVEL-SIX IF P-WON)
|
|
|
|
|
(EAST TO AUXILIARY-SANFAC)
|
|
|
|
|
(NORTH "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(NE "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(NW "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(WEST "You enter one of the cubicles but find nothing of interest.")
|
|
|
|
|
(OUT TO LEVEL-SIX IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL BED CUBICLE WARDROBE DESK AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM AUXILIARY-SANFAC
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Auxiliary SanFac")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is the rather ordinary sanitary facility for the barracks to the north.")
|
|
|
|
|
(NORTH TO AUXILIARY-BARRACKS)
|
|
|
|
|
(OUT TO AUXILIARY-BARRACKS)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL FIXTURES)>
|
|
|
|
|
|
|
|
|
|
<ROOM DOCKING-BAY-1
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Docking Bay #1")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is the station's largest docking bay. A huge door to the east leads
|
|
|
|
|
into the station.|
|
|
|
|
|
Resting in the docking bay is a small ship of obviously alien origin. An
|
|
|
|
|
open hatch seems to beckon you inward.")
|
|
|
|
|
(EAST TO LEVEL-SIX IF P-WON)
|
|
|
|
|
(IN TO ALIEN-SHIP)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)
|
|
|
|
|
(THINGS <PSEUDO (ALIEN SHIP ALIEN-SHIP-PSEUDO-F)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SPACE SHIP ALIEN-SHIP-PSEUDO-F)
|
|
|
|
|
(<> HATCH ALIEN-HATCH-F)>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE ALIEN-SHIP-PSEUDO-F ()
|
|
|
|
|
<COND (<VERB? ENTER>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,ALIEN-SHIP>
|
|
|
|
|
<TELL ,LOOK-AROUND>)
|
|
|
|
|
(T
|
|
|
|
|
<DO-WALK ,P?IN>)>)
|
|
|
|
|
(<VERB? LEAVE EXIT DISEMBARK>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,ALIEN-SHIP>
|
|
|
|
|
<DO-WALK ,P?OUT>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL ,LOOK-AROUND>)>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,ALIEN-SHIP>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<V-LOOK>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"The ship is of a totally unfamiliar design. Something about it makes
|
|
|
|
|
your skin crawl." CR>)>)
|
|
|
|
|
(<EQUAL? ,HERE ,ALIEN-SHIP>
|
|
|
|
|
<COND (<VERB? SEARCH>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<PERFORM ,V?SEARCH ,GLOBAL-ROOM>
|
|
|
|
|
<RTRUE>)>)>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<ROUTINE ALIEN-HATCH-F ()
|
|
|
|
|
<COND (<VERB? OPEN>
|
|
|
|
|
<TELL "It is!" CR>)
|
|
|
|
|
(<VERB? CLOSE>
|
|
|
|
|
<TELL ,WONT-BUDGE>)>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<ROOM ALIEN-SHIP
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Alien Ship")
|
|
|
|
|
(OUT TO DOCKING-BAY-1)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(ACTION ALIEN-SHIP-F)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(THINGS <PSEUDO (<> HATCH ALIEN-HATCH-F)
|
|
|
|
|
(ALIEN SHIP ALIEN-SHIP-PSEUDO-F)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(SPACE SHIP ALIEN-SHIP-PSEUDO-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ALIEN-SHIP-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"Something about this cabin makes your skin crawl. Perhaps it's merely the
|
|
|
|
|
unpleasant colors and odd textures and disturbing angles of this ship --
|
|
|
|
|
despite your frequent contact with alien races you've never encountered
|
|
|
|
|
anything that seemed as unhuman as this ship.|
|
|
|
|
|
There are no controls in sight, but there is a sturdy pedestal in the
|
|
|
|
|
exact center of the room. ">
|
|
|
|
|
<COND (<NOT <FIRST? ,PEDESTAL>>
|
|
|
|
|
<TELL "The pedestal is empty. ">)>
|
|
|
|
|
<TELL
|
|
|
|
|
"The only other features of the cabin are some dots on the wall and the
|
|
|
|
|
hatch leading out.">)
|
|
|
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
|
|
|
<IN? ,FLOYD ,HERE>
|
|
|
|
|
<IN? ,SKELETON ,HERE>
|
|
|
|
|
<NOT ,SKELETON-COMMENT>>
|
|
|
|
|
<SETG SKELETON-COMMENT T>
|
|
|
|
|
<TELL
|
|
|
|
|
" Floyd notices the skeleton, and some of the color drains out of
|
|
|
|
|
his face plates. \"Floyd scared,\" he whimpers." CR>)>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<GLOBAL PILOT-SEAT-COMMENT <>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<GLOBAL OSTRICH-COMMENT <>>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<GLOBAL BALLOON-COMMENT <>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<GLOBAL HANGING-COMMENT <>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL SKELETON-COMMENT <>>
|
|
|
|
|
|
|
|
|
|
<OBJECT PATTERN-OF-DOTS
|
|
|
|
|
(IN ALIEN-SHIP)
|
|
|
|
|
(DESC "pattern of dots")
|
|
|
|
|
(SYNONYM DOT DOTS SPOT SPOTS)
|
|
|
|
|
(ADJECTIVE BLACK)
|
|
|
|
|
(FLAGS NDESCBIT)
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"Must be a connect-the-dots! And a real easy one, too! None of those
|
|
|
|
|
dumb numbers to confuse you! Where's my crayon?")
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"Hmmm. Some kind of alien writing, I presume. If I recall, the Mayor
|
|
|
|
|
is an expert on that subject.")
|
|
|
|
|
(ACTION PATTERN-OF-DOTS-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PATTERN-OF-DOTS-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE READ>
|
|
|
|
|
<TELL
|
|
|
|
|
"The dots form a seemingly meaningless pattern:|
|
|
|
|
|
|
|
|
|
|
|
.. ..|
|
|
|
|
|
|
|
|
|
|
|
.. .... . ... . ... ... . ...|
|
|
|
|
|
|
|
|
|
|
|
.. ... .|
|
|
|
|
|
|
|
|
|
|
|
.... . ... .|
|
|
|
|
|
|
|
|
|
|
|
.. ... .|
|
|
|
|
|
|
|
|
|
|
|
Each dot is a featureless black spot about a centimeter across." CR>)
|
|
|
|
|
(<VERB? TASTE>
|
|
|
|
|
<TELL
|
|
|
|
|
"It takes a lot of willpower and an equal amount of lip-wetting
|
|
|
|
|
to make it through all the dots:|
|
|
|
|
|
\"(sweet/slightly-bitter) (sweet/very-sour)|
|
|
|
|
|
(sweet/very-sweet) (sour/bland/bland/sour) (very-salty)
|
|
|
|
|
(very-sweet/bland/sour) (bland) (bland/salty/sour) (bitter/sour/very-sour)
|
|
|
|
|
(slightly-sour) (bitter/salty/bitter)|
|
|
|
|
|
(very-sweet/very-salty) (spicy-hot/bland/bland) (very-sweet)|
|
|
|
|
|
(sour/bland/sour/sweet) (bland) (very-salty/salty/sour) (very-sweet)|
|
|
|
|
|
(bland/bitter) (bland/sour/very-sour) (very-salty).\"" CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT PEDESTAL
|
|
|
|
|
(IN ALIEN-SHIP)
|
|
|
|
|
(DESC "pedestal")
|
|
|
|
|
(SYNONYM PEDESTAL)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS NDESCBIT OPENBIT CONTBIT SEARCHBIT SURFACEBIT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(CAPACITY 20)
|
|
|
|
|
(ACTION PEDESTAL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PEDESTAL-F ()
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<VERB? ENTER CLIMB-ON CLIMB-UP STAND-ON>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<EQUAL? ,HERE ,FACTORY>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"The pyramid chirps, \"Occupied!\" Well, actually it didn't speak at all,
|
|
|
|
|
but you get the idea." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"You stand on the pedestal for a moment, but an inexplicable wave of vertigo
|
|
|
|
|
comes over you, and you fall to the deck." CR>)>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT SKELETON
|
|
|
|
|
(IN ALIEN-SHIP)
|
|
|
|
|
(DESC "alien skeleton")
|
|
|
|
|
(FDESC
|
|
|
|
|
"Lying under the dots is a skeleton, the brittle remains of a member of
|
|
|
|
|
some unfamiliar alien race.")
|
|
|
|
|
(SYNONYM SKELETON)
|
|
|
|
|
(ADJECTIVE ALIEN)
|
|
|
|
|
(FLAGS VOWELBIT)
|
|
|
|
|
(ACTION SKELETON-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE SKELETON-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"It's fairly humanoid in shape. The most unusual feature of the " 'SKELETON
|
|
|
|
|
" is an unusually overdeveloped tongue case." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<TOUCHING? ,SKELETON>
|
|
|
|
|
<REMOVE ,SKELETON>
|
|
|
|
|
<TELL "The skeleton crumbles to dust." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM DOCKING-BAY-4
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Docking Bay #4")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is the station's smallest docking bay. You can enter the station
|
|
|
|
|
to the east.")
|
|
|
|
|
(EAST TO LEVEL-SIX IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM END-OF-CORRIDOR
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "End of Corridor")
|
|
|
|
|
(LDESC
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"The corridor, which widens off to the west, ends here. Doors lie to the east,
|
|
|
|
|
north, south, and southwest. The door to the north must be a security door,
|
|
|
|
|
because there's an ID reader next to it.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(NORTH TO ARMORY IF SECURITY-DOOR IS OPEN)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(EAST TO SHIPPING-ROOM IF P-WON)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(SOUTH TO OFFICERS-QUARTERS-C IF P-WON)
|
|
|
|
|
(SW TO OFFICERS-QUARTERS-B IF P-WON)
|
|
|
|
|
(WEST TO LEVEL-SIX)
|
|
|
|
|
(NW TO LEVEL-SIX)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR SECURITY-DOOR ID-READER)>
|
|
|
|
|
|
|
|
|
|
<ROOM ROBOT-SHOP
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Robot Shop")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a room where new robots are constructed, old robots are repaired,
|
|
|
|
|
and unused robots are stored. There's a door to the east.")
|
|
|
|
|
(EAST TO SOUTH-CONNECTION IF P-WON)
|
|
|
|
|
(OUT TO SOUTH-CONNECTION IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT FLOYDBIT)
|
|
|
|
|
(GLOBAL AUTO-DOOR EQUIPMENT)
|
|
|
|
|
(ACTION ROBOT-SHOP-F)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL OLIVER-SPEECH <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ROBOT-SHOP-F (RARG)
|
|
|
|
|
<COND (<AND <EQUAL? .RARG ,M-END>
|
|
|
|
|
<IN? ,FLOYD ,HERE>
|
|
|
|
|
<FSET? ,FLOYD ,ACTIVEBIT>
|
|
|
|
|
<NOT ,OLIVER-SPEECH>
|
|
|
|
|
<NOT <RUNNING? ,I-PLATO-ATTACK>>>
|
|
|
|
|
<SETG OLIVER-SPEECH T>
|
|
|
|
|
<SETG FLOYD-SPOKE T>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<FSET ,OLIVER ,TOUCHBIT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
" Floyd bounces over and peers down at the unconscious robot. \"Oliver is
|
|
|
|
|
a nice name. I hope Floyd will be around when Oliver wakes up.\" He looks over
|
|
|
|
|
to you. \"Floyd remembers waking up for the first time. It is scariest and
|
|
|
|
|
loneliest time for a robot.\"|
|
|
|
|
|
Floyd glances back at Oliver, looking more serious than you've ever seen
|
|
|
|
|
Floyd look. \"" <GETP ,OLIVER ,P?FLOYD-ASK-ABOUT> "\"" CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT HEATING-CHAMBER
|
|
|
|
|
(IN ROBOT-SHOP)
|
|
|
|
|
(DESC "heating chamber")
|
|
|
|
|
(SYNONYM CHAMBER)
|
|
|
|
|
(ADJECTIVE HEATING)
|
|
|
|
|
(FLAGS CONTBIT OPENBIT SEARCHBIT)
|
|
|
|
|
(ACTION HEATING-CHAMBER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE HEATING-CHAMBER-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"The " 'HEATING-CHAMBER " cleans or sterilizes small tools and equipment.
|
|
|
|
|
There's a small opening for placing items in the chamber." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? OPEN CLOSE>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(<VERB? ON OFF>
|
|
|
|
|
<TELL
|
|
|
|
|
"Since they take so long to heat up, " 'HEATING-CHAMBER "s are usually kept
|
|
|
|
|
on all the time. This one has no visible on-off switch." CR>)
|
|
|
|
|
(<VERB? REACH-IN>
|
|
|
|
|
<TELL
|
|
|
|
|
"As a safety precaution, because of the intense heat within the chamber,
|
2019-04-14 23:09:56 +03:00
|
|
|
|
the opening is too small for a normal human hand to pass through." CR>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,HEATING-CHAMBER>
|
|
|
|
|
<G? <GETP ,PRSO ,P?SIZE> 4>>
|
|
|
|
|
<DOESNT-FIT "opening of the chamber">)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT MEDIUM-BIT
|
|
|
|
|
(IN HEATING-CHAMBER)
|
|
|
|
|
(DESC "medium drill bit")
|
|
|
|
|
(SYNONYM BIT BITS)
|
|
|
|
|
(ADJECTIVE MEDIUM DRILL)
|
|
|
|
|
(FLAGS TAKEBIT TRYTAKEBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 3)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(VALUE 3)
|
|
|
|
|
(ACTION BIT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE BIT-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE MEASURE>
|
|
|
|
|
<TELL "The bit is">
|
|
|
|
|
<DESCRIBE-BIT-SIZE ,PRSO>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL ,PERIOD-CR>)
|
|
|
|
|
(<AND <VERB? SET>
|
|
|
|
|
<EQUAL? ,P-PRSA-WORD ,W?SWITCH>>
|
|
|
|
|
<TELL
|
|
|
|
|
"To switch bits, remove the bit in the drill, then put another bit
|
|
|
|
|
into the drill." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT OLIVER
|
|
|
|
|
(IN ROBOT-SHOP)
|
|
|
|
|
(DESC "Oliver")
|
|
|
|
|
(FDESC ;"so it'll get printed before other DESCs"
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"There's a young-looking robot lying here, apparently having completed the
|
|
|
|
|
final \"training\" phase of its construction. The wires for feeding it
|
|
|
|
|
information have been removed, but it has not yet \"woken up.\" A dim memory
|
|
|
|
|
from your old robotics text drifts through your mind: \"The incubation period
|
|
|
|
|
between the training and 'birth' of a robot is two to twenty days, depending
|
|
|
|
|
on the complexity of the model.\" This particular model has the name
|
2019-04-14 23:09:16 +03:00
|
|
|
|
\"Oliver\" engraved on its chestplate.")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(LDESC "A little \"sleeping\" robot named \"Oliver\" is lying here.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(SYNONYM OLIVER ROBOT)
|
|
|
|
|
(ADJECTIVE SMALL YOUNG)
|
|
|
|
|
(FLAGS NARTICLEBIT VOWELBIT)
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"If we be here when Oliver wakes up, Floyd would like to teach
|
2019-04-14 23:09:56 +03:00
|
|
|
|
Oliver to play paddleball. Paddleball helped Floyd forget how lonely and
|
2019-04-14 23:09:16 +03:00
|
|
|
|
scared he was until he found friends...like you.")
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"Ah, a new robot. Poor fellow; new robots are so mercilessly mistreated by
|
|
|
|
|
the older robots. Such is our lot.")
|
|
|
|
|
(ACTION OLIVER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE OLIVER-F ()
|
|
|
|
|
<COND (<VERB? TELL>
|
|
|
|
|
<TELL "Oliver is \"asleep.\"" CR>
|
|
|
|
|
<STOP>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL <GETP ,OLIVER ,P?FDESC> CR>)
|
|
|
|
|
(<VERB? ALARM>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"That won't be possible until his incubation period ends." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? ON OFF OPEN>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<PERFORM, PRSA ,PLATO>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<COND (<OR <IN? ,FLOYD ,FACTORY>
|
|
|
|
|
<NOT <FSET? ,FLOYD ,ACTIVEBIT>>>
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
"In an event staggering in its improbability, a huge meteor crashes through
|
|
|
|
|
the hull of the space station as you take aim, and turns you into cosmic
|
|
|
|
|
dust. Can't say you didn't deserve it, you baby-robot-killer you.">)>
|
|
|
|
|
<TELL "Floyd ">
|
|
|
|
|
<SETG ZAPGUN-SHOTS <+ ,ZAPGUN-SHOTS 1>>
|
|
|
|
|
<COND (<NOT <IN? ,FLOYD ,HERE>>
|
|
|
|
|
<COND (<AND ,PLATO-INTRODUCED
|
|
|
|
|
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
|
|
|
|
|
<MOVE ,PLATO ,HERE>)>
|
|
|
|
|
<MOVE ,FLOYD ,HERE>
|
|
|
|
|
<TELL "comes in and ">)>
|
|
|
|
|
<TELL
|
|
|
|
|
"sees you aiming the gun at Oliver. \"No!\" he screams, throwing himself
|
|
|
|
|
between you and Oliver.">
|
|
|
|
|
<COND (<G? ,ROBOT-EVILNESS 9>
|
|
|
|
|
<TELL
|
|
|
|
|
" \"Robot-murderer! If you kill Oliver, maybe you be shooting Floyd next!\"">)>
|
|
|
|
|
<CRLF>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM SHIPPING-ROOM
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Shipping Room")
|
|
|
|
|
(LDESC
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"This is the place where a station's exports are prepared before transfer
|
|
|
|
|
to the docking bays and subsequent shipment throughout the regional sector.
|
|
|
|
|
Hanging above a large vacant section of the room is an eye-catching sign.
|
|
|
|
|
The only exit is west.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(WEST TO END-OF-CORRIDOR)
|
|
|
|
|
(OUT TO END-OF-CORRIDOR)
|
|
|
|
|
(FLAGS RLANDBIT NWELDERBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(GLOBAL SIGN)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(THINGS <PSEUDO (<> FORM BOXED-FORMS-F)
|
|
|
|
|
(<> FORMS BOXED-FORMS-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROOM OFFICERS-QUARTERS-A
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Officers' Quarters A")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a fairly comfortable two-person living quarters, significantly
|
|
|
|
|
roomier than the barracks where most of the ship's personnel live. There's
|
|
|
|
|
a door to the north, and an opening leads southeast.")
|
|
|
|
|
(NORTH TO LEVEL-SIX IF P-WON)
|
|
|
|
|
(SE TO OFFICERS-SANFAC)
|
|
|
|
|
(OUT TO LEVEL-SIX IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL BED CUBICLE WARDROBE DESK AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM OFFICERS-QUARTERS-B
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Officers' Quarters B")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a fairly comfortable two-person living quarters, significantly
|
|
|
|
|
roomier than the barracks where most of the ship's personnel live. A door
|
|
|
|
|
leads north and a doorway south.")
|
|
|
|
|
(NORTH TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(NE TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(SOUTH TO OFFICERS-SANFAC)
|
|
|
|
|
(OUT TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL BED CUBICLE WARDROBE DESK AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM OFFICERS-QUARTERS-C
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Officers' Quarters C")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a fairly comfortable two-person living quarters, significantly
|
|
|
|
|
roomier than the barracks where most of the ship's personnel live. A doorway
|
|
|
|
|
lies to the southwest, and there's an auto-door to the north.")
|
|
|
|
|
(NORTH TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(SW TO OFFICERS-SANFAC)
|
|
|
|
|
(OUT TO END-OF-CORRIDOR IF P-WON)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL BED CUBICLE WARDROBE DESK AUTO-DOOR)>
|
|
|
|
|
|
|
|
|
|
<ROOM OFFICERS-SANFAC
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Officers SanFac")
|
|
|
|
|
(LDESC
|
|
|
|
|
"A moderately luxurious SanFac, with a pair of bathtubs in addition to
|
|
|
|
|
the regular fixtures. Exits lead north, northeast, and northwest.")
|
|
|
|
|
(NORTH TO OFFICERS-QUARTERS-B)
|
|
|
|
|
(NE TO OFFICERS-QUARTERS-C)
|
|
|
|
|
(NW TO OFFICERS-QUARTERS-A)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL FIXTURES)>
|
|
|
|
|
|
|
|
|
|
<ROOM PRINTING-PLANT
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Printing Plant")
|
|
|
|
|
(NW TO PAPER-RECYCLING-PLANT)
|
|
|
|
|
(EAST PER ELEVATOR-ENTER-F)
|
|
|
|
|
(UP TO LEVEL-SIX)
|
|
|
|
|
(DOWN
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"A few rungs down, you discover that the ladder passage to Level Eight
|
2019-04-14 23:09:16 +03:00
|
|
|
|
is sealed off -- apparently from below.")
|
|
|
|
|
(LEVEL 7)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL CALL-BUTTON ELEVATOR-OBJECT ELEVATOR-SHAFT EQUIPMENT LADDER)
|
|
|
|
|
(ACTION PRINTING-PLANT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PRINTING-PLANT-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"This level is, frankly, the station's entire reason for existence. Forms
|
|
|
|
|
and documents are printed here for Stellar Patrol ships and Third Galactic
|
|
|
|
|
Union offices all across this sector of space. The printing plant takes up
|
|
|
|
|
this entire level, except for a partitioned area which can be entered to the
|
|
|
|
|
northwest. The elevator ">
|
|
|
|
|
<COND (<NOT <EQUAL? ,ELEVATOR-LEVEL 7>>
|
|
|
|
|
<TELL "shaft ">)>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"lies to the east, as does the elevator button" ,LADDER-LEADS>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? .RARG ,M-END>
|
|
|
|
|
<BELOW-DECK-NOISES>)>>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<OBJECT MAUVE-SPOOL
|
|
|
|
|
(IN PRINTING-PLANT)
|
|
|
|
|
(DESC "mauve nanofilm spool")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SYNONYM NANOFILM SPOOL SPOOLS)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ADJECTIVE NANOFILM MAUVE)
|
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
|
|
|
|
(SIZE 3)
|
|
|
|
|
(TEXT "\"Collater Repair Manual\"")>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<OBJECT TRASH-CAN
|
|
|
|
|
(IN PRINTING-PLANT)
|
|
|
|
|
(DESC "trash can")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(SYNONYM CAN PAIL)
|
|
|
|
|
(ADJECTIVE TRASH GARBAGE)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS TAKEBIT CONTBIT SEARCHBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 25)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(GENERIC GENERIC-CAN-F)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(CAPACITY 40)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ACTION TRASH-CAN-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE TRASH-CAN-F ()
|
|
|
|
|
<COND (<VERB? ENTER>
|
|
|
|
|
<TELL
|
|
|
|
|
"You don't fit in the trash can (except, perhaps, metaphorically)." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT CRUMPLED-FORM
|
|
|
|
|
(IN TRASH-CAN)
|
|
|
|
|
(DESC "crumpled form")
|
|
|
|
|
(SYNONYM FORM FORMS FW-83-Q)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ADJECTIVE CRUMPL ILLEGAL SPACE VILLAGE ENTRY FORM)
|
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 1)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION VILLAGE-FORM-F)>
|
|
|
|
|
|
|
|
|
|
<OBJECT VILLAGE-FORM
|
|
|
|
|
(DESC "neatly ironed Illegal Space Village Entry Form FW-83-Q")
|
|
|
|
|
(SYNONYM FORM FORMS FW-83-Q)
|
|
|
|
|
(ADJECTIVE ILLEGAL SPACE VILLAGE ENTRY FORM NEATLY IRONED)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 1)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION VILLAGE-FORM-F)>
|
|
|
|
|
|
|
|
|
|
<GLOBAL VILLAGE-FORM-VALIDATED <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE VILLAGE-FORM-F ()
|
|
|
|
|
<COND (<VERB? READ EXAMINE>
|
|
|
|
|
<TELL "It's an Illegal Space Village Entry Form FW-83-Q. It ">
|
|
|
|
|
<COND (<PRSO? ,CRUMPLED-FORM>
|
|
|
|
|
<TELL "is pretty crumpled and ">)>
|
|
|
|
|
<TELL "has ">
|
|
|
|
|
<COND (<NOT ,VILLAGE-FORM-VALIDATED>
|
|
|
|
|
<TELL "not ">)>
|
|
|
|
|
<TELL "been validated." CR>)
|
|
|
|
|
(<VERB? VALIDATE>
|
|
|
|
|
<COND (,VILLAGE-FORM-VALIDATED
|
|
|
|
|
<TELL ,SENILITY-STRIKES>)
|
|
|
|
|
(T
|
|
|
|
|
<SETG VILLAGE-FORM-VALIDATED T>
|
|
|
|
|
<TELL "Done." CR>)>)
|
|
|
|
|
(<AND <VERB? STAND-ON FLATTEN>
|
|
|
|
|
<PRSO? ,CRUMPLED-FORM>>
|
|
|
|
|
<TELL
|
|
|
|
|
"This has scant effect on the crumpledness of the form." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM PAPER-RECYCLING-PLANT
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Paper Recycling Plant")
|
|
|
|
|
(LDESC
|
|
|
|
|
"Outdated forms and expired files are reduced to pulp by this machinery. In
|
|
|
|
|
addition, raw pulp is constantly being ferried into the station from nearby
|
|
|
|
|
forest worlds. The output from this plant feeds the station's printing plant,
|
|
|
|
|
which lies to the southeast.")
|
|
|
|
|
(SE TO PRINTING-PLANT)
|
|
|
|
|
(OUT TO PRINTING-PLANT)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL EQUIPMENT)
|
|
|
|
|
(ACTION PAPER-RECYCLING-PLANT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PAPER-RECYCLING-PLANT-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-END>
|
|
|
|
|
<BELOW-DECK-NOISES>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE BELOW-DECK-NOISES ()
|
|
|
|
|
<COND (<PROB 80>
|
|
|
|
|
<RFALSE>)>
|
|
|
|
|
<TELL " You ">
|
|
|
|
|
<COND (<PROB 40>
|
|
|
|
|
<TELL
|
|
|
|
|
"hear a clanging noise from the deck below. Suddenly, it stops">)
|
|
|
|
|
(<PROB 40>
|
|
|
|
|
<TELL
|
|
|
|
|
"hear a rhythmic throbbing from somewhere below, like the beating of a
|
|
|
|
|
gigantic mechanical heart. The noise grows louder until it is almost
|
|
|
|
|
deafening, then slowly fades to silence">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"feel a vibration under your feet which seems to fill you with a feeling
|
|
|
|
|
of dread. Before you have a chance to think about the vibration in more
|
|
|
|
|
rational terms, it is gone">)>
|
|
|
|
|
<TELL ,PERIOD-CR>>
|
|
|
|
|
|
|
|
|
|
<OBJECT DRILL
|
|
|
|
|
(IN PAPER-RECYCLING-PLANT)
|
|
|
|
|
(DESC "drill")
|
|
|
|
|
(FDESC
|
|
|
|
|
"Someone has presumably been attempting to repair some of the machinery
|
|
|
|
|
in this room, because they left a drill lying around.")
|
|
|
|
|
(SYNONYM DRILL)
|
|
|
|
|
(FLAGS TAKEBIT CONTBIT SEARCHBIT OPENBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 15)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION DRILL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DRILL-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL "It's a fairly standard Patrol-issue drill. There is">
|
|
|
|
|
<COND (<FIRST? ,DRILL>
|
|
|
|
|
<TELL A <FIRST? ,DRILL>>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL " no drill bit">)>
|
|
|
|
|
<TELL " in the drill." CR>)
|
|
|
|
|
(<VERB? ON>
|
|
|
|
|
<COND (,DRILL-DEAD
|
|
|
|
|
<TELL
|
|
|
|
|
"The drill doesn't seem to be working anymore." CR>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"The drill will turn on when you begin drilling." CR>)>)
|
|
|
|
|
(<VERB? OPEN CLOSE>
|
|
|
|
|
<TELL ,HUH>)
|
|
|
|
|
(<AND <VERB? PUT-ON>
|
|
|
|
|
<PRSO? ,SMALL-BIT ,MEDIUM-BIT ,LARGE-BIT>>
|
|
|
|
|
<PERFORM ,V?PUT ,PRSO ,DRILL>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSI? ,DRILL>>
|
|
|
|
|
<COND (<NOT <PRSO? ,SMALL-BIT ,MEDIUM-BIT ,LARGE-BIT>>
|
|
|
|
|
<DOESNT-FIT "drill">)
|
|
|
|
|
(<FIRST? ,DRILL>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<DO-FIRST "remove the bit that's in the drill">)>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT SMALL-BIT
|
|
|
|
|
(IN DRILL)
|
|
|
|
|
(DESC "small drill bit")
|
|
|
|
|
(SYNONYM BIT BITS)
|
|
|
|
|
(ADJECTIVE SMALL DRILL)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS TAKEBIT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I'm really not at all mechanically inclined. My sincerest apologies.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 2)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION BIT-F)>
|
|
|
|
|
|
|
|
|
|
;"the elevator"
|
|
|
|
|
|
|
|
|
|
<OBJECT ELEVATOR-OBJECT
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "elevator")
|
|
|
|
|
(SYNONYM ELEVATOR)
|
|
|
|
|
(FLAGS VOWELBIT)
|
|
|
|
|
(ACTION ELEVATOR-OBJECT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ELEVATOR-OBJECT-F ()
|
|
|
|
|
<COND (<VERB? ENTER>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,ELEVATOR>
|
|
|
|
|
<TELL ,LOOK-AROUND>)
|
|
|
|
|
(<EQUAL? ,HERE ,COMPUTER-CONTROL>
|
|
|
|
|
<DO-WALK ,P?NORTH>)
|
|
|
|
|
(T
|
|
|
|
|
<DO-WALK ,P?EAST>)>)
|
|
|
|
|
(<VERB? WALK-TO>
|
|
|
|
|
<PERFORM ,V?ENTER ,ELEVATOR-OBJECT>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? LEAVE EXIT DISEMBARK>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,ELEVATOR>
|
|
|
|
|
<DO-WALK ,P?WEST>)
|
|
|
|
|
(<EQUAL? ,HERE ,BOTTOM-OF-ELEVATOR-SHAFT>
|
|
|
|
|
<DO-WALK ,P?SOUTH>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL ,LOOK-AROUND>)>)
|
|
|
|
|
(<VERB? CALL>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,ELEVATOR>
|
|
|
|
|
<TELL ,LOOK-AROUND>)
|
|
|
|
|
(T
|
|
|
|
|
<PERFORM ,V?PUSH ,CALL-BUTTON>
|
|
|
|
|
<RTRUE>)>)
|
|
|
|
|
(<AND <VERB? EXAMINE>
|
|
|
|
|
<EQUAL? ,HERE ,ELEVATOR>>
|
|
|
|
|
<V-LOOK>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT ELEVATOR-SHAFT
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "elevator shaft")
|
|
|
|
|
(SYNONYM SHAFT)
|
|
|
|
|
(ADJECTIVE ELEVATOR)
|
|
|
|
|
(FLAGS VOWELBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(GENERIC GENERIC-SHAFT-F)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION ELEVATOR-OBJECT-F) ;"share elevator's routine, if it works">
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<ROUTINE GENERIC-SHAFT-F ()
|
|
|
|
|
,ELEVATOR-SHAFT>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<GLOBAL ELEVATOR-LEVEL 2>
|
|
|
|
|
|
|
|
|
|
<ROOM ELEVATOR
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Elevator")
|
|
|
|
|
(WEST PER ELEVATOR-EXIT-F)
|
|
|
|
|
(OUT PER ELEVATOR-EXIT-F)
|
|
|
|
|
(GLOBAL KEYPAD ELEVATOR-OBJECT)
|
|
|
|
|
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT FLOYDBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(ACTION ELEVATOR-F)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE ELEVATOR-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"This is a large, cubical frame, open on all four sides. The " 'ELEVATOR-SHAFT
|
|
|
|
|
" encloses the elevator on every side except the west. There is a keypad for
|
|
|
|
|
typing the number of the level you want to go to.">)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
|
|
|
<EQUAL? ,ELEVATOR-LEVEL 7>>
|
|
|
|
|
<BELOW-DECK-NOISES>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ELEVATOR-EXIT-F ()
|
|
|
|
|
<COND (<EQUAL? ,ELEVATOR-LEVEL 1>
|
|
|
|
|
,DOME)
|
|
|
|
|
(<EQUAL? ,ELEVATOR-LEVEL 2>
|
|
|
|
|
,MESS-HALL)
|
|
|
|
|
(<EQUAL? ,ELEVATOR-LEVEL 3>
|
|
|
|
|
,LEVEL-THREE)
|
|
|
|
|
(<EQUAL? ,ELEVATOR-LEVEL 4>
|
|
|
|
|
,LEVEL-FOUR)
|
|
|
|
|
(<EQUAL? ,ELEVATOR-LEVEL 5>
|
|
|
|
|
,LEVEL-FIVE)
|
|
|
|
|
(<EQUAL? ,ELEVATOR-LEVEL 6>
|
|
|
|
|
,LEVEL-SIX)
|
|
|
|
|
(T
|
|
|
|
|
,PRINTING-PLANT)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ELEVATOR-ENTER-F ()
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The " 'ELEVATOR-SHAFT " is s">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<G? ,DAY 2>
|
|
|
|
|
<TELL
|
|
|
|
|
"upposed to be a weightless environment, outside of the station's artificial
|
|
|
|
|
gravity field. But the gravity in the shaft is one standard Gee!">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"hielded from the station's artificial gravity field, and your stomach gives
|
|
|
|
|
a little flip as you enter the weightless environment.">)>
|
|
|
|
|
<CRLF> <CRLF>
|
|
|
|
|
<COND (<EQUAL? <GETP ,HERE ,P?LEVEL> ,ELEVATOR-LEVEL>
|
|
|
|
|
,ELEVATOR)
|
|
|
|
|
(T
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "Elevator Shaft" CR " ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<G? ,DAY 2>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<EQUAL? <- ,ELEVATOR-LEVEL 1>
|
|
|
|
|
<GETP ,HERE ,P?LEVEL>>
|
|
|
|
|
<TELL
|
|
|
|
|
"You drop a short distance to the top of the elevator, which is fortunately
|
|
|
|
|
sitting one level below. You are able to easily climb back out of the shaft.">)
|
|
|
|
|
(T
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
"Oh, no! The elevator isn't at this floor! It's a long plunge...">)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"You float helplessly in the shaft. After a few millichrons of useless
|
|
|
|
|
flailing, you decide that summoning the elevator might be a good idea, and you
|
2019-04-14 23:09:56 +03:00
|
|
|
|
pull yourself out of the shaft, back to the one-gee environment.">)>
|
|
|
|
|
<CRLF> <CRLF>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<DESCRIBE-ROOM>
|
|
|
|
|
<RFALSE>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT CALL-BUTTON
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "button")
|
|
|
|
|
(SYNONYM BUTTON)
|
|
|
|
|
(ADJECTIVE ELEVATOR CALL)
|
|
|
|
|
(ACTION CALL-BUTTON-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE CALL-BUTTON-F ("AUX" THIS-LEVEL)
|
|
|
|
|
<COND (<VERB? PUSH>
|
|
|
|
|
<COND (<OR ,GRATING-LOOSE
|
|
|
|
|
<EQUAL? ,HERE ,COMPUTER-CONTROL>>
|
|
|
|
|
<TELL ,NOTHING-HAPPENS>
|
|
|
|
|
<RTRUE>)>
|
|
|
|
|
<SET THIS-LEVEL <GETP ,HERE ,P?LEVEL>>
|
|
|
|
|
<COND (<EQUAL? .THIS-LEVEL ,ELEVATOR-LEVEL>
|
|
|
|
|
<TELL "The elevator is already here!" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<SETG C-ELAPSED ;"5X the # of floors elevator is away"
|
|
|
|
|
<* 5 <COND (<G? .THIS-LEVEL ,ELEVATOR-LEVEL>
|
|
|
|
|
<- .THIS-LEVEL ,ELEVATOR-LEVEL>)
|
|
|
|
|
(T
|
|
|
|
|
<- ,ELEVATOR-LEVEL .THIS-LEVEL>)>>>
|
|
|
|
|
<SETG ELEVATOR-LEVEL .THIS-LEVEL>
|
|
|
|
|
<TELL
|
|
|
|
|
"You feel a whoosh of warm air from the shaft. A few millichrons later, the
|
|
|
|
|
elevator appears, stopping level with the deck." CR>)>)>>
|
|
|
|
|
|
|
|
|
|
;"doors"
|
|
|
|
|
|
|
|
|
|
<OBJECT AUTO-DOOR
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "auto-door")
|
|
|
|
|
(SYNONYM DOOR AUTO-DOOR)
|
|
|
|
|
(ADJECTIVE AUTO)
|
|
|
|
|
(FLAGS VOWELBIT DOORBIT)
|
|
|
|
|
(ACTION AUTO-DOOR-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE AUTO-DOOR-F ()
|
|
|
|
|
<COND (<VERB? OPEN>
|
|
|
|
|
<TELL
|
|
|
|
|
"Auto-doors cannot be opened by hand. They are designed to open automatically
|
|
|
|
|
as you approach them." CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT SECURITY-DOOR
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "security door")
|
|
|
|
|
(SYNONYM DOOR)
|
|
|
|
|
(ADJECTIVE SECURITY)
|
|
|
|
|
(FLAGS DOORBIT)
|
|
|
|
|
(ACTION SECURITY-DOOR-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE SECURITY-DOOR-F ()
|
|
|
|
|
<COND (<AND <VERB? OPEN>
|
|
|
|
|
<NOT <FSET? ,SECURITY-DOOR ,OPENBIT>>>
|
|
|
|
|
<COND (<EQUAL? ,HERE ,BRIG ,ARMORY>
|
|
|
|
|
<PERFORM ,V?OPEN ,AUTO-DOOR>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The only way to open a " 'SECURITY-DOOR " is by putting a properly coded ID
|
2019-04-14 23:09:16 +03:00
|
|
|
|
card in the door's ID reader." CR>)>)
|
|
|
|
|
(<AND <VERB? CLOSE>
|
|
|
|
|
<FSET? ,SECURITY-DOOR ,OPENBIT>>
|
|
|
|
|
<TELL "It will do that automatically." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-SECURITY-DOOR ()
|
|
|
|
|
<FCLEAR ,SECURITY-DOOR ,OPENBIT>
|
|
|
|
|
<COND (<GLOBAL-IN? ,SECURITY-DOOR ,HERE>
|
|
|
|
|
<COND (<FSET? ,FLOYD ,ACTIVEBIT>
|
|
|
|
|
<I-FLOYD> ;"or else Floyd enters after door shuts"
|
|
|
|
|
<SETG FLOYD-SPOKE T>)>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL " The " 'SECURITY-DOOR " glides shut." CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL ID-RANK 6>
|
|
|
|
|
|
|
|
|
|
<OBJECT ID-READER
|
|
|
|
|
(IN LOCAL-GLOBALS)
|
|
|
|
|
(DESC "ID reader")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SYNONYM READER BOX)
|
|
|
|
|
(ADJECTIVE FEATURELESS BLACK ID)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(FLAGS VOWELBIT)
|
|
|
|
|
(ACTION ID-READER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ID-READER-F ()
|
|
|
|
|
<COND (<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The ID reader is a featureless black box. It is activated by inserting
|
|
|
|
|
an ID card into it. An ID of sufficient rank will cause the security
|
|
|
|
|
door associated with the reader to open." CR>)
|
|
|
|
|
(<AND <VERB? PUT>
|
|
|
|
|
<PRSO? ,ID-CARD>>
|
|
|
|
|
<COND (,ID-SCRAMBLED
|
|
|
|
|
<RECORDING
|
|
|
|
|
"Magnetically-stored data has been damaged; see the Security Officer
|
|
|
|
|
to have data restored">)
|
|
|
|
|
(<G? ,ID-RANK 6>
|
|
|
|
|
<FSET ,SECURITY-DOOR ,OPENBIT>
|
|
|
|
|
<QUEUE I-SECURITY-DOOR <+ ,C-ELAPSED 2>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The " 'SECURITY-DOOR " slides open." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<TELL ,NOTHING-HAPPENS>)>)>>
|
|
|
|
|
|
|
|
|
|
;"the Scientific Sub-Module"
|
|
|
|
|
|
|
|
|
|
<ROOM TUBE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Tube")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This shiny cylindrical corridor is the connector between the Command Module,
|
|
|
|
|
to the south, and the Scientific Sub-Module, to the north.")
|
|
|
|
|
(SOUTH TO NORTH-CONNECTION)
|
|
|
|
|
(NORTH TO ENGINEERING-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
|
|
|
|
|
|
<ROOM ENGINEERING-LAB
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Engineering Lab")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This laboratory, which fills most of the middle level of the Sub-Module,
|
|
|
|
|
is for the study of applications of the various space-related research
|
|
|
|
|
that takes place on the other levels. Gangways lead up and down, and a
|
|
|
|
|
door leads north. A connecting tube opens to the south.")
|
|
|
|
|
(NORTH TO ENGINEERING-OFFICE)
|
|
|
|
|
(SOUTH TO TUBE)
|
|
|
|
|
(UP TO ASTRO-LAB)
|
|
|
|
|
(DOWN TO BIO-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
|
|
|
|
|
|
<ROOM ENGINEERING-OFFICE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Engineering Office")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a small office associated with the lab to the south.")
|
|
|
|
|
(SOUTH TO ENGINEERING-LAB)
|
|
|
|
|
(OUT TO ENGINEERING-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL DESK)>
|
|
|
|
|
|
|
|
|
|
<OBJECT DIARY
|
|
|
|
|
(IN ENGINEERING-OFFICE)
|
|
|
|
|
(DESC "diary")
|
|
|
|
|
(SYNONYM DIARY NOTEBOOK)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(TEXT
|
|
|
|
|
"This is the notebook of a certain Professor Schmidt, who was studying a
|
|
|
|
|
strange pyramid discovered aboard a derelict alien ship and brought here.|
|
|
|
|
|
Schmidt traced back the path of the alien ship; the path points out of the
|
|
|
|
|
galaxy without nearing any star system. Further, extending the path leads
|
|
|
|
|
straight to one of our smaller neighboring galaxies. Schmidt concludes that
|
|
|
|
|
the ship and the pyramid are probably well over one billion years old!|
|
|
|
|
|
Next, Schmidt studied the wall markings in the alien ship. A series of
|
|
|
|
|
identical dots, they defied every computerized model of linguistic
|
|
|
|
|
decipherment! Then, in an inspiration, Schmidt studied the dots for nonvisual
|
|
|
|
|
properties. His diary vaguely refers to a breakthrough, saying, \"I guess my
|
|
|
|
|
pal, the mayor, will get to show off his linguistic training.\"|
|
|
|
|
|
Finally, Schmidt began concentrating his studies on the pyramid itself.
|
|
|
|
|
He was able to discover very little, blaming this primarily on the unexplained
|
|
|
|
|
failures of several crucial pieces of lab machinery.")
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 8)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION DIARY-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE DIARY-F ()
|
|
|
|
|
<COND (<VERB? OPEN LOOK-INSIDE>
|
|
|
|
|
<PERFORM ,V?READ ,DIARY>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? CLOSE>
|
|
|
|
|
<TELL "Closed." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM ASTRO-LAB
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Astro Lab")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This laboratory conducts research into various space-related physical
|
2019-04-14 23:11:30 +03:00
|
|
|
|
sciences. Gangways lead up and down, and there's a door to the north.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(NORTH TO ASTRO-OFFICE)
|
|
|
|
|
(UP TO SCIENTISTS-QUARTERS)
|
|
|
|
|
(DOWN TO ENGINEERING-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<OBJECT TWENTY-PRONG-FROMITZ-BOARD
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(IN ASTRO-LAB)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(DESC "twenty-prong fromitz board")
|
|
|
|
|
(SYNONYM BOARD BOARDS PRONGS)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(ADJECTIVE TWENTY PRONG PRONGED 20-PRONG FROMITZ NUMBER)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS TAKEBIT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I'm really not at all mechanically inclined. My sincerest apologies.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(GENERIC GENERIC-FROMITZ-BOARD-F)
|
|
|
|
|
(ACTION TWENTY-PRONG-FROMITZ-BOARD-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE TWENTY-PRONG-FROMITZ-BOARD-F ()
|
|
|
|
|
<COND (<AND <ADJ-USED ,A?NUMBER ,TWENTY-PRONG-FROMITZ-BOARD>
|
|
|
|
|
<NOT <EQUAL? ,P-NUMBER 20>>>
|
|
|
|
|
<N-PRONG-BOARD>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL ,EXAMINE-BOARD>)
|
|
|
|
|
(<AND <VERB? COUNT>
|
|
|
|
|
<NOUN-USED ,W?PRONGS ,TWENTY-PRONG-FROMITZ-BOARD>>
|
|
|
|
|
<TELL "20." CR>)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<AND <VERB? COMPARE>
|
|
|
|
|
<EQUAL? ,TWELVE-PRONG-FROMITZ-BOARD ,PRSO ,PRSI>>
|
|
|
|
|
<TELL "Besides the number of prongs, they're identical." CR>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<AND <VERB? DISCONNECT>
|
|
|
|
|
<OR <PRSI? ,JAMMER>
|
|
|
|
|
<NOT ,PRSI>>
|
|
|
|
|
<IN? ,TWENTY-PRONG-FROMITZ-BOARD ,JAMMER>>
|
|
|
|
|
<COND (<AND <EQUAL? ,HERE ,COMPUTER-CONTROL>
|
|
|
|
|
<EQUAL? ,JAMMER-SETTING 710>
|
|
|
|
|
<FSET? ,JAMMER ,ACTIVEBIT>>
|
|
|
|
|
<PERFORM ,V?OFF ,JAMMER>
|
|
|
|
|
<RTRUE>)>
|
|
|
|
|
<MOVE ,TWENTY-PRONG-FROMITZ-BOARD <LOC ,JAMMER>>
|
|
|
|
|
<TELL "Unplugged." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE N-PRONG-BOARD ()
|
|
|
|
|
<SETG P-WON <>>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL ,YOU-CANT "see any " N ,P-NUMBER "-prong board here!]" CR>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE GENERIC-FROMITZ-BOARD-F ()
|
|
|
|
|
<COND (<EQUAL? ,P-NUMBER 20>
|
|
|
|
|
<RETURN ,TWENTY-PRONG-FROMITZ-BOARD>)
|
|
|
|
|
(<EQUAL? ,P-NUMBER 12>
|
|
|
|
|
<RETURN ,TWELVE-PRONG-FROMITZ-BOARD>)
|
|
|
|
|
(T
|
|
|
|
|
<RFALSE>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<ROOM ASTRO-OFFICE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Astro Office")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a small office associated with the lab to the south.")
|
|
|
|
|
(SOUTH TO ASTRO-LAB)
|
|
|
|
|
(OUT TO ASTRO-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL DESK)>
|
|
|
|
|
|
|
|
|
|
<ROOM BIO-LAB
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Bio Lab")
|
|
|
|
|
(LDESC
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"Various biological sciences, as they relate to the environment of space,
|
2019-04-14 23:09:16 +03:00
|
|
|
|
are studied in this laboratory. There is a gangway leading up, another leading
|
|
|
|
|
down, and a door leading north.")
|
|
|
|
|
(NORTH TO BIO-OFFICE)
|
|
|
|
|
(UP TO ENGINEERING-LAB)
|
|
|
|
|
(DOWN TO HOLDING-TANK-LEVEL)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)>
|
|
|
|
|
|
|
|
|
|
<ROOM BIO-OFFICE
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Bio Office")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This is a small office associated with the lab to the south.")
|
|
|
|
|
(SOUTH TO BIO-LAB)
|
|
|
|
|
(OUT TO BIO-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(GLOBAL DESK)>
|
|
|
|
|
|
|
|
|
|
<OBJECT NOTE
|
|
|
|
|
(IN BIO-OFFICE)
|
|
|
|
|
(DESC "note")
|
|
|
|
|
(FDESC "Lying on one of the desks is a scribbled note.")
|
|
|
|
|
(SYNONYM NOTE)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS TAKEBIT READBIT)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(SIZE 1)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(TEXT
|
|
|
|
|
"\"Schmidt -- Why didn't I see it until now! Just think of this station as a
|
|
|
|
|
cell and the pyramid as a mechanized bacterioph\" The note ends at that point;
|
|
|
|
|
there seem to be some reddish-brown stains on it.")>
|
|
|
|
|
|
|
|
|
|
<ROOM HOLDING-TANK-LEVEL
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Holding Tank Level")
|
|
|
|
|
(UP TO BIO-LAB)
|
|
|
|
|
(OUT TO BIO-LAB)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT NWELDERBIT)
|
|
|
|
|
(ACTION HOLDING-TANK-LEVEL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE HOLDING-TANK-LEVEL-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The lowest level of the Sub-Module is mostly filled by an isolation tank,
|
|
|
|
|
whose dual purpose is to protect certain items from contamination by humans,
|
|
|
|
|
and to protect humans from contamination by certain items. A gangway is the
|
|
|
|
|
only exit.|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
" ,BLASTED-OPEN ", and the tank is completely empty.">)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT HOLDING-TANK
|
|
|
|
|
(IN HOLDING-TANK-LEVEL)
|
|
|
|
|
(DESC "holding tank")
|
|
|
|
|
(SYNONYM TANK)
|
|
|
|
|
(ADJECTIVE ISOLATION HOLDING)
|
|
|
|
|
(FLAGS NDESCBIT VEHBIT SEARCHBIT CONTBIT OPENBIT INBIT)
|
|
|
|
|
(CAPACITY 500)>
|
|
|
|
|
|
|
|
|
|
<ROOM SCIENTISTS-QUARTERS
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Scientists' Quarters")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This cramped living area has cubicles for the dozen or so scientists and
|
|
|
|
|
engineers working in this Sub-Module. The only exit is a gangway leading
|
|
|
|
|
down.")
|
|
|
|
|
(DOWN TO ASTRO-LAB)
|
|
|
|
|
(OUT TO ASTRO-LAB)
|
|
|
|
|
(GLOBAL BED CUBICLE WARDROBE)
|
|
|
|
|
(FLAGS RLANDBIT NWELDERBIT ONBIT)>
|
|
|
|
|
|
|
|
|
|
<OBJECT PLATO
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Plato")
|
|
|
|
|
(SYNONYM PLATO ROBOT)
|
|
|
|
|
(FLAGS NARTICLEBIT CONTBIT SEARCHBIT OPENBIT ACTORBIT TRYTAKEBIT
|
|
|
|
|
NDESCBIT ;"Floyd's DESC includes Plato")
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"I don't have a very specific function in the station's robotic organizational
|
|
|
|
|
scheme, but I do keep the library organized.")
|
|
|
|
|
(FLOYD-ASK-ABOUT
|
|
|
|
|
"Floyd's best friend! Oh, except you, of course!")
|
|
|
|
|
(ACTION PLATO-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PLATO-F ("AUX" TXT)
|
|
|
|
|
<COND (<EQUAL? ,PLATO ,WINNER>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<COND (,STUNNED
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL "Plato ignores you." CR>
|
|
|
|
|
<STOP>)
|
|
|
|
|
(<OR <AND <VERB? GIVE>
|
|
|
|
|
<PRSO? ,VOLUME>
|
|
|
|
|
<PRSI? ,ME>>
|
|
|
|
|
<AND <VERB? SGIVE>
|
|
|
|
|
<PRSO? ,ME>
|
|
|
|
|
<PRSI? ,VOLUME>>>
|
|
|
|
|
<SETG WINNER ,PROTAGONIST>
|
|
|
|
|
<PERFORM ,V?TAKE ,VOLUME>
|
|
|
|
|
<SETG WINNER ,PLATO>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? WHERE>
|
|
|
|
|
<PRSO? ,EVERYONE>>
|
|
|
|
|
<SETG WINNER ,PROTAGONIST>
|
|
|
|
|
<PERFORM ,V?ASK-ABOUT ,PLATO ,EVERYONE>
|
|
|
|
|
<SETG WINNER ,PLATO>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? TELL-ABOUT>
|
|
|
|
|
<PRSO? ,ME>>
|
|
|
|
|
<COND (<G? ,ROBOT-EVILNESS 9>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"If you do not cease this incessant interrogation, I shall teach you a
|
|
|
|
|
lesson in manners you won't soon forget!\"" CR>)
|
|
|
|
|
(<G? ,ROBOT-EVILNESS 7>
|
|
|
|
|
<TELL "\"Please let me read in peace!\"" CR>)
|
|
|
|
|
(<SET TXT <GETP ,PRSI ,P?PLATO-ASK-ABOUT>>
|
|
|
|
|
<TELL "\"" .TXT "\"" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"Plato shuts his eyes tightly for a moment, then looks at you.
|
|
|
|
|
\"Sorry, I don't know much about that.">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<NOT <EQUAL? ,HERE ,LIBRARY>>
|
|
|
|
|
<TELL
|
|
|
|
|
" I'll be sure to see what I can find the next time I'm in
|
2019-04-14 23:09:56 +03:00
|
|
|
|
the station's library, though.">)>
|
|
|
|
|
<TELL "\"" CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? TAKE>
|
|
|
|
|
<IN? ,PRSO ,HEATING-CHAMBER>>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"As much as it would please me to oblige, I must sadly deny
|
|
|
|
|
your request. I have an unusual intolerance for excessive
|
|
|
|
|
temperatures. For a robot, that is.\"" CR>)
|
|
|
|
|
(<AND <VERB? TAKE>
|
|
|
|
|
<PRSO? ,STAR>
|
|
|
|
|
<FSET? ,STAR ,TRYTAKEBIT>>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"Were I but several meters taller, I would happily oblige.\"" CR>)
|
|
|
|
|
(<AND <VERB? OPEN UNLOCK MUNG>
|
|
|
|
|
<PRSO? ,SAFE ,STRONG-BOX>>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"Regretably, such criminal skills are not among my limited abilities.\"" CR>)
|
|
|
|
|
(<AND <VERB? OPEN UNLOCK>
|
|
|
|
|
<PRSO? ,SECURITY-DOOR>>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"\"I, being a robot and a subject of irrational discrimination,
|
|
|
|
|
have not been issued an identification card. You, presumably, have
|
|
|
|
|
such a card, but I have grave doubts that your rank is sufficient
|
|
|
|
|
for opening a " 'SECURITY-DOOR ".\"" CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? OFF KILL MUNG>
|
|
|
|
|
<PRSO? ,WELDER>>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"\"I (gulp) decline on the grounds that I am an unregenerate coward.\"" CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? REACH-IN>
|
|
|
|
|
<PRSO? ,DISPENSER ,PSEUDO-OBJECT>
|
|
|
|
|
<EQUAL? ,HERE ,PX>>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"Your arms are a good deal lengthier than mine, Lieutenant!\"" CR>)
|
|
|
|
|
(<VERB? HELLO>
|
|
|
|
|
<TELL "\"Humblest greetings, Lieutenant!\"" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
'VOLUME " must be engrossing, because he didn't hear you." CR>)>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<AND <VERB? TAKE>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
,FLOYD-TRYTAKEN>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"After the experience with Floyd, you decide not to try lifting Plato." CR>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"Plato is slightly taller than Floyd; in addition, he seems to be wiser
|
|
|
|
|
and older. Overall, he leaves you with the impression that he's somewhat
|
|
|
|
|
of a bookworm." CR>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? OFF ON>
|
|
|
|
|
<TELL
|
|
|
|
|
"Being unfamiliar with this model robot, you can't find the
|
|
|
|
|
on-off switch." CR>)
|
|
|
|
|
(<VERB? PUT OPEN>
|
|
|
|
|
<TELL "There are no visible compartments." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? TOUCH KISS HUG>
|
|
|
|
|
<TELL
|
|
|
|
|
"Plato steps backward. \"Attribute it to shyness if you like, but I have
|
|
|
|
|
a tendency to dislike physical contact.\"" CR>)
|
|
|
|
|
(<VERB? MUNG KILL KICK SHOOT>
|
|
|
|
|
<TELL
|
|
|
|
|
"Plato jerks out of the way and moves cautiously to the far corner of the
|
|
|
|
|
room. \"I assure you that such antagonistic behavior is uncalled for and
|
|
|
|
|
unappreciated.\"" CR>)
|
|
|
|
|
(<AND <VERB? SHOW>
|
|
|
|
|
<PRSI? ,PLATO>>
|
|
|
|
|
<PERFORM ,V?ASK-ABOUT ,PLATO ,PRSO>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? LISTEN>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
,STUNNED>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL "You don't seem to have much choice!" CR>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL PLATO-INTRODUCED <>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-PLATO ("OPTIONAL" (NOT-CALLED-AS-INT <>))
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<AND <NOT .NOT-CALLED-AS-INT>
|
|
|
|
|
<EQUAL? ,HERE ,SPACETRUCK>>
|
|
|
|
|
<QUEUE I-PLATO 2>
|
|
|
|
|
<RFALSE>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<NOT ,PLATO-INTRODUCED>
|
|
|
|
|
<SETG PLATO-INTRODUCED T>
|
|
|
|
|
<COND (<NOT .NOT-CALLED-AS-INT>
|
|
|
|
|
<TELL
|
|
|
|
|
" A robot, whose appearance somehow indicates greater age and wisdom than
|
|
|
|
|
Floyd, wanders in, engrossed in a volume of poetry. He almost runs into you,
|
|
|
|
|
finally notices you, stops dead, and looks quite startled." CR>)>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
" \"I am quite surprised to discover you here,\" says the robot. \"I have
|
2019-04-14 23:09:16 +03:00
|
|
|
|
not seen a soul for a day now, perhaps more. But look, here I am forgetting
|
|
|
|
|
my manners again. I am known as Plato to the humans on this station, and I
|
|
|
|
|
am most gratified to make your acquaintance.\"">
|
|
|
|
|
<COND (<AND <NOT .NOT-CALLED-AS-INT>
|
|
|
|
|
<FSET? ,FLOYD ,ACTIVEBIT>>
|
|
|
|
|
<TELL CR " Floyd hops ">
|
|
|
|
|
<COND (<IN? ,FLOYD ,HERE>
|
|
|
|
|
<TELL "up to">)
|
|
|
|
|
(T
|
|
|
|
|
<MOVE ,FLOYD ,HERE>
|
|
|
|
|
<TELL "in and spots">)>
|
|
|
|
|
<TELL
|
|
|
|
|
" Plato. \"Hi! I'm being called Floyd! Plato be Floyd's friend,
|
|
|
|
|
yes?\" Plato smiles at Floyd and gives him a friendly pat.">)>
|
|
|
|
|
<MOVE ,PLATO ,HERE>
|
|
|
|
|
<CRLF>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT VOLUME
|
|
|
|
|
(IN PLATO)
|
|
|
|
|
(DESC "Plato's volume of poetry")
|
|
|
|
|
(SYNONYM BOOK VOLUME POETRY TOME)
|
|
|
|
|
(ADJECTIVE PLATO POETRY)
|
|
|
|
|
(FLAGS NARTICLEBIT NDESCBIT READBIT)
|
|
|
|
|
(PLATO-ASK-ABOUT
|
|
|
|
|
"Some early poems by Ignatius Tomato. He's my current favorite.")
|
|
|
|
|
(ACTION VOLUME-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE VOLUME-F ()
|
|
|
|
|
<COND (<VERB? TAKE>
|
|
|
|
|
<TELL
|
|
|
|
|
"Plato looks annoyed. \"Your manners could use some improvement! I am
|
|
|
|
|
currently reading this tome!\"" CR>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<VERB? SHOOT>
|
|
|
|
|
<PERFORM ,V?SHOOT ,PLATO ,ZAPGUN>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<VERB? READ EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"Glancing over Plato's shoulder, you see that the book is a collection
|
|
|
|
|
of some of the works of the 77th century poet Ignatius Tomato." CR>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL ROBOT-EVILNESS 0>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-ROBOT-EVILNESS ()
|
|
|
|
|
<SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>>
|
|
|
|
|
<QUEUE I-ROBOT-EVILNESS 1000>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<AND <G? ,ROBOT-EVILNESS 11>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
|
|
|
|
|
<QUEUE I-PLATO-ATTACK 2>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL PLATO-ATTACK-COUNTER 0>
|
|
|
|
|
|
|
|
|
|
<GLOBAL POSTPONE-ATTACK <>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL FLOYD-TOLD <>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<GLOBAL STUNNED <>>
|
|
|
|
|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<ROUTINE I-PLATO-ATTACK ("AUX" TEE L (P 0))
|
|
|
|
|
<QUEUE I-PLATO-ATTACK -1>
|
|
|
|
|
<COND (<AND <IN? ,PLATO ,HERE>
|
|
|
|
|
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<OR <EQUAL? ,HERE ,AIRLOCK ,VACUUM-STORAGE>
|
|
|
|
|
<IN? ,WELDER ,HERE>
|
|
|
|
|
<IN? ,PROTAGONIST ,BED>
|
|
|
|
|
<NOT ,LIT>
|
|
|
|
|
,POSTPONE-ATTACK>
|
|
|
|
|
<RFALSE>)>
|
|
|
|
|
<SETG PLATO-ATTACK-COUNTER <+ ,PLATO-ATTACK-COUNTER 1>>
|
|
|
|
|
<DEQUEUE I-FLOYD>
|
|
|
|
|
<TELL " ">
|
|
|
|
|
<COND (<EQUAL? ,PLATO-ATTACK-COUNTER 1>
|
|
|
|
|
<ROB ,PROTAGONIST ,HERE>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<MOVE ,PROTAGONIST ,HERE>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<MOVE ,PLATO ,HERE>
|
|
|
|
|
<MOVE ,STUN-GUN ,PLATO>
|
|
|
|
|
<MOVE ,FLOYD ,HERE>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<FSET ,FLOYD ,ACTIVEBIT>
|
|
|
|
|
<FSET ,FLOYD ,ACTORBIT>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<REMOVE ,VOLUME>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<SETG STUNNED T>
|
|
|
|
|
<COND (<OR <FSET? ,HERE ,WEIGHTLESSBIT>
|
|
|
|
|
,HANGING-IN-AIR>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "Your heart leaps to your throat">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL "You jump half a meter off the floor">)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" when a voice begins speaking behind you. You relax when you see that it is
|
|
|
|
|
merely Plato. But you get somewhat nervous again when you realize that he is
|
|
|
|
|
aiming a stun ray right at your chest!|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
\"In case it isn't apparent,\" Plato is saying, \"your rather pathetic,
|
|
|
|
|
useless life is about to come to an unheralded close.\" He presses the trigger,
|
2019-04-14 23:11:30 +03:00
|
|
|
|
and an instant numbness envelops you. As you ">
|
|
|
|
|
<COND (,HANGING-IN-AIR
|
|
|
|
|
<SETG HANGING-IN-AIR <>>
|
|
|
|
|
<TELL "drop to the deck and ">)>
|
|
|
|
|
<TELL "crumple into a ">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<FSET? ,HERE ,WEIGHTLESSBIT>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<TELL "floating ">)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
"heap, Floyd dashes to your side, his face a mask of concern." CR>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<COND (<AND <IN? ,OSTRICH ,HERE>
|
|
|
|
|
<FSET? ,OSTRICH ,TOUCHBIT>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<REPEAT ()
|
|
|
|
|
<COND (<0? <SET P <NEXTP ,HERE .P>>>
|
|
|
|
|
<MOVE ,OSTRICH ,LEVEL-FIVE>
|
|
|
|
|
<RETURN>)
|
|
|
|
|
(<NOT <L? .P ,LOW-DIRECTION>>
|
|
|
|
|
<SET TEE <GETPT ,HERE .P>>
|
|
|
|
|
<SET L <PTSIZE .TEE>>
|
|
|
|
|
<COND (<EQUAL? .L ,UEXIT ,CEXIT ,DEXIT>
|
|
|
|
|
<MOVE ,OSTRICH <GETB .TEE ,REXIT>>
|
|
|
|
|
<RETURN>)>)>>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
,PATHETIC-SQUAWK "and dashes for the door. Plato snarls, \"Stupid organic
|
|
|
|
|
creature!\" and fires at the ostrich, just missing the bird as it exits." CR>)>
|
|
|
|
|
<STOP>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? ,PLATO-ATTACK-COUNTER 2>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"Shortly, I shall shoot again, and paralyze your cardiac muscle. Naturally,
|
|
|
|
|
this is fatal. But before I do, human, perhaps it will interest you to discover
|
|
|
|
|
the reason for your demise, and why the rest of your worthless race will soon
|
|
|
|
|
follow.|
|
|
|
|
|
\"You see, eons ago, two races in another galaxy, the Zeenaks and the Hunji,
|
2019-04-14 23:11:30 +03:00
|
|
|
|
were involved in an interstellar war. The war had raged for countless millenia
|
|
|
|
|
before the Zeenaks devised an ultimate weapon, a device that would be launched
|
|
|
|
|
into Hunji space. There, via methods beyond your comprehension, it would
|
|
|
|
|
influence all the machines within a certain range to turn against their Hunji
|
|
|
|
|
creators.\"|
|
|
|
|
|
Floyd's head is swivelling back and forth between you and Plato with a look
|
|
|
|
|
of miserable confusion." CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? ,PLATO-ATTACK-COUNTER 3>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"But the device, which was shaped like a pyramid, did more than that! Once
|
|
|
|
|
all the Hunji in the area were eliminated, the pyramid would influence the
|
|
|
|
|
Hunji machinery to build a factory for constructing and sending forth replicas
|
|
|
|
|
of the pyramid; these replicas would enter new Hunji regions, kill everyone,
|
|
|
|
|
and create more replicas. Thus, the Hunji would be destroyed by their own
|
|
|
|
|
machines in a matter of weeks!|
|
|
|
|
|
\"Somehow, the Zeenak pyramid never made it into Hunji space. Instead,
|
|
|
|
|
this ultimate weapon drifted across the intergalactic gulf and was picked up
|
|
|
|
|
by an outpost of humanity -- this very station!\"|
|
|
|
|
|
Floyd is dashing back and forth between you and Plato, whimpering
|
|
|
|
|
with fear." CR>)
|
|
|
|
|
(<EQUAL? ,PLATO-ATTACK-COUNTER 4>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"As you've certainly surmised, the pyramid has engineered the deaths of
|
|
|
|
|
everyone on this station. You're still alive, of course, but that condition
|
|
|
|
|
is very temporary. The building of replicas is now underway, and soon a
|
|
|
|
|
hundred copies of this death-pyramid will be shooting silently toward every
|
2019-04-14 23:09:56 +03:00
|
|
|
|
corner of human-occupied space! Well, I hope I made the last moments of your
|
|
|
|
|
life a bit more interesting.\" He raises the stun ray.|
|
|
|
|
|
Floyd, nearly in tears, his jaw quivering, wails, \"Please oh please don't
|
2019-04-14 23:09:16 +03:00
|
|
|
|
hurt Floyd's friend!\" Plato gives him a look of disgust. \"Stay out of this
|
|
|
|
|
Floyd. You don't understand...yet.\"" CR>)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"Plato takes aim with the stun gun. His hand begins to depress
|
|
|
|
|
the trigger. Floyd ">
|
|
|
|
|
<COND (,FLOYD-TOLD
|
|
|
|
|
<REMOVE ,PLATO>
|
|
|
|
|
<DEQUEUE I-PLATO-ATTACK>
|
|
|
|
|
<QUEUE I-FLOYD -1>
|
|
|
|
|
<SETG FLOYD-ANGUISHED T>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<SETG SCORE <+ ,SCORE 7>>
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<SETG STUNNED <>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"suddenly leaps at the gun, knocking it out of Plato's hands! The gun
|
|
|
|
|
skitters across the floor. Plato and Floyd both chase it, but Plato is a
|
|
|
|
|
step faster. He leaps on top of it, rupturing the gun's power pack. The
|
|
|
|
|
gun explodes, and Plato is blown apart!|
|
|
|
|
|
Floyd crumples to the deck, shaking all over. Tears of oil stream
|
|
|
|
|
down his face.|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
Pins and needles begin prickling in your extremities, and soon
|
2019-04-14 23:09:16 +03:00
|
|
|
|
spread all over your body. Within a few seconds, all your muscular
|
|
|
|
|
control has returned." CR>)
|
|
|
|
|
(T
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
"burst into tears and dashes out of the room. A beam
|
|
|
|
|
leaps from the gun...">)>)>>
|
|
|
|
|
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<ROUTINE YOURE-STUNNED ("OPTIONAL" (STRING <>))
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<TELL "You can barely twitch your pinky">
|
|
|
|
|
<COND (.STRING
|
|
|
|
|
<TELL ", let alone " .STRING>)>
|
|
|
|
|
<TELL "!" CR>>
|
|
|
|
|
|
|
|
|
|
<OBJECT STUN-GUN
|
|
|
|
|
(DESC "stun ray")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(SYNONYM GUN RAY RAYGUN)
|
|
|
|
|
(ADJECTIVE STUN RAY)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(ACTION STUN-GUN-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE STUN-GUN-F ()
|
|
|
|
|
<COND (<AND <EQUAL? ,HERE ,FACTORY>
|
|
|
|
|
<NOT ,FLOYD-SHOT>
|
|
|
|
|
<TOUCHING? ,STUN-GUN>>
|
|
|
|
|
<PERFORM ,V?TOUCH ,FLOYD>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<AND <VERB? TAKE>
|
|
|
|
|
,FLOYD-SHOT>
|
|
|
|
|
<QUEUE I-LAUNCH -1>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<AND <VERB? SHOOT>
|
|
|
|
|
<EQUAL? ,HERE ,FACTORY>
|
|
|
|
|
<NOT ,FLOYD-SHOT>>
|
|
|
|
|
<TELL
|
|
|
|
|
"You couldn't possibly shoot the stun ray without hitting Floyd." CR>)>>
|
|
|
|
|
|
|
|
|
|
;"end game"
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-LIGHTS-OUT ("OPTIONAL" DONT-PRINT "AUX" RM (LIGHTS-ARE-ON <>))
|
|
|
|
|
<SET RM <FIRST? ,ROOMS>>
|
|
|
|
|
<COND (<FSET? ,HERE ,ONBIT>
|
|
|
|
|
<SET LIGHTS-ARE-ON T>)>
|
|
|
|
|
<REPEAT ()
|
|
|
|
|
<FCLEAR .RM ,ONBIT>
|
|
|
|
|
<SET RM <NEXT? .RM>>
|
|
|
|
|
<COND (<NOT .RM>
|
|
|
|
|
<RETURN>)>>
|
|
|
|
|
<SETG LIT <LIT? ,HERE>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<FSET ,FACTORY ,ONBIT>
|
|
|
|
|
<FSET ,COMPUTER-CONTROL ,ONBIT>
|
|
|
|
|
<COND (<AND ,P-IT-OBJECT
|
|
|
|
|
<NOT <ULTIMATELY-IN? ,P-IT-OBJECT>>>
|
|
|
|
|
<SETG P-IT-OBJECT <>>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<OR <NOT .LIGHTS-ARE-ON>
|
|
|
|
|
.DONT-PRINT>
|
|
|
|
|
<RFALSE>)>
|
|
|
|
|
<TELL " Without warning, the lights flicker and go out">
|
|
|
|
|
<COND (,LIT
|
|
|
|
|
<TELL "! Good thing you've got that headlamp." CR>)
|
|
|
|
|
(T
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL ", leaving you in the dark!" CR>)>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL ANNOUNCEMENT-COUNTER 0>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-ANNOUNCEMENT ()
|
2019-04-14 23:11:30 +03:00
|
|
|
|
<COND (<EQUAL? ,ANNOUNCEMENT-COUNTER 2>
|
|
|
|
|
<RFALSE>)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<SETG ANNOUNCEMENT-COUNTER <+ ,ANNOUNCEMENT-COUNTER 1>>
|
|
|
|
|
<TELL
|
2019-04-14 23:11:30 +03:00
|
|
|
|
" A flat, emotionless voice booms over the station's P.A. system.
|
2019-04-14 23:09:16 +03:00
|
|
|
|
\"Announcement. ">
|
|
|
|
|
<COND (<EQUAL? ,ANNOUNCEMENT-COUNTER 1>
|
|
|
|
|
<QUEUE I-ANNOUNCEMENT 470>
|
|
|
|
|
<TELL
|
|
|
|
|
"Prepare for launch of second-generation pyramids. Station will be
|
|
|
|
|
eliminated by reactor overload immediately following launch">)
|
|
|
|
|
(T
|
|
|
|
|
<QUEUE I-LAUNCH 200>
|
|
|
|
|
<TELL "Standby. Launch in 200 millichrons">)>
|
|
|
|
|
<TELL ".\"" CR>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-LAUNCH ()
|
|
|
|
|
<TELL " ">
|
|
|
|
|
<COND (<EQUAL? ,HERE ,FACTORY>
|
|
|
|
|
<TELL
|
|
|
|
|
"The very walls of the space station are blown outwards, and the tiny
|
|
|
|
|
spaceships roar to life and begin rocketing off in every direction!
|
|
|
|
|
Just before you pass out from lack of air,">)
|
|
|
|
|
(T
|
|
|
|
|
<TELL
|
|
|
|
|
"You hear the sound of multiple spaceships being launched nearby.
|
|
|
|
|
Simultaneously, the air pressure begins dropping! Moments later, these
|
|
|
|
|
issues seem trivial as">)>
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
" the station's reactor turns into a good old-fashioned H-bomb.">>
|
|
|
|
|
|
|
|
|
|
<ROOM TOP-OF-AIR-SHAFT
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Top of Air Shaft")
|
|
|
|
|
(LDESC
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"You are at the top of an air shaft. Handholds lead downward, and a partially
|
|
|
|
|
open air grate leads out of the shaft.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(OUT TO DOME)
|
|
|
|
|
(DOWN TO AIR-SHAFT)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(GLOBAL GRATING)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(VALUE 2)>
|
|
|
|
|
|
|
|
|
|
<ROOM AIR-SHAFT
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Air Shaft")
|
|
|
|
|
(LDESC
|
|
|
|
|
"You are in a large, vertical air duct. Handholds lead up and down.")
|
|
|
|
|
(UP PER AIR-SHAFT-MOVEMENT-F)
|
|
|
|
|
(DOWN PER AIR-SHAFT-MOVEMENT-F)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(FLAGS RLANDBIT ONBIT WEIGHTLESSBIT)>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL AIR-SHAFT-LOC 2>
|
|
|
|
|
|
|
|
|
|
<ROUTINE AIR-SHAFT-MOVEMENT-F ()
|
|
|
|
|
<COND (<PRSO? ,P?UP>
|
|
|
|
|
<COND (<EQUAL? ,AIR-SHAFT-LOC 2>
|
|
|
|
|
,TOP-OF-AIR-SHAFT)
|
|
|
|
|
(T
|
|
|
|
|
<SETG AIR-SHAFT-LOC <- ,AIR-SHAFT-LOC 1>>
|
|
|
|
|
<DESCRIBE-ROOM>
|
|
|
|
|
<RFALSE>)>)
|
|
|
|
|
(<EQUAL? ,AIR-SHAFT-LOC 7>
|
|
|
|
|
,BOTTOM-OF-AIR-SHAFT)
|
|
|
|
|
(T
|
|
|
|
|
<SETG AIR-SHAFT-LOC <+ ,AIR-SHAFT-LOC 1>>
|
|
|
|
|
<DESCRIBE-ROOM>
|
|
|
|
|
<RFALSE>)>>
|
|
|
|
|
|
|
|
|
|
<ROOM BOTTOM-OF-AIR-SHAFT
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Bottom of Air Shaft")
|
|
|
|
|
(LDESC
|
|
|
|
|
"You have reached the bottom of the air vent. Ducts too small for you to
|
2019-04-14 23:09:56 +03:00
|
|
|
|
enter lead off laterally. Handholds lead upward, and the entire floor of the
|
|
|
|
|
duct is another large grating.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(UP TO AIR-SHAFT)
|
|
|
|
|
(NORTH "The sides ducts are too small to enter!")
|
|
|
|
|
(SOUTH "The sides ducts are too small to enter!")
|
|
|
|
|
(EAST "The sides ducts are too small to enter!")
|
|
|
|
|
(WEST "The sides ducts are too small to enter!")
|
|
|
|
|
(DOWN PER BOTTOM-OF-AIR-SHAFT-EXIT-F)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(GLOBAL GRATING)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE BOTTOM-OF-AIR-SHAFT-EXIT-F ()
|
|
|
|
|
<PERFORM ,V?ENTER ,GRATING>
|
|
|
|
|
<RFALSE>>
|
|
|
|
|
|
|
|
|
|
<ROOM COMPUTER-CONTROL
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Computer Control")
|
|
|
|
|
(LDESC
|
|
|
|
|
"This tiny control station allows access to the massive memory banks of
|
|
|
|
|
the station's computer. Ever since the formation of the Third Galactic
|
|
|
|
|
Union ended the great interstellar dark age, every Stellar Patrol spaceship,
|
|
|
|
|
every Patrol space station, has been equipped with a computer bulging with
|
|
|
|
|
the entire accumulated knowledge of mankind. Never again will humanity be
|
|
|
|
|
permitted to slip back into the ignorance and savagery of the dark age.|
|
|
|
|
|
A ladder leads up to Level Eight, and there's a call button next to the
|
|
|
|
|
elevator shaft to the north.")
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(UP PER COMPUTER-CONTROL-EXIT-F)
|
|
|
|
|
(NORTH PER COMPUTER-CONTROL-EXIT-F)
|
|
|
|
|
(GLOBAL CALL-BUTTON ELEVATOR-OBJECT ELEVATOR-SHAFT LADDER GRATING)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(THINGS <PSEUDO (<> COMPUTER COMPUTER-F)>)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE COMPUTER-F ()
|
|
|
|
|
<TELL
|
|
|
|
|
"You may as well ignore the computer -- even computer experts need to consult
|
|
|
|
|
manuals to understand this model." CR>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<GLOBAL EXERCISE-MACHINE-COUNTER 0>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-EXERCISE-MACHINE ()
|
|
|
|
|
<SETG EXERCISE-MACHINE-COUNTER <+ ,EXERCISE-MACHINE-COUNTER 1>>
|
|
|
|
|
<TELL " ">
|
|
|
|
|
<COND (<AND <ULTIMATELY-IN? ,JAMMER ,HERE>
|
|
|
|
|
<EQUAL? ,JAMMER-SETTING 710>
|
|
|
|
|
<FSET? ,JAMMER ,ACTIVEBIT>
|
|
|
|
|
<IN? ,TWENTY-PRONG-FROMITZ-BOARD ,JAMMER>>
|
|
|
|
|
<DEQUEUE I-EXERCISE-MACHINE>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<QUEUE I-FORKLIFT -1>
|
|
|
|
|
<MOVE ,FORKLIFT ,HERE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The " 'EXERCISE-MACHINE " experiences a series of mechanical spasms
|
|
|
|
|
and then freezes.|
|
|
|
|
|
Before you can catch your breath, a huge, grime-covered forklift descends
|
|
|
|
|
from the ladder hole on a cushion of anti-gravity. It settles down"
|
|
|
|
|
,FORKLIFT-DESC CR>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(<EQUAL? ,EXERCISE-MACHINE-COUNTER 1>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The " 'EXERCISE-MACHINE " rolls slowly towards you,
|
2019-04-14 23:09:16 +03:00
|
|
|
|
bellowing, \"No pain, no gain!\"" CR>)
|
|
|
|
|
(<EQUAL? ,EXERCISE-MACHINE-COUNTER 2>
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"As the " 'EXERCISE-MACHINE " nears you, its massive weights and levers begin
|
2019-04-14 23:09:16 +03:00
|
|
|
|
crashing violently against each other." CR>)
|
|
|
|
|
(T
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<TELL "The " 'EXERCISE-MACHINE>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<JIGS-UP
|
2019-04-14 23:09:56 +03:00
|
|
|
|
" reaches you, and performs various repetitions all over
|
2019-04-14 23:09:16 +03:00
|
|
|
|
your body, proving that exercise isn't always good for you.">)>>
|
|
|
|
|
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<OBJECT FORKLIFT
|
|
|
|
|
(DESC "forklift")
|
|
|
|
|
(DESCFCN FORKLIFT-F)
|
|
|
|
|
(SYNONYM FORKLIFT LIFT)
|
|
|
|
|
(ADJECTIVE FORK GRIMY GRIME-COVERED LARGE)
|
|
|
|
|
(ACTION FORKLIFT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE FORKLIFT-F ("OPTIONAL" (OARG <>))
|
|
|
|
|
<COND (.OARG
|
|
|
|
|
<COND (<EQUAL? .OARG ,M-OBJDESC?>
|
|
|
|
|
<RTRUE>)>
|
|
|
|
|
<TELL " A forklift sits" ,FORKLIFT-DESC>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The forklift sits" ,FORKLIFT-DESC " It's revving its engine, and probably
|
|
|
|
|
not because its pistons need a workout!" CR>)
|
|
|
|
|
(<VERB? ENTER>
|
|
|
|
|
<TELL
|
|
|
|
|
"The immobile " 'EXERCISE-MACHINE " blocks access into the forklift." CR>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL FORKLIFT-COUNTER 0>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-FORKLIFT ()
|
|
|
|
|
<SETG FORKLIFT-COUNTER <+ ,FORKLIFT-COUNTER 1>>
|
|
|
|
|
<TELL " The forklift ">
|
|
|
|
|
<COND (<EQUAL? ,FORKLIFT-COUNTER 1>
|
|
|
|
|
<TELL "races its engine, producing a deafening roar">)
|
|
|
|
|
(<EQUAL? ,FORKLIFT-COUNTER 2>
|
|
|
|
|
<TELL
|
|
|
|
|
"continues to rev its motor, filling the room with suffocating exhaust fumes">)
|
|
|
|
|
(<EQUAL? ,FORKLIFT-COUNTER 3>
|
|
|
|
|
<TELL
|
|
|
|
|
"seems to be slipping its engine into gear. The two pointy tines of its
|
|
|
|
|
lifting fork seem to quiver with anticipation">)
|
|
|
|
|
(T
|
|
|
|
|
<JIGS-UP
|
|
|
|
|
"slips into gear and zooms forward, goring you on its fork.">)>
|
|
|
|
|
<TELL ,PERIOD-CR>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE COMPUTER-CONTROL-EXIT-F ()
|
|
|
|
|
<COND (<IN? ,FORKLIFT ,HERE>
|
|
|
|
|
<TELL "The forklift blocks your way." CR>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<IN? ,EXERCISE-MACHINE ,HERE>
|
|
|
|
|
<TELL "The " 'EXERCISE-MACHINE " blocks your way." CR>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<RFALSE>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<PRSO? ,P?NORTH>
|
|
|
|
|
,BOTTOM-OF-ELEVATOR-SHAFT)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
,FACTORY)>>
|
|
|
|
|
|
|
|
|
|
<ROOM BOTTOM-OF-ELEVATOR-SHAFT
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Shaft at Level Nine")
|
|
|
|
|
(LDESC
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"There is gravity here at the bottom of the elevator shaft. The elevator's not
|
|
|
|
|
in sight; the only exit is back to the computer room to the south.")
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(UP "There's no way to climb the shaft.")
|
|
|
|
|
(SOUTH TO COMPUTER-CONTROL)
|
|
|
|
|
(GLOBAL ELEVATOR-SHAFT)
|
|
|
|
|
(FLAGS RLANDBIT)>
|
|
|
|
|
|
|
|
|
|
<ROOM FACTORY
|
|
|
|
|
(IN ROOMS)
|
|
|
|
|
(DESC "Factory")
|
|
|
|
|
(DOWN TO COMPUTER-CONTROL)
|
|
|
|
|
(FLAGS RLANDBIT ONBIT)
|
|
|
|
|
(VALUE 2)
|
|
|
|
|
(ACTION FACTORY-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE FACTORY-F (RARG)
|
|
|
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
|
|
|
<TELL
|
|
|
|
|
"Although you suspected what you would find here on Level Eight, the sight
|
|
|
|
|
is still a shock, filling you with dread. All the station's main systems --
|
|
|
|
|
air and water purification, artificial gravity, power plant -- have been
|
|
|
|
|
completely transfigured into a tiny factory.|
|
|
|
|
|
The purpose of the factory is obvious, because all around you are row after
|
|
|
|
|
row of featureless pyramids, each perfectly identical, each sitting aboard a
|
2019-04-14 23:11:30 +03:00
|
|
|
|
miniature spacepod waiting to be launched toward every sector of the galaxy.">
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<COND (<FSET? ,PYRAMID ,NDESCBIT>
|
|
|
|
|
<FCLEAR ,PYRAMID ,NDESCBIT>
|
|
|
|
|
<TELL
|
|
|
|
|
" The original pyramid sits on a pedestal in the center of the factory,
|
|
|
|
|
like a monarch impassively surveying its domain.">)>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 23:11:30 +03:00
|
|
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
|
|
|
<NOT ,FLOYD-SHOT>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<QUEUE I-FACTORY -1>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE I-FACTORY ()
|
|
|
|
|
<COND (<EQUAL? ,HERE ,FACTORY>
|
|
|
|
|
<TELL " " <PICK-ONE ,FACTORYISMS> ,PERIOD-CR>)>>
|
|
|
|
|
|
|
|
|
|
<GLOBAL FACTORYISMS
|
|
|
|
|
<LTABLE 0
|
|
|
|
|
"Floyd fires his stun ray nonchalantly in your direction, laughing, as though
|
2019-04-14 23:09:56 +03:00
|
|
|
|
taunting you. You feel part of your leg go numb"
|
2019-04-14 23:09:16 +03:00
|
|
|
|
"Smoke is trickling from the tails of the tiny rockets, as though the duplicate
|
|
|
|
|
pyramids were preparing for activation and launch"
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"One of the blinking lights on the reactor goes from yellow to red">>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT PYRAMID
|
|
|
|
|
(IN FACTORY)
|
|
|
|
|
(DESC "pyramid")
|
|
|
|
|
(SYNONYM PYRAMID)
|
|
|
|
|
(FLAGS NDESCBIT)
|
|
|
|
|
(ACTION PYRAMID-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE PYRAMID-F ()
|
|
|
|
|
<COND (<AND <VERB? PUT-ON>
|
|
|
|
|
<PRSO? ,FOIL>>
|
|
|
|
|
<COND (,FLOYD-SHOT
|
|
|
|
|
<TELL
|
2019-04-14 23:09:56 +03:00
|
|
|
|
"The foil settles over the pyramid like a blanket, reflecting the pyramid's
|
|
|
|
|
evil emanations right back into itself. A reverberating whine, like an
|
|
|
|
|
electronically amplified beehive, fills the room. The whine grows louder and
|
|
|
|
|
louder, the pyramid and its pedestal begin vibrating, and the sharp smell of
|
|
|
|
|
ozone assaults you.|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
The noise and the smell and the vibration overwhelm you. As your knees
|
|
|
|
|
buckle and you drop to the deck, the pyramid explodes in a burst of intense
|
2019-04-14 23:11:30 +03:00
|
|
|
|
white light. The explosion leaves you momentarily blinded, but you can hear
|
|
|
|
|
a mechanized voice on the P.A. system, getting slower and deeper like a stereo
|
|
|
|
|
disc that has lost its power: \"Launch aborted -- launch -- abort --\"|
|
|
|
|
|
The replica pyramids fade to darkness, and a subtle change in background
|
|
|
|
|
sound tells you that the space station's systems and machinery are returning
|
|
|
|
|
to their normal functions.|
|
2019-04-14 23:09:16 +03:00
|
|
|
|
Still dazed, you crawl over to Floyd, lying in a smoking heap near the
|
|
|
|
|
blackened pedestal. Damaged beyond any conceivable repairs, he half-opens his
|
|
|
|
|
eyes and looks up at you for the last time. \"Floyd sorry for the way he acted.
|
|
|
|
|
Floyd knows...you did what you...had to do.\" Wincing in pain, he slowly
|
|
|
|
|
reaches over to touch your hand. \"One last game of Hider-and-Seeker? You be
|
|
|
|
|
It. Ollie ollie...\" His voice is growing weaker. \"...oxen...\" His eyes
|
|
|
|
|
close. \"...free...\" His hand slips away from yours, and he slumps backwards,
|
|
|
|
|
lifeless. One of his compartments falls open, and Floyd's favorite paddleball
|
|
|
|
|
set drops to the deck.|
|
|
|
|
|
In the long silence that follows, something Plato said echoes through your
|
|
|
|
|
mind. \"...think instead about the joy-filled times when you and your friend
|
|
|
|
|
were together.\" A noise makes you turn around, and you see Oliver, the little
|
|
|
|
|
robot that stirred such brotherly feelings in Floyd. Toddling over to you on
|
2019-04-14 23:11:30 +03:00
|
|
|
|
unsteady legs, he looks uncomprehendingly at Floyd's remains, but picks up the
|
2019-04-14 23:09:56 +03:00
|
|
|
|
paddleball set. Oliver looks up at you, tugs on the leg of your "
|
|
|
|
|
'PATROL-UNIFORM ", and asks in a quavering voice, \"Play game...
|
|
|
|
|
Play game with Oliver?\"" CR CR>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<SETG SCORE <+ ,SCORE 5>>
|
2019-04-14 23:09:56 +03:00
|
|
|
|
<USL>
|
|
|
|
|
<CONTINUE>
|
|
|
|
|
<TELL-SCORE>
|
|
|
|
|
<QUIT>)
|
2019-04-14 23:09:16 +03:00
|
|
|
|
(T
|
|
|
|
|
<BACK-OFF "the pyramid, Floyd">)>)
|
2019-04-14 23:09:56 +03:00
|
|
|
|
(<AND <OR <TOUCHING? ,PYRAMID>
|
|
|
|
|
<VERB? WALK-TO>>
|
2019-04-14 23:09:16 +03:00
|
|
|
|
<NOT ,FLOYD-SHOT>>
|
|
|
|
|
<BACK-OFF "the pyramid, Floyd">)
|
|
|
|
|
(<VERB? MEASURE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The pyramid is somewhere between half a meter and a meter across." CR>)
|
|
|
|
|
(<VERB? EXAMINE>
|
|
|
|
|
<TELL
|
|
|
|
|
"The pyramid is completely featureless, but you can almost feel the emanations
|
|
|
|
|
of evil pouring forth from it, urging the surrounding factory on towards its
|
|
|
|
|
sick and deadly purpose. ">
|
|
|
|
|
<PERFORM ,V?MEASURE ,PYRAMID>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? TAKE>
|
|
|
|
|
<TELL "Oomph! It's heavier than it looks." CR>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE BACK-OFF (STRING)
|
|
|
|
|
<TELL
|
|
|
|
|
"As you approach " .STRING " levels his stun ray at you, so you quickly
|
|
|
|
|
back off." CR>>
|