1139 lines
34 KiB
Plaintext
1139 lines
34 KiB
Plaintext
|
|
|
|
.FUNCT VILLAGE-BOUNDARY-F,DESTINATION
|
|
FSET? IRIS-HATCH,OPENBIT /?ELS3
|
|
CALL THIS-IS-IT,IRIS-HATCH
|
|
PRINTI "The iris hatch is closed."
|
|
CRLF
|
|
RFALSE
|
|
?ELS3: CALL ULTIMATELY-IN?,SPACESUIT
|
|
ZERO? STACK /?CND1
|
|
CALL THIS-IS-IT,SPACESUIT
|
|
PRINTI "The space suit is too bulky to fit through the partially dilated iris hatch."
|
|
CRLF
|
|
RFALSE
|
|
?CND1: PRINTI "As you cross the boundary of the Command Module, the station's artificial gravity "
|
|
EQUAL? HERE,EAST-CONNECTION,SOUTH-CONNECTION \?ELS8
|
|
EQUAL? HERE,EAST-CONNECTION \?ELS11
|
|
SET 'DESTINATION,MAKESHIFT-CONNECTOR
|
|
JUMP ?CND9
|
|
?ELS11: SET 'DESTINATION,GRIMY-PASSAGE
|
|
?CND9: PRINTI "cuts off suddenly, leaving you weightless"
|
|
JUMP ?CND6
|
|
?ELS8: EQUAL? HERE,MAKESHIFT-CONNECTOR \?ELS18
|
|
SET 'DESTINATION,EAST-CONNECTION
|
|
JUMP ?CND16
|
|
?ELS18: SET 'DESTINATION,SOUTH-CONNECTION
|
|
?CND16: PRINTI "once again tugs you against the deck"
|
|
?CND6: PRINT PERIOD-CR
|
|
CRLF
|
|
RETURN DESTINATION
|
|
|
|
|
|
.FUNCT IRIS-HATCH-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
|
PRINTR "It won't budge."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTI "The hatch, like the f-stop of a camera, is composed of many pieces which move to form a circular opening of the desired size. This is a common way of joining connecting tubes to ships or stations. "
|
|
RFALSE
|
|
|
|
|
|
.FUNCT REC-SHOP-OBJECT-F
|
|
EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS5
|
|
CALL DO-WALK,P?OUT
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?SEARCH \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SIMULATION-BOOTH-F,OARG=0
|
|
ZERO? OARG \FALSE
|
|
EQUAL? PRSA,V?PLAY-WITH,V?USE,V?ON \?ELS8
|
|
IN? PROTAGONIST,SIMULATION-BOOTH \?ELS13
|
|
SET 'C-ELAPSED,48
|
|
PRINTI "You experience a brief but exciting simulation about "
|
|
CALL PICK-ONE,SIMULATIONS
|
|
PRINT STACK
|
|
PRINTR ". The booth shuts itself off at the end of the simulation."
|
|
?ELS13: PRINTR "You have to be in the booth to use it."
|
|
?ELS8: EQUAL? PRSA,V?EXAMINE \?ELS17
|
|
PRINTI "The nearest booth, a metallic-green-colored cylindrical chamber, is off."
|
|
FIRST? SIMULATION-BOOTH \?ELS22
|
|
PRINTC 32
|
|
RFALSE
|
|
?ELS22: CRLF
|
|
RTRUE
|
|
?ELS17: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS26
|
|
PRINTR "The booth has no door."
|
|
?ELS26: EQUAL? PRSA,V?WALK-AROUND,V?LOOK-BEHIND \FALSE
|
|
IN? FOIL,LOCAL-GLOBALS \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FOIL-F
|
|
EQUAL? PRSA,V?EXAMINE,V?MEASURE \?ELS5
|
|
PRINTR "It's a large piece of foil, about five feet on a side."
|
|
?ELS5: EQUAL? PRSA,V?FIND \FALSE
|
|
EQUAL? HERE,REC-SHOP \FALSE
|
|
IN? FOIL,LOCAL-GLOBALS \FALSE
|
|
CALL PERFORM,V?LOOK-BEHIND,SIMULATION-BOOTH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT HEADLAMP-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It's a typical spacer's lamp, which can be slipped onto one's forehead, leaving both hands free for work. "
|
|
RFALSE
|
|
?ELS5: EQUAL? PRSA,V?ON \FALSE
|
|
ZERO? HEADLAMP-COUNTER \?ELS12
|
|
PRINTR "It seems to be dead."
|
|
?ELS12: CALL QUEUE,I-HEADLAMP,-1
|
|
RFALSE
|
|
|
|
|
|
.FUNCT I-HEADLAMP
|
|
FSET? HEADLAMP,ONBIT \?ELS5
|
|
DEC 'HEADLAMP-COUNTER
|
|
ZERO? HEADLAMP-COUNTER \?CND6
|
|
FCLEAR HEADLAMP,ACTIVEBIT
|
|
FCLEAR HEADLAMP,ONBIT
|
|
?CND6: CALL VISIBLE?,HEADLAMP
|
|
ZERO? STACK /FALSE
|
|
EQUAL? HEADLAMP-COUNTER,0,15,30 \FALSE
|
|
PRINTI " The light from the headlamp "
|
|
ZERO? HEADLAMP-COUNTER \?ELS20
|
|
PRINTI "flickers and dies!"
|
|
CRLF
|
|
CALL NOW-DARK?
|
|
RSTACK
|
|
?ELS20: EQUAL? HEADLAMP-COUNTER,5 \?ELS22
|
|
PRINTR "is almost out!"
|
|
?ELS22: PRINTR "seems somewhat dimmer."
|
|
?ELS5: CALL DEQUEUE,I-HEADLAMP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TAFFY-F
|
|
EQUAL? PRSA,V?FIND \FALSE
|
|
GET P-NAMW,0
|
|
EQUAL? STACK,W?FOOD \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CAGE-F
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
FSET? CAGE,OPENBIT /FALSE
|
|
IN? BALLOON,CAGE \FALSE
|
|
FSET CAGE,OPENBIT
|
|
MOVE BALLOON,HERE
|
|
MOVE LEASH,HERE
|
|
PRINTI "As you open the cage, the "
|
|
PRINTD BALLOON
|
|
PRINTR " floats out of it."
|
|
|
|
|
|
.FUNCT BALLOON-F
|
|
EQUAL? PRSA,V?DROP \?ELS5
|
|
EQUAL? P-PRSA-WORD,W?RELEASE \?ELS5
|
|
IN? BALLOON,CAGE \?ELS5
|
|
CALL PERFORM,V?OPEN,CAGE
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
PRINTI "This is quite a thrill -- you've never seen an "
|
|
PRINTD BALLOON
|
|
PRINTR " before! This particular specimen has a leash attached to it. Balloon creatures, you've heard, don't mind being leashed."
|
|
?ELS9: EQUAL? PRSA,V?DRILL,V?MUNG,V?SHOOT \?ELS11
|
|
REMOVE BALLOON
|
|
PRINTI "The "
|
|
PRINTD BALLOON
|
|
PRINTI ", considered by many to be the friendliest and most peaceful animal in the known universe, "
|
|
EQUAL? PRSA,V?SHOOT \?ELS14
|
|
REMOVE LEASH
|
|
PRINTI "is consumed in a ball of burning hydrogen."
|
|
JUMP ?CND12
|
|
?ELS14: FCLEAR LEASH,NDESCBIT
|
|
SET 'BALLOON-ODOR,TRUE-VALUE
|
|
PRINTI "squirts wildly around the room before disintegrating. The only reminder of the late balloon creature is the overwhelming odor of its digestive gas."
|
|
?CND12: ZERO? HANGING-IN-AIR /?ELS21
|
|
PRINTC 32
|
|
CALL PERFORM,V?DROP,LEASH
|
|
RTRUE
|
|
?ELS21: CRLF
|
|
RTRUE
|
|
?ELS11: EQUAL? PRSA,V?CATCH,V?TAKE \?ELS26
|
|
CALL PERFORM,V?TAKE,LEASH
|
|
RTRUE
|
|
?ELS26: EQUAL? PRSA,V?HUG,V?TOUCH \FALSE
|
|
PRINTI "The "
|
|
PRINTD BALLOON
|
|
PRINTR " purrs and rings of color shimmer along its body."
|
|
|
|
|
|
.FUNCT LEASH-F
|
|
EQUAL? PRSA,V?MOVE,V?TAKE \?ELS5
|
|
EQUAL? PRSO,LEASH \?ELS5
|
|
CALL VISIBLE?,BALLOON
|
|
ZERO? STACK /?ELS5
|
|
IN? BALLOON,CAGE \?ELS12
|
|
PRINT YOU-CANT
|
|
PRINTR "reach the leash inside the cage."
|
|
?ELS12: ZERO? HANGING-IN-AIR /?ELS14
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS14: FSET? SPACESUIT,WORNBIT \?ELS17
|
|
PRINTR "The space suit's glove is a bit too big and clumsy to fit through the loop of the leash. You'll have to remove the suit before grabbing the leash."
|
|
?ELS17: FSET? HERE,WEIGHTLESSBIT \?ELS19
|
|
PRINTI "The Arcturian tries to ""float"" away from you, but its buoyancy system is useless in zero-gee. As you grasp the leash, it uses its lateral propulsion method in an attempt to get away. In other words, it farts right in your face. In a reflexive maneuver to wave away the odor, you release the leash"
|
|
CALL CCOUNT,PROTAGONIST
|
|
GRTR? STACK,0 \?CND20
|
|
CALL ROB,PROTAGONIST,HERE
|
|
PRINTI " and drop everything you were holding"
|
|
?CND20: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS19: SET 'HANGING-IN-AIR,TRUE-VALUE
|
|
PRINTI "As you grab the leash, the startled balloon creature tries to get away by hyperinflating. Slowly, its buoyancy lifts you right "
|
|
FSET? BOOTS,WORNBIT \?ELS27
|
|
FCLEAR BOOTS,WORNBIT
|
|
MOVE BOOTS,HERE
|
|
PRINTI "out of your magnetic boots"
|
|
JUMP ?CND25
|
|
?ELS27: PRINTI "off the deck"
|
|
?CND25: PRINTI "! Within moments, the Arcturian is bobbing against the ceiling, and you're hanging five feet off the floor!"
|
|
CRLF
|
|
IN? FLOYD,HERE \TRUE
|
|
FSET? FLOYD,ACTIVEBIT \TRUE
|
|
ZERO? HANGING-COMMENT \TRUE
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
CALL FLOYDS-HANGING-IN-AIR-COMMENT
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?UNTIE,V?REMOVE \?ELS36
|
|
PRINTI "There's no obvious way to remove the leash from"
|
|
CALL TRPRINT,BALLOON
|
|
RSTACK
|
|
?ELS36: EQUAL? PRSA,V?DISCONNECT \?ELS38
|
|
ZERO? PRSI /?THN41
|
|
EQUAL? PRSI,BALLOON \?ELS38
|
|
?THN41: CALL PERFORM,V?REMOVE,LEASH
|
|
RTRUE
|
|
?ELS38: EQUAL? PRSA,V?DROP \FALSE
|
|
ZERO? HANGING-IN-AIR /FALSE
|
|
SET 'HANGING-IN-AIR,FALSE-VALUE
|
|
PRINTI "You drop to the deck. The "
|
|
PRINTD BALLOON
|
|
PRINTR " gradually floats downward until its back at around eye-level."
|
|
|
|
|
|
.FUNCT FLOYDS-HANGING-IN-AIR-COMMENT
|
|
SET 'HANGING-COMMENT,TRUE-VALUE
|
|
PRINTR " ""Boy, that looks like fun!"" says Floyd, peering up at you. ""Can Floyd try it? Huh? Please?"""
|
|
|
|
|
|
.FUNCT PANEL-F
|
|
EQUAL? PRSA,V?LOWER,V?REMOVE,V?MOVE /?THN6
|
|
EQUAL? PRSA,V?LOOK-BEHIND \FALSE
|
|
?THN6: CALL PERFORM,V?OPEN,PANEL
|
|
RTRUE
|
|
|
|
|
|
.FUNCT OSTRICH-NIP-F
|
|
EQUAL? PRSA,V?DROP \FALSE
|
|
IN? OSTRICH,HERE \FALSE
|
|
CALL PERFORM,V?GIVE,OSTRICH-NIP,OSTRICH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BOTTLE-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
FSET? BOTTLE,TOUCHBIT /?ELS11
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " One of the wares for sale is a sealed bottle with a rather plain-looking label."
|
|
RTRUE
|
|
?ELS11: GRTR? FROZEN-LEVEL,4 \FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " There is a transparent bottle here. "
|
|
CALL DESCRIBE-BOTTLE
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS23
|
|
PRINTI "The bottle is transparent, with a small label."
|
|
GRTR? FROZEN-LEVEL,4 \?CND24
|
|
PRINTC 32
|
|
CALL DESCRIBE-BOTTLE
|
|
?CND24: IN? EXPLOSIVE,BOTTLE \?CND27
|
|
PRINTI " There's an explosive within the "
|
|
GRTR? FROZEN-LEVEL,10 \?ELS32
|
|
PRINTI "ice"
|
|
JUMP ?CND30
|
|
?ELS32: GRTR? FROZEN-LEVEL,4 \?ELS34
|
|
PRINTI "liquid"
|
|
JUMP ?CND30
|
|
?ELS34: PRINTI "bottle"
|
|
?CND30: PRINTC 46
|
|
?CND27: CRLF
|
|
RTRUE
|
|
?ELS23: EQUAL? PRSA,V?LOOK-INSIDE \?ELS38
|
|
GRTR? FROZEN-LEVEL,4 \?ELS38
|
|
CALL DESCRIBE-BOTTLE
|
|
FIRST? BOTTLE \?ELS45
|
|
PRINTC 32
|
|
RFALSE
|
|
?ELS45: CRLF
|
|
RTRUE
|
|
?ELS38: EQUAL? PRSA,V?POUR \?ELS49
|
|
EQUAL? PRSO,BOTTLE \?ELS49
|
|
GRTR? FROZEN-LEVEL,4 \?ELS49
|
|
LESS? FROZEN-LEVEL,11 \?ELS49
|
|
FSET? BOTTLE,OPENBIT \?ELS56
|
|
SET 'CARBON-DIOXIDE-GONE,TRUE-VALUE
|
|
SET 'FROZEN-LEVEL,0
|
|
CALL DEQUEUE,I-MELT-CARBON-DIOXIDE
|
|
PRINTR "The liquid instantly evaporates."
|
|
?ELS56: CALL DO-FIRST,STR?324
|
|
RSTACK
|
|
?ELS49: EQUAL? PRSA,V?READ \?ELS60
|
|
PRINTR """PLANTS-LUV-IT (tm) Carbon Dioxide
|
|
Two liters, guaranteed 99.7% pure"""
|
|
?ELS60: EQUAL? PRSA,V?PUT \?ELS62
|
|
EQUAL? PRSI,BOTTLE \?ELS62
|
|
FSET? BOTTLE,OPENBIT \?ELS62
|
|
EQUAL? PRSO,EXPLOSIVE /?ELS69
|
|
PRINTI "The bottle's mouth is too narrow for"
|
|
CALL TRPRINT,PRSO
|
|
RSTACK
|
|
?ELS69: GRTR? FROZEN-LEVEL,10 \FALSE
|
|
PRINTR "You can't; the bottle is filled with ice."
|
|
?ELS62: EQUAL? PRSA,V?OPEN \FALSE
|
|
FSET? BOTTLE,OPENBIT /FALSE
|
|
ZERO? CARBON-DIOXIDE-GONE \FALSE
|
|
LESS? FROZEN-LEVEL,5 \FALSE
|
|
SET 'CARBON-DIOXIDE-GONE,TRUE-VALUE
|
|
FSET BOTTLE,OPENBIT
|
|
FSET BOTTLE,TOUCHBIT
|
|
CALL DEQUEUE,I-FREEZE-CARBON-DIOXIDE
|
|
SET 'FROZEN-LEVEL,0
|
|
PRINTI "You "
|
|
CALL IN-VACUUM?
|
|
ZERO? STACK /?ELS78
|
|
PRINTI "see"
|
|
JUMP ?CND76
|
|
?ELS78: PRINTI "feel"
|
|
?CND76: PRINTI " a puff of gas from the bottle as you open it."
|
|
EQUAL? HERE,DOME \?CND81
|
|
PRINTI " The nearby plants rustle happily; or perhaps it was just a draft from the ventilation system."
|
|
CRLF
|
|
?CND81: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DESCRIBE-BOTTLE
|
|
PRINTI "The bottle is mostly filled with some kind of "
|
|
GRTR? FROZEN-LEVEL,10 \?ELS5
|
|
PRINTI "ice."
|
|
RTRUE
|
|
?ELS5: PRINTI "liquid."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-FREEZE-CARBON-DIOXIDE
|
|
INC 'FROZEN-LEVEL
|
|
ZERO? DEBUG /?CND1
|
|
PRINTI "[Carbon Diox FROZEN-LEVEL = "
|
|
PRINTN FROZEN-LEVEL
|
|
PRINTI ".]"
|
|
CRLF
|
|
?CND1: CALL VISIBLE?,BOTTLE
|
|
ZERO? STACK /FALSE
|
|
ZERO? LIT /FALSE
|
|
EQUAL? FROZEN-LEVEL,5 \?ELS14
|
|
PRINTR " The gas in the bottle suddenly liquifies, leaving the bottle mostly full of a sloshy fluid."
|
|
?ELS14: EQUAL? FROZEN-LEVEL,11 \FALSE
|
|
PRINTI " The liquid suddenly crystalizes into a solid hunk of carbon dioxide ice, "
|
|
IN? EXPLOSIVE,BOTTLE \?CND17
|
|
FSET EXPLOSIVE,TRYTAKEBIT
|
|
PRINTI "surrounding the explosive and "
|
|
?CND17: PRINTR "occupying a good portion of the bottle."
|
|
|
|
|
|
.FUNCT I-MELT-CARBON-DIOXIDE
|
|
DEC 'FROZEN-LEVEL
|
|
ZERO? DEBUG /?CND1
|
|
PRINTI "[Carbon Diox FROZEN-LEVEL = "
|
|
PRINTN FROZEN-LEVEL
|
|
PRINTI ".]"
|
|
CRLF
|
|
?CND1: EQUAL? FROZEN-LEVEL,4 \?ELS9
|
|
SET 'FROZEN-LEVEL,0
|
|
CALL DEQUEUE,I-MELT-CARBON-DIOXIDE
|
|
FSET? BOTTLE,OPENBIT \?CND10
|
|
SET 'CARBON-DIOXIDE-GONE,TRUE-VALUE
|
|
?CND10: IN? EXPLOSIVE,BOTTLE \?CND13
|
|
CALL QUEUE,I-EXPLOSIVE-MELT,100
|
|
?CND13: CALL VISIBLE?,BOTTLE
|
|
ZERO? STACK /FALSE
|
|
PRINTI " The liquid carbon dioxide boils, and the resulting puff of steam quickly "
|
|
FSET? BOTTLE,OPENBIT \?ELS23
|
|
PRINTI "dissipates into the air"
|
|
JUMP ?CND21
|
|
?ELS23: PRINTI "becomes clear within the bottle"
|
|
?CND21: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS9: EQUAL? FROZEN-LEVEL,10 \FALSE
|
|
IN? EXPLOSIVE,BOTTLE \?CND28
|
|
FCLEAR EXPLOSIVE,TRYTAKEBIT
|
|
?CND28: CALL VISIBLE?,BOTTLE
|
|
ZERO? STACK /FALSE
|
|
PRINTR " The dry ice in the bottle has melted, leaving you with a bottle full of liquid carbon dioxide."
|
|
|
|
|
|
.FUNCT TWELVE-PRONG-FROMITZ-BOARD-F
|
|
CALL ADJ-USED,A?NUMBER,TWELVE-PRONG-FROMITZ-BOARD
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? P-NUMBER,12 /?ELS5
|
|
CALL N-PRONG-BOARD
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
PRINT EXAMINE-BOARD
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?COUNT \FALSE
|
|
CALL NOUN-USED,W?PRONGS,TWELVE-PRONG-FROMITZ-BOARD
|
|
ZERO? STACK /FALSE
|
|
PRINTR "12."
|
|
|
|
|
|
.FUNCT STUDIO-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
FSET? STUDIO,TOUCHBIT /FALSE
|
|
ZERO? VERBOSITY /FALSE
|
|
ZERO? LIT /FALSE
|
|
PRINTI "Junk Yard
|
|
You have entered a cluttered space bubble littered with semi-useless garbage, all floating in a large junk pile in the center... At second glance, you realize that the junk pile is actually an artist's attempt at a 91st-century-style scrap sculpture"
|
|
PRINT ELLIPSIS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TWENTY-PRONG-FROMITZ-BOARD-F
|
|
CALL ADJ-USED,A?NUMBER,TWENTY-PRONG-FROMITZ-BOARD
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? P-NUMBER,20 /?ELS5
|
|
CALL N-PRONG-BOARD
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
PRINT EXAMINE-BOARD
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?COUNT \FALSE
|
|
CALL NOUN-USED,W?PRONGS,TWENTY-PRONG-FROMITZ-BOARD
|
|
ZERO? STACK /FALSE
|
|
PRINTR "20."
|
|
|
|
|
|
.FUNCT N-PRONG-BOARD
|
|
SET 'P-WON,FALSE-VALUE
|
|
PRINTI "[You can't see any "
|
|
PRINTN P-NUMBER
|
|
PRINTR "-prong board here!]"
|
|
|
|
|
|
.FUNCT GENERIC-FROMITZ-BOARD-F
|
|
EQUAL? P-NUMBER,20 \?ELS5
|
|
RETURN TWENTY-PRONG-FROMITZ-BOARD
|
|
?ELS5: EQUAL? P-NUMBER,12 \FALSE
|
|
RETURN TWELVE-PRONG-FROMITZ-BOARD
|
|
|
|
|
|
.FUNCT CASINO-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This dimly-lit space building once featured some plush decor, but now the room is ratty, faded, and reeking of tobacco smoke. Deserted gambling tables fill all six sides of the room. A spotlight illuminates a lone roulette wheel. The"
|
|
ZERO? ROULETTE-TURNED /?ELS10
|
|
PRINTI "re are exits north, west, and above."
|
|
RTRUE
|
|
?ELS10: PRINTI " only exit leads west."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ROULETTE-WHEEL-F
|
|
EQUAL? PRSA,V?SET \FALSE
|
|
ZERO? ROULETTE-TURNED /?ELS10
|
|
PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
?ELS10: SET 'ROULETTE-TURNED,TRUE-VALUE
|
|
FCLEAR CASINO,NWELDERBIT
|
|
INC 'ROBOT-EVILNESS
|
|
ADD SCORE,3 >SCORE
|
|
PRINTR "As you turn the roulette wheel, exits appear above you and to the north!"
|
|
|
|
|
|
.FUNCT DICE-F,NUM,?TMP1
|
|
EQUAL? PRSA,V?THROW,V?ROLL \?ELS5
|
|
RANDOM 6 >?TMP1
|
|
RANDOM 6
|
|
ADD ?TMP1,STACK >NUM
|
|
MOVE DICE,HERE
|
|
PRINTI "You roll a"
|
|
EQUAL? NUM,8,11 \?CND6
|
|
PRINTC 110
|
|
?CND6: PRINTC 32
|
|
PRINTN NUM
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SHAKE \FALSE
|
|
PRINTR "Shaken."
|
|
|
|
|
|
.FUNCT SPACESUIT-F
|
|
EQUAL? PRSA,V?TAKE-OFF \FALSE
|
|
EQUAL? HERE,VACUUM-STORAGE /?THN8
|
|
EQUAL? HERE,AIRLOCK \FALSE
|
|
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
|
|
?THN8: CALL VACUUM-DEATH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT VACUUM-DEATH
|
|
CALL JIGS-UP,STR?330
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GREASY-STRAW-F,RARG
|
|
EQUAL? RARG,M-END \?ELS5
|
|
IN? NECTAR,LOCAL-GLOBALS \?ELS5
|
|
RANDOM 100
|
|
LESS? 33,STACK /?ELS5
|
|
PRINTR " You catch a whiff of something mouth-watering."
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINT RESTAURANT-SIGN-TEXT
|
|
PRINTI " lies the sign over the counter of this deserted dive. Exits lead northeast and southwest."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COUNTER-F
|
|
EQUAL? PRSA,V?SEARCH,V?LOOK-BEHIND,V?LOOK-UNDER /?THN8
|
|
EQUAL? PRSA,V?HIDE,V?EXAMINE \FALSE
|
|
?THN8: IN? NECTAR,LOCAL-GLOBALS \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NECTAR-F
|
|
EQUAL? PRSA,V?EMPTY,V?POUR,V?THROW \?ELS5
|
|
EQUAL? PRSO,NECTAR \?ELS5
|
|
PRINTI "You create a nectarish mess, which thankfully dries up very quickly"
|
|
CALL ANTI-LITTER,NECTAR
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?FIND \FALSE
|
|
IN? NECTAR,LOCAL-GLOBALS \FALSE
|
|
EQUAL? HERE,GREASY-STRAW \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GENERIC-FOOD-F
|
|
EQUAL? PRSA,V?FIND \FALSE
|
|
GETP P-NAMW,0
|
|
EQUAL? STACK,W?FOOD \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RETURN NOT-HERE-OBJECT
|
|
|
|
|
|
.FUNCT BOOK-F
|
|
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?OPEN /?THN6
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
?THN6: IN? PAPER,BOOK \?ELS12
|
|
MOVE PAPER,HERE
|
|
PRINTR "As you open the book, a piece of paper flutters out!"
|
|
?ELS12: PRINTR "The book is a technical linguistics text, far beyond your understanding of the subject."
|
|
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS16
|
|
PRINTR "Closed."
|
|
?ELS16: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,PAPER \FALSE
|
|
MOVE PAPER,BOOK
|
|
PRINTR "Done."
|
|
|
|
|
|
.FUNCT RECRUITMENT-POSTER-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTR "The posters are emblazoned with such recruitment slogans as ""The Patrol is looking for a few good organisms"" and ""Learn valuable skills and explore the galaxy."" You can't imagine how you ever believed such drivel."
|
|
|
|
|
|
.FUNCT PLATINUM-DETECTOR-F
|
|
EQUAL? PRSA,V?ON \?ELS5
|
|
CALL QUEUE,I-PLATINUM-DETECTOR,-1
|
|
RFALSE
|
|
?ELS5: EQUAL? PRSA,V?OFF \?ELS7
|
|
CALL DEQUEUE,I-PLATINUM-DETECTOR
|
|
SET 'DETECTOR-COUNTER,0
|
|
RFALSE
|
|
?ELS7: EQUAL? PRSA,V?TAKE \?ELS9
|
|
GRTR? DETECTOR-COUNTER,50 \?ELS9
|
|
GRTR? DETECTOR-COUNTER,100 \?ELS16
|
|
PRINTR "Ouch! The detector is too hot to pick up!"
|
|
?ELS16: CALL ITAKE
|
|
EQUAL? STACK,M-FATAL,FALSE-VALUE /FALSE
|
|
PRINTI "As you pick up the detector, you notice that is feels "
|
|
GRTR? DETECTOR-COUNTER,75 \?CND19
|
|
PRINTI "very "
|
|
?CND19: PRINTR "warm."
|
|
?ELS9: EQUAL? PRSA,V?FIND \?ELS23
|
|
EQUAL? HERE,REC-SHOP \?ELS23
|
|
IN? FOIL,LOCAL-GLOBALS \?ELS23
|
|
CALL ADJ-USED,A?PLATINUM,PLATINUM-DETECTOR
|
|
ZERO? STACK /?ELS23
|
|
GET P-NAMW,0
|
|
EQUAL? STACK,FALSE-VALUE \?ELS23
|
|
CALL PERFORM,V?LOOK-BEHIND,SIMULATION-BOOTH
|
|
RTRUE
|
|
?ELS23: EQUAL? PRSA,V?FOLLOW \FALSE
|
|
EQUAL? HERE,REC-SHOP \FALSE
|
|
IN? FOIL,LOCAL-GLOBALS \FALSE
|
|
FSET? PLATINUM-DETECTOR,ACTIVEBIT \FALSE
|
|
CALL PERFORM,V?LOOK-BEHIND,SIMULATION-BOOTH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-PLATINUM-DETECTOR,?TMP1
|
|
CALL VISIBLE?,PLATINUM-DETECTOR
|
|
ZERO? STACK /?CND1
|
|
CALL META-LOC,FOIL >?TMP1
|
|
CALL META-LOC,PLATINUM-DETECTOR
|
|
EQUAL? ?TMP1,STACK /?THN6
|
|
CALL ULTIMATELY-IN?,PLATINUM-DETECTOR,REC-SHOP
|
|
ZERO? STACK /?CND1
|
|
IN? FOIL,LOCAL-GLOBALS \?CND1
|
|
?THN6: PRINTI " The detector is quietly beeping."
|
|
CRLF
|
|
?CND1: EQUAL? DETECTOR-COUNTER,50,75 \?ELS14
|
|
IN? PLATINUM-DETECTOR,PROTAGONIST \?ELS14
|
|
PRINTI " You notice that the detector is getting "
|
|
EQUAL? DETECTOR-COUNTER,75 \?CND17
|
|
PRINTI "very "
|
|
?CND17: PRINTR "warm."
|
|
?ELS14: EQUAL? DETECTOR-COUNTER,100 \FALSE
|
|
IN? PLATINUM-DETECTOR,PROTAGONIST \FALSE
|
|
MOVE PLATINUM-DETECTOR,HERE
|
|
PRINTR " Yeow! The detector is now too hot to handle, so you drop it."
|
|
|
|
|
|
.FUNCT TRAVEL-AGENCY-POSTER-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTR "The posters show a sunset on ""Historic Ramos II,"" the steel and zynoid towers of ""Varshon, the Galactic Capital,"" and scantily-clad beauties cavorting on the beaches of ""The Pleasure Moons of Mazzotta."""
|
|
|
|
|
|
.FUNCT WAREHOUSE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "You have entered a smallish warehouse. A red sign is mounted over a door, "
|
|
CALL OPEN-CLOSED,INNER-AIRLOCK-DOOR
|
|
PRINTI ", leading down; there are other openings in the ceiling and the southwest wall."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT INNER-AIRLOCK-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
FSET? INNER-AIRLOCK-DOOR,OPENBIT /FALSE
|
|
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
|
|
PRINTR "It won't budge."
|
|
|
|
|
|
.FUNCT OUTER-AIRLOCK-DOOR-F,X=0,N=0,OBJ-FLUSHED=0
|
|
EQUAL? PRSA,V?OPEN \?ELS5
|
|
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?ELS5
|
|
FSET? INNER-AIRLOCK-DOOR,OPENBIT \?ELS12
|
|
PRINTR "It won't budge."
|
|
?ELS12: PRINTI "As the door opens, the air in the lock whooshes out into the vacuum of space"
|
|
FSET? SPACESUIT,WORNBIT /?ELS17
|
|
PRINTI ". "
|
|
CALL VACUUM-DEATH
|
|
JUMP ?CND15
|
|
?ELS17: FSET? BOOTS,WORNBIT /?ELS19
|
|
CALL JIGS-UP,STR?343
|
|
JUMP ?CND15
|
|
?ELS19: FSET OUTER-AIRLOCK-DOOR,OPENBIT
|
|
CALL ULTIMATELY-IN?,BOTTLE
|
|
ZERO? STACK /?CND22
|
|
ZERO? CARBON-DIOXIDE-GONE \?CND22
|
|
CALL DEQUEUE,I-MELT-CARBON-DIOXIDE
|
|
CALL QUEUE,I-FREEZE-CARBON-DIOXIDE,-1
|
|
?CND22: FIRST? AIRLOCK >X /?KLU73
|
|
?KLU73:
|
|
?PRG27: ZERO? X /?REP28
|
|
NEXT? X >N /?KLU74
|
|
?KLU74: EQUAL? X,PROTAGONIST,OSTRICH,BALLOON /?CND32
|
|
REMOVE X
|
|
SET 'OBJ-FLUSHED,TRUE-VALUE
|
|
?CND32: SET 'X,N
|
|
JUMP ?PRG27
|
|
?REP28: ZERO? OBJ-FLUSHED /?CND35
|
|
PRINTI ", flushing everything in the airlock"
|
|
?CND35: PRINT PERIOD-CR
|
|
?CND15: IN? OSTRICH,HERE \?CND39
|
|
REMOVE OSTRICH
|
|
PRINTI " The ostrich gives a pathetic squawk as it is swept out into space, quickly dwindling from sight."
|
|
CRLF
|
|
?CND39: IN? BALLOON,HERE \?CND42
|
|
REMOVE BALLOON
|
|
REMOVE LEASH
|
|
PRINTI " The "
|
|
PRINTD BALLOON
|
|
PRINTI ", unable to adjust to the sudden drop in pressure, explodes into a puff of hydrogen that immediately vanishes!"
|
|
CRLF
|
|
?CND42: CALL ULTIMATELY-IN?,FOOD-KIT
|
|
ZERO? STACK /?CND45
|
|
FSET? FOOD-KIT,OPENBIT \?CND45
|
|
IN? ORANGE-GOO,FOOD-KIT /?THN50
|
|
IN? BLUE-GOO,FOOD-KIT /?THN50
|
|
IN? GRAY-GOO,FOOD-KIT \?CND45
|
|
?THN50: PRINTI " "
|
|
CALL SPACE-FOOD
|
|
?CND45: CALL ULTIMATELY-IN?,SOUP
|
|
ZERO? STACK /?CND52
|
|
PRINTI "The soup boils away into the vacuum"
|
|
CALL ANTI-LITTER,SOUP
|
|
?CND52: CALL ULTIMATELY-IN?,NECTAR
|
|
ZERO? STACK /TRUE
|
|
PRINTI "The nectar boils away into the vacuum"
|
|
CALL ANTI-LITTER,NECTAR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?CLOSE \FALSE
|
|
EQUAL? HERE,AIRLOCK \FALSE
|
|
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
|
|
FCLEAR OUTER-AIRLOCK-DOOR,OPENBIT
|
|
CALL ULTIMATELY-IN?,EXPLOSIVE
|
|
ZERO? STACK /?CND62
|
|
IN? EXPLOSIVE,BOTTLE \?THN68
|
|
ZERO? FROZEN-LEVEL \?CND62
|
|
?THN68: CALL QUEUE,I-EXPLOSIVE-MELT,100
|
|
?CND62: CALL ULTIMATELY-IN?,BOTTLE
|
|
ZERO? STACK /?CND70
|
|
CALL DEQUEUE,I-FREEZE-CARBON-DIOXIDE
|
|
CALL QUEUE,I-MELT-CARBON-DIOXIDE,-1
|
|
?CND70: PRINTR "As soon as the door is closed, air hisses back into the airlock."
|
|
|
|
|
|
.FUNCT GENERIC-AIRLOCK-DOOR-F
|
|
EQUAL? PRSA,V?CLOSE \FALSE
|
|
FSET? INNER-AIRLOCK-DOOR,OPENBIT \?ELS10
|
|
RETURN INNER-AIRLOCK-DOOR
|
|
?ELS10: FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
|
|
RETURN OUTER-AIRLOCK-DOOR
|
|
|
|
|
|
.FUNCT AIRLOCK-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a cramped lock with doors above and below you. "
|
|
FSET? INNER-AIRLOCK-DOOR,OPENBIT /?ELS8
|
|
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?ELS8
|
|
PRINTI "Neither door"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "The door "
|
|
FSET? INNER-AIRLOCK-DOOR,OPENBIT \?ELS15
|
|
PRINTI "above"
|
|
JUMP ?CND6
|
|
?ELS15: PRINTI "below"
|
|
?CND6: PRINTI " is open."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT VACUUM-STORAGE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This area outside the airlock is being used for vacuum storage, in much the same way that your dad kept beer cold in the back yard during winters on Gallium. In fact, the villagers usually refer to this place as the ""vac yard."" Only your magnetic boots, clinging to the outer skin of the warehouse, are preventing you from floating off into space. Tethered all around you: those items in the Trading Post's inventory that, for reasons of temperature or anti-corrosion, must be stored here in space. The door to the airlock, ""above"" you, is "
|
|
CALL OPEN-CLOSED,OUTER-AIRLOCK-DOOR
|
|
PRINTC 46
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EXPLOSIVE-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "The explosive is a small cylinder about the size and shape of a pencil. It has a tiny label."
|
|
GRTR? EXPLOSIVE-MELT-COUNTER,0 \?ELS10
|
|
CALL DESCRIBE-EXPLOSIVE
|
|
RSTACK
|
|
?ELS10: CRLF
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?TAKE \?ELS14
|
|
FSET? EXPLOSIVE,TRYTAKEBIT \?ELS14
|
|
PRINTR "The explosive is currently trapped in the middle of a block of ice!"
|
|
?ELS14: EQUAL? PRSA,V?TAKE \?ELS18
|
|
IN? EXPLOSIVE,BOTTLE \?ELS18
|
|
GRTR? FROZEN-LEVEL,0 \?ELS18
|
|
CALL ITAKE
|
|
EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE
|
|
CALL QUEUE,I-EXPLOSIVE-MELT,100
|
|
RFALSE
|
|
?ELS18: EQUAL? PRSA,V?DISCONNECT \FALSE
|
|
ZERO? PRSI \FALSE
|
|
ZERO? EXPLOSIVE-CONNECTED /FALSE
|
|
CALL PERFORM,V?DISCONNECT,EXPLOSIVE,DETONATOR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-EXPLOSIVE-MELT
|
|
INC 'EXPLOSIVE-MELT-COUNTER
|
|
CALL VISIBLE?,EXPLOSIVE
|
|
ZERO? STACK /?CND1
|
|
ZERO? LIT /?CND1
|
|
PRINTI " "
|
|
CALL DESCRIBE-EXPLOSIVE
|
|
?CND1: EQUAL? EXPLOSIVE-MELT-COUNTER,3 \?ELS10
|
|
SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE
|
|
REMOVE EXPLOSIVE
|
|
RTRUE
|
|
?ELS10: CALL QUEUE,I-EXPLOSIVE-MELT,50
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DESCRIBE-EXPLOSIVE
|
|
PRINTI " The explosive "
|
|
EQUAL? EXPLOSIVE-MELT-COUNTER,1 \?ELS5
|
|
PRINTR "seems to be getting softer and losing its shape."
|
|
?ELS5: EQUAL? EXPLOSIVE-MELT-COUNTER,2 \?ELS7
|
|
PRINTR "is melting like a wax candle under a flame."
|
|
?ELS7: PRINTR "suddenly sublimes into a puff of FREZONE (tm) gas."
|
|
|
|
|
|
.FUNCT SPRAY-CAN-F
|
|
EQUAL? PRSA,V?SHAKE \?ELS5
|
|
GRTR? SPRAY-COUNTER,0 \?ELS10
|
|
PRINTR """Slosh."""
|
|
?ELS10: PRINTR "The can seems to be empty."
|
|
?ELS5: EQUAL? PRSA,V?READ \?ELS14
|
|
PRINTR "The lettering on the spray can reads:
|
|
""E-Z SPRAY SPORZ (tm)
|
|
A mixture of high-quality spores
|
|
Lowest gas-inducement levels of any brand!"""
|
|
?ELS14: EQUAL? PRSA,V?SPRAY \FALSE
|
|
ZERO? PRSI /?ELS19
|
|
PRINTR "The nozzle of the can isn't very directional; rather than spraying the can on something in particular, it seems to be more designed to simply produce a broad mist."
|
|
?ELS19: ZERO? SPRAY-COUNTER \?ELS22
|
|
PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
?ELS22: DEC 'SPRAY-COUNTER
|
|
PRINTI "A dusty mist puffs from the can and begins dissipating"
|
|
IN? BALLOON,HERE \?ELS27
|
|
PRINTI ". The "
|
|
PRINTD BALLOON
|
|
PRINTI " begins darting around the room, its mouth absurdly wide open"
|
|
JUMP ?CND25
|
|
?ELS27: EQUAL? HERE,PET-STORE \?ELS29
|
|
IN? BALLOON,CAGE \?ELS29
|
|
PRINTI ". The "
|
|
PRINTD BALLOON
|
|
PRINTI " puffs wildly around the cage, trying to get at the yummy spores"
|
|
JUMP ?CND25
|
|
?ELS29: CALL NEXT-ROOM?,BALLOON
|
|
ZERO? STACK /?CND25
|
|
EQUAL? HERE,BRIG,ARMORY /?CND25
|
|
PRINTI ". The "
|
|
PRINTD BALLOON
|
|
EQUAL? HERE,CHAPEL \?ELS38
|
|
FSET? ETERNAL-FLAME,ONBIT \?ELS38
|
|
PRINTR " appears in the doorway, stops, and hastily puffs away."
|
|
?ELS38: PRINTI " farts in, hungrily gobbling up the spores"
|
|
ZERO? CROSSED-BOUNDARY \?THN46
|
|
IN? BALLOON,ELEVATOR /?THN46
|
|
EQUAL? HERE,ELEVATOR \?CND43
|
|
?THN46: PRINTI ". As the "
|
|
PRINTD BALLOON
|
|
PRINTI " crosses the boundary "
|
|
ZERO? CROSSED-BOUNDARY /?ELS50
|
|
PRINTI "between the Command Module and the village"
|
|
JUMP ?CND48
|
|
?ELS50: PRINTI "of the elevator shaft"
|
|
?CND48: PRINTI ", it is caught unawares by the sudden "
|
|
EQUAL? CROSSED-BOUNDARY,1 /?THN57
|
|
EQUAL? HERE,ELEVATOR \?ELS56
|
|
?THN57: PRINTI "lack of gravity, but soon"
|
|
JUMP ?CND54
|
|
?ELS56: PRINTI "presence of gravity. It sinks almost to the floor before it"
|
|
?CND54: PRINTI " adjusts"
|
|
?CND43: MOVE BALLOON,HERE
|
|
MOVE LEASH,HERE
|
|
SET 'CROSSED-BOUNDARY,0
|
|
?CND25: ZERO? HANGING-IN-AIR /?CND61
|
|
PRINTI ". Like an epileptic yo-yo, you are flung against the ceiling, floor, and most of the walls"
|
|
?CND61: PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NEXT-ROOM?,OBJ,NEXT-DOOR=0,P=0,TEE,L
|
|
?PRG1: NEXTP HERE,P >P
|
|
ZERO? P /?REP2
|
|
LESS? P,LOW-DIRECTION /?PRG1
|
|
GETPT HERE,P >TEE
|
|
PTSIZE TEE >L
|
|
EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG1
|
|
GETB TEE,0
|
|
IN? OBJ,STACK \?PRG1
|
|
SET 'NEXT-DOOR,TRUE-VALUE
|
|
?REP2: ZERO? NEXT-DOOR \TRUE
|
|
EQUAL? HERE,MAKESHIFT-CONNECTOR \?ELS21
|
|
IN? OBJ,EAST-CONNECTION \?ELS21
|
|
SET 'CROSSED-BOUNDARY,1
|
|
RTRUE
|
|
?ELS21: EQUAL? HERE,EAST-CONNECTION \?ELS25
|
|
IN? OBJ,MAKESHIFT-CONNECTOR \?ELS25
|
|
SET 'CROSSED-BOUNDARY,2
|
|
RTRUE
|
|
?ELS25: EQUAL? HERE,GRIMY-PASSAGE \?ELS29
|
|
IN? OBJ,SOUTH-CONNECTION \?ELS29
|
|
SET 'CROSSED-BOUNDARY,1
|
|
RTRUE
|
|
?ELS29: EQUAL? HERE,SOUTH-CONNECTION \?ELS33
|
|
IN? OBJ,GRIMY-PASSAGE \?ELS33
|
|
SET 'CROSSED-BOUNDARY,2
|
|
RTRUE
|
|
?ELS33: EQUAL? HERE,SPACETRUCK \?ELS37
|
|
IN? OBJ,DOCKING-BAY-2 /TRUE
|
|
?ELS37: CALL GLOBAL-IN?,CALL-BUTTON,HERE
|
|
ZERO? STACK /?ELS41
|
|
IN? OBJ,ELEVATOR \?ELS41
|
|
GETP HERE,P?LEVEL
|
|
EQUAL? STACK,ELEVATOR-LEVEL /TRUE
|
|
?ELS41: EQUAL? HERE,ELEVATOR \FALSE
|
|
LOC OBJ
|
|
CALL GLOBAL-IN?,CALL-BUTTON,STACK
|
|
ZERO? STACK /FALSE
|
|
CALL META-LOC,OBJ
|
|
GETP STACK,P?LEVEL
|
|
EQUAL? STACK,ELEVATOR-LEVEL \FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT STRONG-BOX-F
|
|
EQUAL? PRSA,V?RAISE,V?MOVE,V?TAKE \?ELS5
|
|
PRINTR "The strong box is fastened down."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
|
PRINTI "The box has a HUGE lock"
|
|
IN? DRILLED-HOLE,HERE \?CND8
|
|
PRINTI ". There's a hole in the box"
|
|
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
|
|
?CND8: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE,V?UNLOCK,V?OPEN \?ELS12
|
|
PRINTR "The lock on the strongbox is only SLIGHTLY smaller than an average asteroid."
|
|
?ELS12: EQUAL? PRSA,V?PICK \?ELS14
|
|
PRINTR "You have neither the tools nor the expertise."
|
|
?ELS14: EQUAL? PRSA,V?SHOOT \?ELS16
|
|
REMOVE STRONG-BOX
|
|
MOVE COIN,HERE
|
|
CALL THIS-IS-IT,COIN
|
|
PRINTR "The strong box is vaporized, leaving a solitary coin!"
|
|
?ELS16: EQUAL? PRSA,V?DRILL \FALSE
|
|
CALL MAKE-HOLE-WITH-DRILL,STRONG-BOX
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DOC-SCHUSTER-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
SET 'SNIFFED,FALSE-VALUE
|
|
RETURN SNIFFED
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
IN? OSTRICH,HERE \FALSE
|
|
CALL ULTIMATELY-IN?,OSTRICH-NIP,PROTAGONIST
|
|
ZERO? STACK /FALSE
|
|
ZERO? SNIFFED \FALSE
|
|
SET 'SNIFFED,TRUE-VALUE
|
|
PRINTI " "
|
|
CALL PERFORM,V?SHOW,OSTRICH-NIP,OSTRICH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DOC-HOLE-F
|
|
EQUAL? PRSA,V?PUT \?ELS5
|
|
EQUAL? PRSI,PSEUDO-OBJECT \?ELS5
|
|
GETP PRSO,P?SIZE
|
|
GRTR? STACK,5 \?ELS12
|
|
PRINTR "It doesn't fit."
|
|
?ELS12: PRINTI "With a ""fwoomp!"""
|
|
CALL TPRINT-PRSO
|
|
PRINTI " is sucked out of sight."
|
|
CALL REMOVE-CAREFULLY,PRSO
|
|
CRLF
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SEARCH,V?REACH-IN \?ELS16
|
|
PRINTR "Your hand feels as though it is being tugged further into the hole. Not unusual, for a disposal hole."
|
|
?ELS16: EQUAL? PRSA,V?MEASURE,V?ENTER,V?EXAMINE \?ELS18
|
|
PRINTR "The hole is only twenty centimeters or so across."
|
|
?ELS18: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT OSTRICH-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It's a handsome, full-grown, female ostrich, nearly eight feet tall. As with all ostriches, half its height is its neck"
|
|
FSET? OSTRICH,TOUCHBIT /?CND6
|
|
PRINTI ". The ostrich looks to be asleep, or unconscious, or drunk"
|
|
?CND6: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SHOOT \?ELS10
|
|
REMOVE OSTRICH
|
|
PRINTR "The ostrich gives the last of a generous lifetime's supply of squawks before being consumed in fiery raygun death."
|
|
?ELS10: FSET? OSTRICH,TOUCHBIT /?ELS12
|
|
EQUAL? PRSA,V?SCARE \?ELS17
|
|
PRINTR "The ostrich is unconscious!"
|
|
?ELS17: EQUAL? PRSA,V?ALARM \?ELS19
|
|
PRINTI "Until that nip wears off, you'd have more luck trying to wake "
|
|
FSET? ALIEN-SHIP,TOUCHBIT \?ELS22
|
|
PRINTI "that skeleton in the alien ship"
|
|
JUMP ?CND20
|
|
?ELS22: PRINTI "the dead"
|
|
?CND20: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS19: EQUAL? PRSA,V?DRILL \FALSE
|
|
CALL JIGS-UP,STR?352
|
|
RSTACK
|
|
?ELS12: EQUAL? PRSA,V?SHOW \?ELS30
|
|
EQUAL? PRSO,OSTRICH-NIP \?ELS30
|
|
PRINTR "The ostrich sniffs and moves closer to you."
|
|
?ELS30: EQUAL? PRSA,V?GIVE \?ELS34
|
|
EQUAL? PRSO,OSTRICH-NIP \?ELS34
|
|
FCLEAR OSTRICH,TOUCHBIT
|
|
REMOVE OSTRICH-NIP
|
|
PRINTR "The ostrich begins gleefully pecking at the nip, accidentally swallows it, staggers around for a bit, and then finally keels over into a grinning pile of intoxicated ostrich."
|
|
?ELS34: EQUAL? PRSA,V?COMFORT \?ELS38
|
|
PRINTI "Your attempt simply frightens the ostrich. "
|
|
CALL PERFORM,V?SCARE,OSTRICH
|
|
RTRUE
|
|
?ELS38: EQUAL? PRSA,V?SCOLD,V?KICK,V?SCARE /?THN41
|
|
EQUAL? PRSA,V?TOUCH,V?MUNG,V?KILL /?THN41
|
|
EQUAL? PRSA,V?DRILL,V?HUG \FALSE
|
|
?THN41: PRINTI "The ostrich emits a terrified squawk and sticks its head "
|
|
EQUAL? HERE,DOC-SCHUSTER \?ELS45
|
|
PRINTI "into the disposal hole"
|
|
JUMP ?CND43
|
|
?ELS45: EQUAL? HERE,PX \?ELS47
|
|
PRINTI "into the dispenser hole"
|
|
FIRST? DISPENSER \?CND43
|
|
INC 'ROBOT-EVILNESS
|
|
ADD SCORE,6 >SCORE
|
|
PRINTI ". It jerks its head back out, squawking even louder, and a moment later a "
|
|
FIRST? DISPENSER /?KLU55
|
|
?KLU55: PRINTD STACK
|
|
PRINTI " falls out of the hole and lands on the floor."
|
|
CRLF
|
|
FIRST? DISPENSER /?KLU56
|
|
?KLU56: MOVE STACK,HERE
|
|
RTRUE
|
|
?ELS47: EQUAL? HERE,ROBOT-SHOP \?ELS52
|
|
PRINTR "into the heating chamber. After a quick singe, it jerks its head out, squawking in pain."
|
|
?ELS52: PRINTI "under its wing"
|
|
?CND43: PRINTR " for a moment."
|
|
|
|
|
|
.FUNCT SHADY-DANS-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This space trailer houses the office of Shady Dan, the village's used spaceship salesman. Dan isn't here, though. Connectors lead northwest and downward. "
|
|
PRINT DANS-LOT-DESC
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ID-CHANGER-SLOT-F
|
|
EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?ELS5
|
|
EQUAL? PRSO,PSEUDO-OBJECT \?ELS5
|
|
CALL PERFORM-PRSA,ID-CHANGER,PRSI
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
|
|
CALL PERFORM-PRSA,PRSO,ID-CHANGER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ID-CHANGER-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "The machine is of very flimsy construction. An inspection reveals only two notable features: a keypad and a very small slot. The machine is currently o"
|
|
FSET? ID-CHANGER,ACTIVEBIT \?ELS8
|
|
PRINTC 110
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "ff"
|
|
?CND6: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS12
|
|
PRINT HUH
|
|
RTRUE
|
|
?ELS12: EQUAL? PRSA,V?TAKE \?ELS14
|
|
PRINTR "It's bolted down."
|
|
?ELS14: EQUAL? PRSA,V?PUT \?ELS16
|
|
EQUAL? PRSI,ID-CHANGER \?ELS16
|
|
EQUAL? PRSO,ID-CARD \?ELS23
|
|
MOVE ID-CARD,ID-CHANGER
|
|
FSET? ID-CHANGER,ACTIVEBIT \?ELS28
|
|
PRINTI "A voice from the machine says, """
|
|
ZERO? ID-SCRAMBLED /?ELS33
|
|
PRINTR "Magnetic card data is scrambled; unable to read."""
|
|
?ELS33: PRINTI "Current rank is "
|
|
PRINTN ID-RANK
|
|
PRINTI ": "
|
|
SUB ID-RANK,1
|
|
GET ID-RANK-LIST,STACK
|
|
PRINT STACK
|
|
PRINTR ". Enter new rank on keypad."""
|
|
?ELS28: PRINTR "The card fits neatly into the opening."
|
|
?ELS23: CALL DOESNT-FIT,STR?355
|
|
RSTACK
|
|
?ELS16: EQUAL? PRSA,V?ON \FALSE
|
|
FSET? ID-CHANGER,ACTIVEBIT /FALSE
|
|
IN? ID-CARD,ID-CHANGER \FALSE
|
|
MOVE ID-CARD,PROTAGONIST
|
|
FSET ID-CHANGER,ACTIVEBIT
|
|
PRINTI "The machine begins whirring lightly. "
|
|
CALL PERFORM,V?PUT,ID-CARD,ID-CHANGER
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ID-CHANGER-TYPE
|
|
IN? ID-CARD,ID-CHANGER \?ELS5
|
|
FSET? ID-CHANGER,ACTIVEBIT \?ELS5
|
|
ZERO? ID-SCRAMBLED /?ELS12
|
|
CALL RECORDING,STR?356
|
|
RSTACK
|
|
?ELS12: GRTR? P-NUMBER,10 \?ELS15
|
|
PRINTI """Error!"" chirps the "
|
|
PRINTD ID-CHANGER
|
|
PRINTR ". ""The highest rank number recognized by the Stellar Patrol is 10."""
|
|
?ELS15: LESS? P-NUMBER,1 \?ELS17
|
|
PRINTR "You may DESERVE a rank that low, but unfortunately it doesn't exist."
|
|
?ELS17: SET 'ID-RANK,P-NUMBER
|
|
PRINTI """New rank is "
|
|
PRINTN ID-RANK
|
|
PRINTI ": "
|
|
SUB ID-RANK,1
|
|
GET ID-RANK-LIST,STACK
|
|
PRINT STACK
|
|
PRINTR "."""
|
|
?ELS5: PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT JUNK-YARD-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
FSET? JUNK-YARD,TOUCHBIT /FALSE
|
|
ZERO? VERBOSITY /FALSE
|
|
ZERO? LIT /FALSE
|
|
PRINTI "Studio
|
|
You have entered a cluttered space bubble in which an artist has been attempting to build a sculpture in the style of 91st-century scrap art. The sculpture is floating in the center... At second glance, you realize that the sculpture is actually just a pile of random garbage"
|
|
PRINT ELLIPSIS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BOOTS-F
|
|
EQUAL? PRSA,V?TAKE-OFF \?ELS5
|
|
EQUAL? HERE,VACUUM-STORAGE /?THN8
|
|
EQUAL? HERE,AIRLOCK \?ELS5
|
|
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \?ELS5
|
|
?THN8: PRINTR "Are you nuts? The boots are the only thing preventing you from floating off into space!"
|
|
?ELS5: EQUAL? PRSA,V?ATTRACT,V?TAKE-WITH \?ELS13
|
|
EQUAL? PRSO,MEDIUM-BIT \?ELS13
|
|
IN? MEDIUM-BIT,HEATING-CHAMBER \?ELS13
|
|
PRINTR "The bit is too far below the opening of the heating chamber to be attracted by the magnetic pull of the boots."
|
|
?ELS13: EQUAL? PRSA,V?PUT-ON \?ELS17
|
|
EQUAL? PRSI,MEDIUM-BIT,HEATING-CHAMBER \?ELS17
|
|
IN? MEDIUM-BIT,HEATING-CHAMBER \?ELS17
|
|
CALL PERFORM,V?TAKE-WITH,MEDIUM-BIT,BOOTS
|
|
RTRUE
|
|
?ELS17: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
FSET? BOOTS,WORNBIT \?ELS26
|
|
PRINTR "Your feet are in the boots."
|
|
?ELS26: PRINTR "There's nothing in the boots."
|
|
|
|
.ENDI
|