leathergoddesses-gold/mars.zil

4362 lines
131 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"MARS for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
<ROOM MARTIAN-DESERT
(LOC ROOMS)
(DESC "Martian Desert")
(LDESC
"As you wander amidst these towering dunes of red Martian sand, you notice
three distinct pathways: north, east, and west.")
(NORTH TO RUINED-CASTLE-1)
(EAST TO RUINED-CASTLE-2)
(WEST TO RUINED-CASTLE-3)
(FLAGS RLANDBIT ONBIT)
(GLOBAL DUNES)>
<GLOBAL CASTLES-SEEN 0>
<ROUTINE NAME-CASTLE ()
<COND (<FSET? ,HERE ,TOUCHBIT>
<RFALSE>)>
<COND (<EQUAL? ,CASTLES-SEEN 0>
<PUTP ,HERE ,P?SDESC "Ruin">)
(<EQUAL? ,CASTLES-SEEN 1>
<PUTP ,HERE ,P?SDESC "Another Ruin">)
(<EQUAL? ,CASTLES-SEEN 2>
<PUTP ,HERE ,P?SDESC "Yet Another Ruin">)>
<SETG CASTLES-SEEN <+ ,CASTLES-SEEN 1>>>
<ROUTINE CASTLE-NOTE ()
<COND (<EQUAL? ,CASTLES-SEEN 2>
<TELL
"(There do seem to be quite a few of them around here, eh?) ">)
(<EQUAL? ,CASTLES-SEEN 3>
<TELL
"(It's no wonder this section of Mars is considered the Ruined Castle
Capital of the Solar System.) ">)>>
<ROOM RUINED-CASTLE-1
(LOC ROOMS)
(DESC "Ruined Castle")
(SDESC "")
(SOUTH TO MARTIAN-DESERT)
(OUT TO MARTIAN-DESERT)
(NORTH TO THRONE-ROOM)
(IN TO THRONE-ROOM)
(FLAGS RLANDBIT ONBIT)
(ACTION RUINED-CASTLE-1-F)>
<ROUTINE RUINED-CASTLE-1-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<NAME-CASTLE>)
(<EQUAL? .RARG ,M-LOOK>
<TELL "You stand amongst the ruins of a mighty castle. ">
<CASTLE-NOTE>
<TELL
"The only part of the castle that is more than a pile of rubble is to the
north. A path leads out of the ruin to the south.">)>>
<ROOM THRONE-ROOM
(LOC ROOMS)
(DESC "Throne Room")
(SOUTH TO RUINED-CASTLE-1)
(OUT TO RUINED-CASTLE-1)
(NORTH TO ROYAL-DOCKS)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(ACTION THRONE-ROOM-F)
;(THINGS <PSEUDO (ROYAL CROWN MITRE-CROWN-F)
(MITRE CROWN MITRE-CROWN-F)
(KING\'S CROWN MITRE-CROWN-F)
(GOLDEN HAIR GOWN-F)
(WHITE GOWN GOWN-F)
(FLOWING GOWN GOWN-F)>)>
<OBJECT MITRE-CROWN
(LOC THRONE-ROOM)
(DESC "Mitre's crown")
(SYNONYM CROWN)
(ADJECTIVE ROYAL MITRE\'S KING\'S)
(FLAGS NDESCBIT)
(ACTION MITRE-CROWN-F)>
<OBJECT GOWN
(LOC THRONE-ROOM)
(DESC "flowing white gown")
(SYNONYM HAIR GOWN)
(ADJECTIVE GOLDEN FLOWING WHITE)
(FLAGS NDESCBIT)
(ACTION GOWN-F)>
<ROUTINE THRONE-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<REMOVE ,MITRE> ;"this is supposed to make Mitre..."
<MOVE ,MITRE ,HERE> ;"...the first object described."
<TELL
"This is the " 'HERE " of the once-potent " 'MITRE ", of legendary fame.
Of course, the version you've probably heard is significantly warped from
What Really Happened.|
In the diseased version of the legend commonly transmitted on Earth, Mitre
is called Midas. The King was granted his wish that everything he touched
would turn to gold. His greed caught up with him when he transformed even his
own daughter into gold.|
" 'MITRE "'s wish was, in fact, that everything he touched would turn to"
,45-DEGREE-ANGLE "s. ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "T">)
(T
<TELL
"No one has ever explained this strange wish; the most likely hypothesis
is a sexual fetish. In any case, t">)>
<TELL
"he tale has a similar climax, with Mitre turning his own
daughter into a" ,45-DEGREE-ANGLE ".">)>>
<ROUTINE MITRE-CROWN-F ()
<COND (<VERB? TAKE>
<TELL ,MORE-ROYAL-BLOOD>)
(<VERB? EXAMINE>
<TELL "It's not very round for a crown." CR>)>>
<ROUTINE GOWN-F ()
<COND (<VERB? TAKE>
<PERFORM-PRSA ,THETA>
<RTRUE>)>>
<OBJECT MITRE
(LOC THRONE-ROOM)
(DESC "King Mitre")
(DESCFCN MITRE-F)
(SYNONYM KING MITRE)
(ADJECTIVE KING)
(FLAGS ACTORBIT NARTICLEBIT)
(ACTION MITRE-F)>
<ROUTINE MITRE-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL " King Mitre sits upon the throne, looking ">
<COND (<FSET? ,THETA ,MUNGBIT>
<TELL
"dejected and lonely. Next to him is a pile of" ,45-DEGREE-ANGLE "s. One
stands out from the others, thanks to its golden hair and flowing white gown">)
(T
<TELL "delirious with joy">)>
<TELL
". The main entrance of the throne room is to the south, but a
tight opening leads north.">)
(<EQUAL? ,MITRE ,WINNER>
<COND (<OR <AND <VERB? WHAT>
<PRSO? ,LGOP>>
<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,LGOP>>>
<TELL
"\"Leather fetishists, every one of them. Me, I'm not into fetishes.\"" CR>)
(<AND <VERB? CHEER>
<PRSO? ,ROOMS>>
<SETG WINNER ,PROTAGONIST>
<PERFORM-PRSA ,MITRE>
<SETG WINNER ,MITRE>
<RTRUE>)
(<AND <VERB? TOUCH>
<FSET? ,PRSO ,TAKEBIT>
<NOT <PRSO? ,GARMENT ,COMIC-BOOK>>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?GIVE ,PRSO ,MITRE>
<SETG WINNER ,MITRE>
<RTRUE>)
(T
<TELL "\"I don't feel like talking. I'm too ">
<COND (<FSET? ,THETA ,MUNGBIT>
<TELL "un">)>
<TELL "happy.\"" CR>
<STOP>)>)
(<VERB? EXAMINE>
<TELL "The old king looks very ">
<COND (<FSET? ,THETA ,MUNGBIT>
<TELL "down">)
(T
<TELL "up">)>
<TELL
". His appearance is rather odd, since his clothes, his jewelry, his
crown, even his very throne, all have a rather angular appearance." CR>)
(<OR <AND <VERB? ASK-ABOUT>
<PRSI? ,THETA>>
<AND <VERB? SHOW>
<PRSO? ,THETA>>>
<COND (<FSET? ,THETA ,MUNGBIT>
<TELL "The king weeps pitifully." CR>)
(T
<TELL "The king beams." CR>)>)
(<AND <VERB? GIVE>
<PRSI? ,MITRE>>
<REMOVE ,PRSO>
<TELL
"As Mitre touches" T ,PRSO "," T ,PILE-OF-ANGLES " becomes a bit larger." CR>)
(<VERB? TOUCH>
<TELL "It only works the other way." CR>)
(<AND <VERB? SHAKE-WITH>
<PRSO? ,HANDS>>
<TELL
"As you join the other angles in the pile, life becomes very boring. Two
centuries later, following Mitre's death, the " 'PILE-OF-ANGLES " is sold to
a geometry teacher on Baffin Island, who uses you to demonstrate bisections,
trigonometric proofs, and basic picture framing techniques." CR>
<FINISH>)>>
<OBJECT THETA
(LOC THRONE-ROOM)
(SDESC "different-looking angle")
(LDESC
"Princess Theta stands demurely by her father's throne, buried up
to her thighs in forty-five degree angles.")
(SYNONYM ANGLE PRINCE DAUGHTER THETA)
(ADJECTIVE HIS DIFFERENT FORTY DEGREE NUMBER KING\'S DAUGHTER PRINCE)
(GENERIC GENERIC-ANGLE-F)
(FLAGS NDESCBIT MUNGBIT)
(ACTION THETA-F)>
<ROUTINE THETA-F ()
<COND (<AND <ADJ-USED ,W?NUMBER>
<NOT <EQUAL? ,P-NUMBER 45>>>
<NO-X-DEGREE-ANGLE> ;"will this really work?")
(<EQUAL? ,THETA ,WINNER>
<COND (<OR <AND <VERB? WHAT>
<PRSO? ,LGOP>>
<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,LGOP>>>
<TELL
"\"The travelling acrobatic troupe! I saw them while I was mooning on
Phobos. Their costumes are made of pure Chomperhide leather.\"" CR>)
(T
<TELL
"The princess, whose recent experience has made her more obtuse,
just looks at you dumbly." CR>)>)
(<AND <VERB? MEASURE>
<FSET? ,THETA ,MUNGBIT>>
<PERFORM-PRSA ,PILE-OF-ANGLES>
<RTRUE>)
(<VERB? EXAMINE>
<COND (<FSET? ,THETA ,MUNGBIT>
<TELL
"The angle has the sort of golden hair and satiny robes that one
normally associates with princesses." CR>)
(T
<TELL "The princess, once acute, is now cute." CR>)>)
(<VERB? TAKE KISS FUCK TOUCH BEND>
<TELL
"Mitre growls, \"Keep " 'HANDS "s off my daughter.\"" CR>)
(<VERB? MARRY>
<COND (<FSET? ,THETA ,MUNGBIT>
<WANT-CHILDREN "angular">)
(T
<TELL
"\"Only one of royal blood shall bisect ... er, wed ... my
Theta!\" bellows Mitre." CR>)>)>>
<ROUTINE WANT-CHILDREN (STRING)
<SETG AWAITING-REPLY 2>
<QUEUE I-REPLY 2>
<TELL "Would you really want " .STRING " children?" CR>>
<OBJECT EIGHTY-TWO-DEGREE-ANGLE
(DESC "eighty-two degree angle")
(NO-T-DESC "eighy-wo degree angle")
(SYNONYM ANGLE)
(ADJECTIVE EIGHTY EIGHY DEGREE NUMBER)
(FLAGS TAKEBIT VOWELBIT)
(GENERIC GENERIC-ANGLE-F)
(ACTION EIGHTY-TWO-DEGREE-ANGLE-F)>
<ROUTINE EIGHTY-TWO-DEGREE-ANGLE-F ()
<COND (<AND <ADJ-USED ,W?NUMBER>
<NOT <EQUAL? ,P-NUMBER 82>>>
<NO-X-DEGREE-ANGLE> ;"will this really work?")
(<AND <VERB? MEASURE>
<NOT <FSET? ,EIGHTY-TWO-DEGREE-ANGLE ,UNTEEDBIT>>>
<TELL "82 degrees." CR>)>>
<ROUTINE NO-X-DEGREE-ANGLE ()
<TELL ,YOU-CANT-SEE-ANY N ,P-NUMBER " degree angle here!" CR>>
<ROUTINE GENERIC-ANGLE-F ()
<COND (<FSET? ,THETA ,MUNGBIT>
<RFALSE>)
(T ;"the princess isn't an angle, at the moment"
,EIGHTY-TWO-DEGREE-ANGLE)>>
<OBJECT PILE-OF-ANGLES
(LOC THRONE-ROOM)
(DESC "pile of angles")
(SYNONYM PILE ANGLES)
(ADJECTIVE FORTY DEGREE NUMBER)
(FLAGS NDESCBIT)
(ACTION PILE-OF-ANGLES-F)>
<ROUTINE PILE-OF-ANGLES-F ()
<COND (<AND <ADJ-USED ,W?NUMBER>
<NOT <EQUAL? ,P-NUMBER 45>>>
<NO-X-DEGREE-ANGLE> ;"will this really work?")
(<VERB? COUNT>
<TELL "Lots." CR>)
(<VERB? TAKE>
<TELL "The " 'PILE-OF-ANGLES " is too big to carry.">
<COND (<FSET? ,THETA ,MUNGBIT>
<TELL
" Besides, other than" T ,THETA ", none of them are interesting.">)>
<CRLF>)
(<VERB? MEASURE>
<TELL "45 degrees." CR>)>>
<ROOM RUINED-CASTLE-2
(LOC ROOMS)
(DESC "Ruined Castle")
(SDESC "")
(WEST TO MARTIAN-DESERT)
(EAST TO MARTIAN-DESSERT)
(FLAGS RLANDBIT ONBIT)
(GLOBAL DULL-DUST)
(ACTION RUINED-CASTLE-2-F)
;(THINGS <PSEUDO (<> DUST UNIMPORTANT-THING-F)
(SMALL CROWN FROG-CROWN-F)
(GOLD CROWN FROG-CROWN-F)
(FROG\'S CROWN FROG-CROWN-F)>)>
<OBJECT DULL-DUST
(LOC LOCAL-GLOBALS)
(DESC "dust")
(SYNONYM DUST)
(FLAGS NDESCBIT)
(ACTION UNIMPORTANT-THING-F)>
<OBJECT FROG-CROWN
(LOC RUINED-CASTLE-2)
(DESC "small gold crown")
(SYNONYM CROWN)
(ADJECTIVE SMALL GOLD FROG\'S)
(FLAGS NDESCBIT)
(ACTION FROG-CROWN-F)>
<ROUTINE FROG-CROWN-F ()
<COND (<VERB? TAKE>
<TELL ,MORE-ROYAL-BLOOD>)
(<VERB? EXAMINE>
<TELL "It's tiny." CR>)>>
<ROUTINE RUINED-CASTLE-2-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<FCLEAR ,RUINED-CASTLE-2 ,MUNGBIT>
<NAME-CASTLE>)
(<EQUAL? .RARG ,M-LOOK>
<TELL "This ancient castle now lies in ruins. ">
<CASTLE-NOTE>
<TELL
"All that remains of its once-proud ramparts are dust and rubble, and an
occasional stone block. A path leads away from the ruin to the west">
<UNCHARTABLE-DESERT "east">)>>
<ROUTINE UNCHARTABLE-DESERT (STRING)
<TELL ". To the " .STRING ": unchartable desert.">>
<OBJECT FROG
(LOC RUINED-CASTLE-2)
(DESC "frog")
(LDESC
"Sitting on one of the stone blocks is a large green frog. Something about
it catches your eye.")
(SYNONYM FROG PRINCE)
(ADJECTIVE ENCHANTED LARGE GREEN)
(ACTION FROG-F)>
<ROUTINE FROG-F ()
<COND (<OR <VERB? TELL LISTEN>
<AND <VERB? GIVE>
<PRSI? ,FROG>>>
<TELL "\"Ribit.\"" CR>
<COND (<VERB? TELL>
<STOP>)>
<RTRUE>)
(<VERB? EAT TASTE SUCK SMELL>
<TELL ,YECHH>)
(<VERB? EXAMINE>
<TELL
"You realize what aroused your attention: the tiny gold crown on the frog's
head. The frog is otherwise totally ordinary. Ordinary for a frog, that is.
By any other measure it is a repulsive creature, with swollen eyes, oozing
warts, slimy skin, and a grating croak." CR>)
(<VERB? TOUCH>
<TELL "Huge, ugly warts cover every inch of " 'YOUR-BODY>
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL ", but">)
(T
<TELL ". Fortunately for your sex life,">)>
<TELL " they quickly fade away." CR>)
(<VERB? MARRY>
<WANT-CHILDREN "green">)
(<VERB? KISS>
<TELL "You lean forward">
<COND (<FSET? ,EYES ,MUNGBIT>
<TELL " with " 'EYES " ">
<COND (<EQUAL? ,EYES ,HAND-COVER>
<TELL "covered">)
(T
<TELL "closed">)>
<COND (<FSET? ,NOSE ,MUNGBIT>
<COND (<FSET? ,EARS ,MUNGBIT>
<TELL ",">)
(T
<TELL " and">)>
<TELL " " 'NOSE " shut">
<COND (<FSET? ,EARS ,MUNGBIT>
<COND (<FSET? ,MOUTH ,MUNGBIT>
<TELL ",">)
(T
<TELL " and">)>
<TELL " " 'EARS " ">
<COND (<EQUAL? ,EARS ,HAND-COVER>
<TELL "covered">)
(T
<TELL "stuffed up">)>
<COND (<FSET? ,MOUTH ,MUNGBIT>
<FROG-SEX-SCENE>
<RTRUE>)
(T
<TELL
,ABOUT-TO-KISS "the thought of slimy frog lips pressing against
your own makes you shudder away." CR>)>)
(T
<TELL
,ABOUT-TO-KISS "the creature lets loose a loud, croaking \"ribit.\" You
admit that you are incapable of kissing under such circumstances." CR>)>)
(T
<TELL
,ABOUT-TO-KISS "the stench of old pond scum overwhelms you,
and you lurch back, retching." CR>)>)
(T
<TELL
,ABOUT-TO-KISS "the sight of its green warts and slimy skin make it
impossible to continue." CR>)>)>>
<ROUTINE FROG-SEX-SCENE ()
<MOVE ,FROG ,LOCAL-GLOBALS>
<MOVE ,BLENDER ,HERE>
<INCREMENT-SCORE 17 17 T>
<OPEN-EYES-AND-REMOVE-HANDS>
<TELL
" and your lips smeared with balm. Planting " 'MOUTH " solidly against
the frog's, you kiss deeply. ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL
"The kiss is surprisingly pleasant, until you notice that you're embracing a ">
<COND (,MALE
<TELL "beautiful princess. Sh">)
(T
<TELL "handsome prince. H">)>
<TELL
"e leaps back, blushing deeply. \"We're ... we're not married,\" ">
<SHE-HE>
<TELL " stammers. Then, still reddening, ">
<SHE-HE>
<TELL " vanishes into thin air! Y">)
(T
<FSET ,RUINED-CASTLE-2 ,MUNGBIT> ;"for V-DIAGNOSE"
<TELL
"When you feel a tongue sliding into " 'MOUTH ", revulsion gives way to
pleasure, as the no-longer-enchanted but quite enchanting prince">
<COND (,MALE
<TELL "ss">)>
<TELL " presses against you. ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "Some time later, after the prince">
<COND (,MALE
<TELL "ss">)>
<TELL " has departed...">)
(T
<COND (,MALE
<TELL
"Rubbing her hot, naked body against yours, s">)
(T
<TELL
"As your arms grip his naked, muscular back, ">)>
<TELL
"he effortlessly slips off your " D ,GARMENT ". A warm and wild feeling springs
from your loins, spreading like a fiery potion through your veins. Within
moments you are joined in passionate love, and just as a quick and lustful
orgasm seems inevitable, a force crackles in the air, and you are alone, naked,
sweating, and unsatisfied.">)>
<TELL CR " As you gather up your garment and put it on, y">)>
<TELL "ou notice" A ,BLENDER " on the ground. " ,ITS-ENGRAVED>
<COND (<IN? ,SIDEKICK ,HERE>
<TELL
" " D ,SIDEKICK " is at the other end of the ruin, sifting through some
rubble, oblivious to your \"experience.\"">)>
<CRLF>>
<OBJECT BLENDER
(DESC "common household blender")
(SYNONYM BLENDER MIXER ENGRAVING)
(ADJECTIVE COMMON HOUSEHOLD)
(FLAGS TAKEBIT LIGHTBIT READBIT)
(SIZE 8)
(ACTION BLENDER-F)>
<ROUTINE BLENDER-F ()
<COND (<VERB? READ>
<COND (<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>
<TELL "\"Dearest," CR>
<COND (<EQUAL? ,NAUGHTY-LEVEL 2>
<TELL " Sorry to leave so abruptly; p">)
(T
<TELL " P">)>
<TELL "erhaps some day we will meet again">
<COND (<EQUAL? ,NAUGHTY-LEVEL 2>
<TELL ", and finish what we began">)>
<TELL ". ">)
(T
<TELL "\"">)>
<TELL
"Please accept this token of my gratitude for delivering me from
enchantment.\"" CR>)
(<VERB? EXAMINE>
<COND (<NOUN-USED ,W?ENGRAVING ,BLENDER>
<PERFORM ,V?READ ,BLENDER>
<RTRUE>)
(T
<TELL ,ITS-ENGRAVED CR>)>)
(<VERB? ON>
<TELL "\"Whirr.\"" CR>)
(<VERB? LOOK-INSIDE>
<TELL "It's empty." CR>)
(<AND <VERB? PUT>
<PRSI? ,BLENDER>>
<TELL "But" T ,PRSO " doesn't need blending." CR>)>>
<ROOM RUINED-CASTLE-3
(LOC ROOMS)
(DESC "Ruined Castle")
(SDESC "")
(EAST TO MARTIAN-DESERT)
(NW TO HICKORY-AND-DICKORY-DOCK)
(FLAGS RLANDBIT ONBIT)
(GLOBAL HOLE)
(HOLE-DESTINATION BASEMENT)
(ACTION RUINED-CASTLE-3-F)>
<ROUTINE RUINED-CASTLE-3-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<NAME-CASTLE>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"Wind whistles among the fallen archways, crumbled balustrades, and black
circle of this ruined castle. ">
<CASTLE-NOTE>
<TELL "Paths lead east and northwest through the rubble.">)>>
<ROOM HICKORY-AND-DICKORY-DOCK
(LOC ROOMS)
(DESC "Hickory & Dickory Dock")
(LDESC
"This dock, which extends north into a broad canal, is crafted of fine
woods from across the solar system: hickory wood from the forests of
Earth, and dickory wood from the jungles of Venus. A path leads south.")
(SOUTH TO RUINED-CASTLE-3)
(NORTH SORRY "If you want to jump in the canal, say so.")
(NE SORRY "If you want to jump in the canal, say so.")
(NW SORRY "If you want to jump in the canal, say so.")
(FLAGS RLANDBIT ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER)>
<OBJECT MOUSE
(LOC HICKORY-AND-DICKORY-DOCK)
(DESC "mouse")
(FDESC "You spot a little white marsmouse running along the dock.")
(SYNONYM MOUSE MARSMOUSE)
(ADJECTIVE SMALL WHITE)
(SIZE 3)
(FLAGS TAKEBIT TRYTAKEBIT)
(ACTION MOUSE-F)>
<ROUTINE MOUSE-F ()
<COND (<VERB? CLICK>
<SETG AWAITING-REPLY 2>
<QUEUE I-REPLY 2>
<TELL "You expect maybe a window to open?" CR>)
(<AND <VERB? SHOW>
<PRSO? ,PAINTING>
<NOT <FSET? ,PAINTING ,UNTEEDBIT>>>
<FCLEAR ,MOUSE ,TRYTAKEBIT>
<FSET ,MOUSE ,TOUCHBIT>
<QUEUE I-MOUSE 2>
<TELL "The mouse freezes with fear." CR>)
(<AND <VERB? GIVE>
<PRSI? ,MOUSE>>
<TELL "Marsmice, like earthmice, prefer cheese." CR>)
(<VERB? CATCH>
<PERFORM ,V?TAKE ,MOUSE>
<RTRUE>)
(<AND <TOUCHING? ,MOUSE>
<IN? ,MOUSE ,HERE>
<FSET? ,MOUSE ,TRYTAKEBIT>>
<TELL "The little fellow scurries easily away from you." CR>)
(<AND <VERB? FOLLOW>
<EQUAL? ,P-PRSA-WORD ,W?CHASE>
<IN? ,MOUSE ,HERE>
<FSET? ,MOUSE ,TRYTAKEBIT>>
<PERFORM ,V?TAKE ,MOUSE>
<RTRUE>)
(<AND <VERB? TAKE>
<NOT <FSET? ,MOUSE ,MUNGBIT>>
<L? <CCOUNT ,PROTAGONIST> 11>>
<FSET ,MOUSE ,MUNGBIT>
<INCREMENT-SCORE 14 9 T>
<RFALSE>)
(<VERB? MEASURE>
<TELL "Tiny." CR>)
(<VERB? TOUCH>
<TELL "The mouse squeaks happily." CR>)>>
<ROUTINE I-MOUSE ()
<FSET ,MOUSE ,TRYTAKEBIT>
<COND (<IN? ,MOUSE ,RUINED-CASTLE-1>
<FCLEAR ,MOUSE ,TOUCHBIT>)>
<COND (<IN? ,MOUSE ,HERE>
<TELL " The mouse relaxes and begins scampering about." CR>)
(T
<RFALSE>)>>
<ROOM ROYAL-DOCKS
(LOC ROOMS)
(DESC "Royal Docks")
(SOUTH TO THRONE-ROOM)
(NORTH SORRY "If you want to jump in the canal, say so.")
(NE SORRY "If you want to jump in the canal, say so.")
(NW SORRY "If you want to jump in the canal, say so.")
(IN TO THRONE-ROOM)
(FLAGS RLANDBIT ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER)
(ACTION ROYAL-DOCKS-F)>
<ROUTINE ROYAL-DOCKS-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "This dock juts">)
(T
<TELL
"During the peak of King Mitre's reign, a cruel joke went around
the kingdom that Mitre's two greatest loves were his Royal Docks
and his Royal Ducks. The joke was never very good and has long
since been forgotten, and the ducks perished years ago from a
sexually transmitted disease, but the docks remain, jutting">)>
<TELL
" into a wide Martian Canal which flows from west to east. Behind you,
to the south, is a ruined castle.">)>>
<OBJECT BARGE
(LOC ROYAL-DOCKS)
(DESC "royal barge")
(DESCFCN BARGE-F)
(SYNONYM BARGE BOAT GONDOLA CONTROL CONTROLS BUTTONS)
(ADJECTIVE ROYAL WOODEN CEDAR CEDARWOOD SIMPLE)
(GENERIC GENERIC-BARGE-F)
(FLAGS INBIT VEHBIT CONTBIT SEARCHBIT OPENBIT)
(CAPACITY 200)
(ACTION BARGE-F)>
<ROUTINE BARGE-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL
" A barge, hand-crafted from fine Martian cedarwood, is ">
<COND (<EQUAL? ,HERE ,CANAL>
<TELL "floating nearby.">)
(T
<TELL "moored at the end of the dock.">)>)
(<AND <EQUAL? ,HERE ,CANAL>
<IN? ,PROTAGONIST ,RAFT>
<NOT <EQUAL? ,RAFT-LOC-NUM ,BARGE-LOC-NUM>>>
<CANT-SEE ,BARGE>)
(<VERB? SINK>
<TELL
"The barge is unsinkable. (Then again, so was the Titanic.)" CR>)
(<VERB? UNTIE LAUNCH>
<TELL "The barge isn't moored">
<COND (<NOT <IN? ,BARGE ,CANAL>>
<TELL " with ropes">)>
<TELL ,PERIOD-CR>)
(<VERB? EXAMINE>
<COND (<OR <NOUN-USED ,W?CONTROL ,BARGE>
<NOUN-USED ,W?CONTROLS ,BARGE>
<NOUN-USED ,W?BUTTONS ,BARGE>>
<TELL
"The controls consist of a " 'ORANGE-BUTTON ", and a " 'PURPLE-BUTTON
". Both buttons have writing on them." CR>)
(T
<TELL
"This large barge could host a host of royal guests.">
<COND (<NOT <EQUAL? ,HERE ,CANAL>>
<TELL
" The barge rests immobile at the dockside, despite a strong current
and no visible mooring lines.">)>
<TELL
" There are some simple controls on the side of the barge">
<COND (<NOT <EQUAL? ,HERE ,CANAL>>
<TELL " nearest the dock">)>
<TELL ,PERIOD-CR>)>)
(<VERB? READ>
<PERFORM-PRSA ,ORANGE-BUTTON>
<PERFORM-PRSA ,PURPLE-BUTTON>
<RTRUE>)
(<AND <VERB? PUSH>
<OR <NOUN-USED ,W?CONTROL ,BARGE>
<NOUN-USED ,W?CONTROLS ,BARGE>
<NOUN-USED ,W?BUTTONS ,BARGE>>>
<PERFORM-PRSA ,ORANGE-BUTTON>
<TELL " ">
<PERFORM-PRSA ,PURPLE-BUTTON>
<RTRUE>)
(<VERB? SET>
<TELL ,NO-STEERING>)
(<AND <VERB? BOARD TAKE>
<EQUAL? ,HERE ,CANAL>
<IN? ,PROTAGONIST ,RAFT>>
<MOVE ,PROTAGONIST ,BARGE>
<SETG OHERE <>>
<TELL "Grabbing onto the barge, you">
<AND-SIDEKICK ,BARGE>
<MOVE ,RAFT ,PROTAGONIST>
<SETG RAFT-HELD <>>
<TELL " climb in" ,KEEP-IT-FROM-FLOATING-AWAY>)
(<AND <VERB? PUT-ON>
<PRSI? ,BARGE>>
<PERFORM ,V?PUT ,PRSO ,BARGE>
<RTRUE>)
(<VERB? SMELL>
<NO-SCRATCH-N-SNIFF "aged cedarwood">)
(<AND <VERB? SHAKE>
<IN? ,PROTAGONIST ,BARGE>>
<SHAKE-BOAT>)
(<VERB? LAND>
<SETG AWAITING-REPLY 2>
<QUEUE I-REPLY 2>
<TELL "Read any " 'ORANGE-BUTTON "s lately?" CR>)>>
<ROUTINE GENERIC-BARGE-F ()
<RETURN ,BARGE>>
<ROUTINE SHAKE-BOAT ()
<TELL "You knock yourself overboard." CR CR>
<PERFORM ,V?BOARD ,CANAL-OBJECT>
<RTRUE>>
<OBJECT ORANGE-BUTTON
(LOC GLOBAL-OBJECTS)
(DESC "huge orange button")
(SYNONYM BUTTON)
(ADJECTIVE LARGE ORANGE)
(FLAGS NDESCBIT)
(ACTION ORANGE-BUTTON-F)>
<ROUTINE ORANGE-BUTTON-F ("AUX" ATBARGE)
<SET ATBARGE <CHECK-BARGE-LOC>>
<COND (<F? .ATBARGE>
<CANT-SEE ,ORANGE-BUTTON>)
(<AND <==? .ATBARGE ,RAFT>
<TOUCHING? ,ORANGE-BUTTON>>
<CANT-REACH ,PRSO>)>
<COND (<VERB? READ EXAMINE>
<TELL "The " 'ORANGE-BUTTON " reads: MagnetoMoor O">
<COND (,MOORING-ON
<TELL "n">)
(T
<TELL "ff">)>
<TELL ,PERIOD-CR>)
(<VERB? PUSH>
<COND (,MOORING-ON
<SETG MOORING-ON <>>)
(T
<SETG MOORING-ON T>)>
<TELL ,WRITING-CHANGES ".">
<COND (<AND <NOT <IN? ,BARGE ,CANAL>>
<NOT ,MOORING-ON>
<NOT <EQUAL? ,HERE ,ICY-DOCK>>>
<MOVE ,BARGE ,CANAL>
<COND (<AND ,RAFT-HELD
<IN? ,PROTAGONIST ,BARGE>>
<MOVE ,RAFT ,CANAL>
<SETG RAFT-LOC-NUM ,BARGE-LOC-NUM>)>
<FCLEAR ,BARGE ,NDESCBIT>
<QUEUE I-CANAL -1>
<TELL " The barge s">
<COND (,BARGE-UNDER-POWER
<TELL "hoot">)
(T
<TELL "lide">)>
<TELL
"s away from the dock, into the deeper waters of the canal." CR>
<COND (<IN? ,PROTAGONIST ,BARGE>
<CRLF>
<GOTO ,BARGE>)>
<RTRUE>)
(<NOT <BARGE-DOCKS>>
<CRLF>)>
<RTRUE>)>>
<ROUTINE CHECK-BARGE-LOC ()
<COND (<OR <IN? ,PROTAGONIST ,BARGE>
<AND <NOT <IN? ,BARGE ,CANAL>>
<==? <LOC ,BARGE> <LOC ,PROTAGONIST>>>
<AND <==? ,HERE ,CANAL> ;"in raft"
<IN? ,BARGE ,CANAL>
<==? ,BARGE-LOC-NUM ,RAFT-LOC-NUM>>>
<RETURN ,BARGE>)
(<==? ,HERE ,CANAL>
<COND (<BARGE-VISIBLE-AT-DOCK>
<RETURN ,RAFT>)
(T
<RETURN <>>)>)
(T
<RETURN <>>)>>
<OBJECT PURPLE-BUTTON
(LOC GLOBAL-OBJECTS)
(DESC "huge purple button")
(SYNONYM BUTTON)
(ADJECTIVE LARGE PURPLE)
(FLAGS NDESCBIT)
(ACTION PURPLE-BUTTON-F)>
<ROUTINE PURPLE-BUTTON-F ("AUX" ATBARGE)
<SET ATBARGE <CHECK-BARGE-LOC>>
<COND (<F? .ATBARGE>
<CANT-SEE ,PURPLE-BUTTON>)
(<AND <==? .ATBARGE ,RAFT>
<TOUCHING? ,PURPLE-BUTTON>>
<CANT-REACH ,PRSO>)>
<COND (<VERB? READ EXAMINE>
<TELL "The " 'PURPLE-BUTTON " reads: ">
<COND (,BARGE-UNDER-POWER
<TELL "Full Speed Ahead">)
(T
<TELL "Go With The Flow">)>
<TELL ,PERIOD-CR>)
(<VERB? PUSH>
<TELL ,WRITING-CHANGES>
<COND (,BARGE-UNDER-POWER
<SETG BARGE-UNDER-POWER <>>)
(T
<SETG BARGE-UNDER-POWER T>
<COND (<AND <IN? ,PROTAGONIST ,RAFT>
<EQUAL? ,HERE ,CANAL>>
<BARGE-FORGES-AHEAD>)>)>
<TELL ,PERIOD-CR>)>>
<ROUTINE BARGE-FORGES-AHEAD ()
<COND (<AND <L? ,BARGE-LOC-NUM 16>
,MOORING-ON>
<SETG BARGE-LOC-NUM 15>
<MOVE ,BARGE ,WATTZ-UPP-DOCK>)
(T
<SETG BARGE-LOC-NUM 36>
<MOVE ,BARGE ,ICY-DOCK>)>
<TELL
". The barge, under power, forges ahead and disappears from sight">>
<GLOBAL MOORING-ON T>
<GLOBAL BARGE-UNDER-POWER <>>
<GLOBAL BARGE-LOC-NUM 1>
<GLOBAL RAFT-LOC-NUM 10>
<GLOBAL BARGE-WAIT <>>
<GLOBAL RAFT-WAIT <>>
<GLOBAL NEARER-DOCK <>>
<ROUTINE CANAL-LOC ()
<COND (<NOT <EQUAL? ,HERE ,CANAL>>
<RFALSE>)
(<IN? ,PROTAGONIST ,BARGE>
<RETURN ,BARGE-LOC-NUM>)
(T
<RETURN ,RAFT-LOC-NUM>)>>
<ROUTINE SET-RAFT-LOC ()
<COND (<EQUAL? ,HERE ,CANAL> ;"you're in the barge"
<SETG RAFT-LOC-NUM ,BARGE-LOC-NUM>)
(<EQUAL? ,HERE ,HICKORY-AND-DICKORY-DOCK>
<SETG RAFT-LOC-NUM -1>)
(<EQUAL? ,HERE ,ROYAL-DOCKS>
<SETG RAFT-LOC-NUM 1>)
(<EQUAL? ,HERE ,BABY-DOCK>
<SETG RAFT-LOC-NUM 6>)
(<EQUAL? ,HERE ,DONALD-DOCK>
<SETG RAFT-LOC-NUM 7>)
(<EQUAL? ,HERE ,WATTZ-UPP-DOCK>
<SETG RAFT-LOC-NUM 15>)
(T
<SETG RAFT-LOC-NUM 10>)>>
<OBJECT CANAL-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "canal")
(SYNONYM CANAL)
(ADJECTIVE MARTIAN SMALL WIDE)
(ACTION CANAL-OBJECT-F)>
<ROUTINE CANAL-OBJECT-F ()
<COND (<ADJ-USED ,W?SMALL>
<UNIMPORTANT-THING-F>)
(<AND <EQUAL? ,HERE ,DUNETOP ,MINARET>
<TOUCHING? ,CANAL-OBJECT>>
<CANT-REACH ,CANAL-OBJECT>)
(<VERB? BOARD ENTER SWIM CRAWL-UNDER>
<COND (<UNTOUCHABLE? ,CANAL-OBJECT>
<CANT-REACH ,CANAL-OBJECT>)
(<EQUAL? ,HERE ,ICY-DOCK>
<TELL "The current sucks you under">
<COND (<EQUAL? ,NAUGHTY-LEVEL 2>
<TELL ", which really sucks">)>
<JIGS-UP ".">)
(T
<TELL
"In The Canal|
As you swim in the cool waters of the canal, a slimy tentacle touches you,
convincing you that it's safer back ">)>
<COND (<EQUAL? <LOC ,PROTAGONIST> ,RAFT ,BARGE>
<TELL "in" TR <LOC ,PROTAGONIST>>)
(T
<TELL "on the dock." CR>)>
<CRLF>
<DESCRIBE-ROOM>)
(<VERB? CROSS>
<PERFORM ,V?ENTER ,CANAL-OBJECT>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,P-PRSA-WORD ,W?THROW>
<PRSO? ,RAFT>
<NOT <FSET? ,RAFT ,UNTEEDBIT>>
<NOT <IN? ,PROTAGONIST ,RAFT>>>
<MOVE ,RAFT ,HERE>
<SETG RAFT-HELD T>
<PERFORM ,V?DROP ,RAFT>
<RTRUE>)
(<AND <VERB? PUT THROW>
<PRSI? ,CANAL-OBJECT>>
<COND (<PRSO? ,RAFT>
<COND (<OR <FSET? ,RAFT ,UNTEEDBIT>
<FSET? ,RAFT ,MUNGBIT>>
<REMOVE ,RAFT>
<TELL "It sinks like a stone.">
<COND (<FSET? ,RAFT ,UNTEEDBIT>
<TELL
" I guess a raf doesn't float nearly as well as a raft.">)>
<CRLF>)
(<OR ,RAFT-HELD
<IN? ,RAFT ,CANAL>>
<TELL ,ALREADY-IS>)
(T
<TELL "The raft is now ">
<COND (<EQUAL? ,HERE ,ICY-DOCK>
<MOVE ,RAFT ,HERE>
<TELL "in the water" ,PINNED>)
(T
<SETG RAFT-HELD T>
<MOVE ,RAFT ,HERE>
<COND (<EQUAL? ,HERE ,CANAL>
<SETG RAFT-LOC-NUM ,BARGE-LOC-NUM>)>
<TELL "bobbing in the canal.">
<COND (<OR <NOT <EQUAL? ,HERE ,CANAL>>
,BARGE-UNDER-POWER>
<TELL
" If you weren't holding it, it would surely be ">
<COND (<EQUAL? ,HERE ,CANAL>
<TELL "left behind.">)
(T
<TELL "carried away.">)>)>
<CRLF>)>)>)
(T
<REMOVE ,PRSO>
<COND (<AND <PRSO? ,TORCH>
<FSET? ,TORCH ,ONBIT>>
<TELL "\"Phfffft!">)
(T
<TELL "\"Glub.">)>
<TELL "\" ">
<COND (<FSET? ,PRSO ,PLURALBIT>
<TELL "They're">)
(T
<TELL "It's">)>
<TELL " gone">
<COND (<OR <PRSO? ,BABY>
<ULTIMATELY-IN? ,BABY ,PRSO>>
<TELL ", you heartless baby murderer, you">)>
<TELL ,PERIOD-CR>)>)
(<VERB? LOOK-INSIDE>
<PERFORM-PRSA ,WATER>
<RTRUE>)>>
<OBJECT DOCK-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "dock")
(SYNONYM DOCK PIER)
(ADJECTIVE SAND-COVERED SMALL BABY ABANDONED ROYAL)
(ACTION DOCK-OBJECT-F)>
<ROUTINE DOCK-OBJECT-F ("AUX" NUM DOCK-ROOM)
<SET NUM <CANAL-LOC>>
<COND (<AND <EQUAL? ,HERE ,CANAL>
<NOT <EQUAL? .NUM -1 1 6>>
<NOT <EQUAL? .NUM 7 10 15>>>
<CANT-SEE ,DOCK-OBJECT>
<RTRUE>)>
<COND (<AND <EQUAL? ,HERE ,DUNETOP ,MINARET>
<TOUCHING? ,DOCK-OBJECT>>
<TELL ,CANT-FROM-HERE>)
(<AND <VERB? TAKE BOARD>
<EQUAL? ,HERE ,CANAL>
<IN? ,PROTAGONIST ,RAFT>>
<TELL
"You lunge for the dock and secure a handhold. An agile clamber places you">
<AND-SIDEKICK>
<TELL " on the dock" ,KEEP-IT-FROM-FLOATING-AWAY CR>
<SETG RAFT-WAIT <>>
<SETG DONT-PRINT-VEHICLE T> ;"to supress ,IN THE RAFT"
<SET DOCK-ROOM <SET-DOCK-ROOM ,RAFT-LOC-NUM>>
<GOTO .DOCK-ROOM>
<SETG DONT-PRINT-VEHICLE <>>
<COND (<IN? ,SIDEKICK ,RAFT>
<MOVE ,SIDEKICK ,HERE>)>
<MOVE ,RAFT ,HERE>)
(<VERB? BOARD>
<COND (<EQUAL? ,HERE ,CANAL>
<DO-FIRST "land">)
(<IN? ,PROTAGONIST ,HERE>
<TELL ,LOOK-AROUND>)
(T
<PERFORM ,V?DISEMBARK <LOC ,PROTAGONIST>>
<RTRUE>)>)
(<AND <VERB? TAKE-OFF>
<EQUAL? ,P-PRSA-WORD ,W?GET>>
<PERFORM ,V?BOARD ,CANAL-OBJECT>
<RTRUE>)
(<AND <VERB? PUT PUT-ON>
<PRSI? ,DOCK-OBJECT>
<NOT <EQUAL? ,HERE ,CANAL>>>
<PERFORM ,V?PUT-ON ,PRSO ,GROUND>
<RTRUE>)
(<VERB? LEAP-OFF>
<COND (<EQUAL? ,HERE ,DUNETOP ,CANAL>
<TELL ,LOOK-AROUND>)
(T
<PERFORM ,V?ENTER ,CANAL-OBJECT>
<RTRUE>)>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)
(<AND <VERB? EXAMINE>
<NOT <EQUAL? ,HERE ,CANAL ,MINARET ,DUNETOP>>>
<V-LOOK>)>>
<GLOBAL DONT-PRINT-VEHICLE <>>
<OBJECT DUNES
(LOC LOCAL-GLOBALS)
(DESC "sand dunes")
(SYNONYM DUNE DUNES SAND)
(ADJECTIVE SAND RED REDDISH TOWERING SCULPTED MARTIAN IMPASSABLE)
(FLAGS NARTICLEBIT PLURALBIT)
(ACTION DUNES-F)>
<ROUTINE DUNES-F ()
<COND (<AND <EQUAL? ,HERE ,MINARET>
<TOUCHING? ,DUNES>>
<CANT-REACH ,DUNES>)
(<VERB? CLIMB CLIMB-UP>
<COND (<EQUAL? ,HERE ,DUNETOP>
<TELL ,LOOK-AROUND>)
(<EQUAL? ,HERE ,CANALVIEW-MALL ,DONALD-DOCK>
<DO-WALK ,P?UP>)
(T
<TELL "This dune is too steep." CR>)>)
(<AND <VERB? CLIMB-DOWN>
<EQUAL? ,HERE ,DUNETOP>>
<DO-WALK ,P?DOWN>)>>
<ROOM CANAL
(LOC ROOMS)
(DESC "Martian Canal")
(NORTH SORRY "If you want to jump in the canal, say so.")
(NE SORRY "If you want to jump in the canal, say so.")
(EAST SORRY "If you want to jump in the canal, say so.")
(SE SORRY "If you want to jump in the canal, say so.")
(SOUTH SORRY "If you want to jump in the canal, say so.")
(SW SORRY "If you want to jump in the canal, say so.")
(WEST SORRY "If you want to jump in the canal, say so.")
(NW SORRY "If you want to jump in the canal, say so.")
(FLAGS ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER DUNES SIGN BUOY)
(ACTION CANAL-F)
;(THINGS <PSEUDO (RED BUOY BUOY-F)
(WARNING BUOY BUOY-F)
(SWAYING BUOY BUOY-F)
(ROYAL BARGE BARGE-FROM-CANAL-F)
(WOODEN BARGE BARGE-FROM-CANAL-F)
(ORANGE BUTTON BARGE-FROM-CANAL-F)
(PURPLE BUTTON BARGE-FROM-CANAL-F)>)>
<ROUTINE CANAL-F (RARG "AUX" NUM DOCK-DIR)
<COND (<EQUAL? .RARG ,M-LOOK>
<SET NUM <CANAL-LOC>>
<SET DOCK-DIR <SET-DOCK-DIR .NUM>>
<TELL
"The " D <LOC ,PROTAGONIST> " rocks gently in the current of a wide canal.">
<COND (<OR <EQUAL? .NUM 1 7 15>
<EQUAL? .NUM -1 6>
<AND <EQUAL? .NUM 10>
<IN? ,PROTAGONIST ,RAFT>>>
<TELL " A dock is ">
<COND (<IN? ,PROTAGONIST ,RAFT>
<TELL "close enough to grab">)
(T
<TELL "visible">)>
<TELL " on the " .DOCK-DIR "ern shore.">)
(<EQUAL? .NUM 10>
<TELL " There are docks on both banks.">)
(T
<TELL " The banks of the canal are steep and sandy.">)>
<COND (<BARGE-VISIBLE-AT-DOCK>
<TELL " A " 'BARGE " is moored to the dock">
<COND (<EQUAL? .NUM 10>
<TELL " on the ">
<COND (<IN? ,BARGE ,ABANDONED-DOCK>
<TELL "we">)
(T
<TELL "ea">)>
<TELL "stern shore">)>
<TELL ".">)>
<COND (<EQUAL? .NUM 5 12 29>
<TELL
" A smaller canal flows diagonally into this one, and the
channel widens slightly to accommodate the heavier flow.">)
(<EQUAL? .NUM 9 10>
<TELL " Just ">
<COND (<EQUAL? .NUM 9>
<TELL "ahead">)
(T
<TELL "behind">)>
<TELL ", the canal curves sharply to the ">
<COND (<EQUAL? .NUM 9>
<TELL "south.">)
(T
<TELL "west.">)>)>
<COND (<EQUAL? .NUM 4 5 8>
<TELL
" Sculpted reddish " 'DUNES " rise into view beyond the banks of the canal.">)>
<COND (<PROB 15>
<TELL
" The dark clouds of a sandstorm are visible on the horizon.">)>
<COND (<EQUAL? .NUM 15>
<TELL
" A red warning buoy is anchored nearby. A sign atop the swaying
buoy shows a skull and crossbones.">)>
<COND (<AND <G? .NUM 12>
<L? .NUM 32>>
<COND (<EQUAL? .NUM 31>
<TELL CR " ">
<DESCRIBE-POWER-TRANSMITTER 31>
<COND (<NOT <FSET? ,POWER-TRANSMITTER ,TOUCHBIT>>
<FSET ,POWER-TRANSMITTER ,TOUCHBIT>
<TELL CR
" As the " D <LOC ,PROTAGONIST> " passes through the beam, you feel a
tingling from every cell in " 'YOUR-BODY ".">)>)
(T
<TELL " ">
<DESCRIBE-POWER-TRANSMITTER .NUM>)>)>
<RTRUE>)>>
<OBJECT BARGE-FROM-RAFT
(LOC CANAL)
(DESC "royal barge")
(SYNONYM BARGE BUTTONS)
(ADJECTIVE ROYAL WOODEN)
(GENERIC GENERIC-BARGE-F)
(FLAGS NDESCBIT)
(ACTION BARGE-FROM-RAFT-F)>
<ROUTINE BARGE-FROM-RAFT-F ()
<COND (<NOT <BARGE-VISIBLE-AT-DOCK>>
<CANT-SEE ,PRSO>)
(<TOUCHING? ,PRSO>
<CANT-REACH ,PRSO>)>>
<ROUTINE BARGE-VISIBLE-AT-DOCK ("AUX" NUM)
<SET NUM <CANAL-LOC>>
<COND (<OR <AND <EQUAL? .NUM 1>
<IN? ,BARGE ,ROYAL-DOCKS>>
<AND <EQUAL? .NUM 6>
<IN? ,BARGE ,BABY-DOCK>>
<AND <EQUAL? .NUM 7>
<IN? ,BARGE ,DONALD-DOCK>>
<AND <EQUAL? .NUM 10>
<EQUAL? <LOC ,BARGE> ,MY-KIND-OF-DOCK
,ABANDONED-DOCK>>
<AND <EQUAL? .NUM 15>
<IN? ,BARGE ,WATTZ-UPP-DOCK>>>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT BUOY
(LOC LOCAL-GLOBALS)
(DESC "red warning buoy")
(SYNONYM BUOY)
(ADJECTIVE SWAYING RED WARNING)
(FLAGS NDESCBIT)
(ACTION BUOY-F)>
<ROUTINE BUOY-F ("AUX" NUM)
<SET NUM <CANAL-LOC>>
<COND (<AND <NOT <EQUAL? .NUM 15>>
<NOT <EQUAL? ,HERE ,WATTZ-UPP-DOCK>>>
<CANT-SEE ,BUOY>)
(<VERB? READ EXAMINE>
<PERFORM ,V?READ ,SIGN>
<RTRUE>)
(<VERB? TAKE OPEN>
<TELL ,YOU-CANT>
<COND (<VERB? TAKE>
<TELL "take">)
(T
<TELL "open">)>
<TELL " a buoy! Where'd you get such a silly idea?" CR>)
(<TOUCHING? ,BUOY>
<CANT-REACH ,BUOY>)>>
<ROUTINE I-CANAL ("AUX" (NUM 0) (MOVED <>))
<COND (<AND <NOT <IN? ,BARGE ,CANAL>>
<NOT <IN? ,RAFT ,CANAL>>>
<DEQUEUE I-CANAL>
<RFALSE>)>
;<COND (,DEBUG
<COND (<IN? ,BARGE ,CANAL>
<TELL
"[Barge is in canal. BARGE-LOC-NUM = " N ,BARGE-LOC-NUM ".]" CR>)>
<COND (<IN? ,RAFT ,CANAL>
<TELL
"[Raft is in canal. RAFT-LOC-NUM = " N ,RAFT-LOC-NUM ".]" CR>)>)>
<COND (<IN? ,BARGE ,CANAL>
<COND (<OR ,BARGE-UNDER-POWER
,BARGE-WAIT>
<COND (<IN? ,PROTAGONIST ,BARGE>
<SET MOVED T>)>
<SETG BARGE-WAIT <>>
<COND (<AND ,RAFT-HELD
<IN? ,RAFT ,CANAL>
<IN? ,PROTAGONIST ,BARGE>>
<SETG RAFT-LOC-NUM <+ ,RAFT-LOC-NUM 1>>)>
<SETG BARGE-LOC-NUM <+ ,BARGE-LOC-NUM 1>>)
(T
<SETG BARGE-WAIT T>)>)>
<COND (<AND <IN? ,RAFT ,CANAL>
<NOT ,RAFT-HELD> ;"barge clause, above, updates raft loc">
<COND (,RAFT-WAIT
<COND (<IN? ,PROTAGONIST ,RAFT>
<SET MOVED T>)>
<SETG RAFT-WAIT <>>
<SETG RAFT-LOC-NUM <+ ,RAFT-LOC-NUM 1>>)
(T
<SETG RAFT-WAIT T>)>)>
<SET NUM <CANAL-LOC>>
<COND (<AND <EQUAL? .NUM 31>
<NOT <QUEUED? ,I-ION-DEATH>>>
<COND (<IN? ,SIDEKICK <LOC ,PROTAGONIST>>
<SETG SIDEKICK-IONIZED T>)>
<QUEUE I-ION-DEATH 6>)>
<COND (<L? .NUM 17>
<PUTP ,POWER-TRANSMITTER ,P?SDESC "metallic glint">)
(<G? .NUM 30>
<PUTP ,POWER-TRANSMITTER ,P?SDESC "giant rusted structure">)
(T
<PUTP ,POWER-TRANSMITTER ,P?SDESC "metal structure">)>
<COND (<NOT <EQUAL? ,HERE ,CANAL>>
<COND (<G? ,BARGE-LOC-NUM 36>
<MOVE ,BARGE ,ICY-DOCK>
<COND (,RAFT-HELD
<MOVE ,RAFT ,ICY-DOCK>)>)>
<COND (<G? ,RAFT-LOC-NUM 36>
<MOVE ,RAFT ,ICY-DOCK>)>
<BARGE-DOCKS>
<RFALSE>)
(<NOT .MOVED>
<RFALSE>)>
<TELL " The " D <LOC ,PROTAGONIST> " ">
<COND (<EQUAL? .NUM 10>
<COND (<AND ,BARGE-UNDER-POWER
<IN? ,PROTAGONIST ,BARGE>>
<SETG NEARER-DOCK ,MY-KIND-OF-DOCK>
<TELL "chugs quickly">)
(T
<SETG NEARER-DOCK ,ABANDONED-DOCK>
<TELL "drifts slowly">)>
<TELL " around the bend, ending up near the ">
<COND (<AND ,BARGE-UNDER-POWER
<IN? ,PROTAGONIST ,BARGE>>
<TELL "ea">)
(T
<TELL "we">)>
<TELL "stern bank of">)
(T
<COND (<AND ,BARGE-UNDER-POWER
<IN? ,PROTAGONIST ,BARGE>>
<TELL "barges">)
(T
<TELL "drifts">)>
<TELL " further down">)>
<TELL " the canal.">
<COND (<EQUAL? .NUM 36>
<TELL
" A wide dock spans the canal to the south. The " D <LOC ,PROTAGONIST>
" butts up against it" ,PINNED CR>
<COND (<AND <IN? ,PROTAGONIST ,RAFT>
<IN? ,BARGE ,CANAL>
<EQUAL? ,BARGE-LOC-NUM 36>>
<MOVE ,BARGE ,ICY-DOCK>)
(<AND <IN? ,PROTAGONIST ,BARGE>
<IN? ,RAFT ,CANAL>
<EQUAL? ,RAFT-LOC-NUM 36>>
<MOVE ,BARGE ,ICY-DOCK>)>
<MOVE <LOC ,PROTAGONIST> ,ICY-DOCK>
<GOTO <LOC ,PROTAGONIST>>
<RTRUE>)>
<COND (<OR <EQUAL? ,HAND-COVER ,EYES>
<FSET? ,EYES ,MUNGBIT>>
<TELL " " ,YOU-CANT "see a thing, of course." CR>)
(T
<CRLF> <CRLF>
<DESCRIBE-ROOM>)>
<COND (<AND <EQUAL? ,BARGE-LOC-NUM ,RAFT-LOC-NUM>
<IN? ,RAFT ,CANAL>
<IN? ,BARGE ,CANAL>>
<COND (<IN? ,PROTAGONIST ,RAFT>
<BARGE-F ,M-OBJDESC>
<CRLF>)
(T
<RAFT-F ,M-OBJDESC>
<CRLF>)>)>
<BARGE-DOCKS T>
<RTRUE>>
<OBJECT POWER-TRANSMITTER
(LOC CANAL)
(SDESC "")
(SYNONYM GLINT STRUCTURE MACHINE TOWER)
(ADJECTIVE LARGE METAL METALLIC POWER LOOMING RUSTED MARTIAN)
(FLAGS NDESCBIT)
(GENERIC GENERIC-MACHINE-F)
(ACTION POWER-TRANSMITTER-F)>
<ROUTINE POWER-TRANSMITTER-F ("AUX" (NUM 0))
<SET NUM <CANAL-LOC>>
<COND (<OR <G? .NUM 31>
<L? .NUM 13>>
<CANT-SEE ,POWER-TRANSMITTER>)
(<VERB? EXAMINE>
<DESCRIBE-POWER-TRANSMITTER .NUM>
<CRLF>)
(<TOUCHING? ,POWER-TRANSMITTER>
<CANT-REACH ,POWER-TRANSMITTER>)>>
<ROUTINE DESCRIBE-POWER-TRANSMITTER (NUM)
<COND (<EQUAL? .NUM 31>
<TELL
"The " D <LOC ,PROTAGONIST> " is now passing the metal structure that has been
looming closer for the last hour. Its size and power are overwhelming; a relic
of Martian technology at its height. Vacuum tubes the size of telephone booths
produce power that was once beamed all over Mars. But now, in the twilight of
the planet's civilization, the machine's base has rusted away. The massive
tower now shoots its ion power beam uselessly across the canal, into the sand
of the opposite bank.">)
(<L? .NUM 17>
<TELL "You spy a metallic glint, far ahead.">)
(<G? .NUM 27>
<TELL
"A massive machine, unlike anything you've ever seen, rises from
the shore, looming closer with each passing minute.">)
(T
<TELL
"A metal structure, glinting in the weak Martian sunlight,
is visible at the edge of the canal">
<COND (<L? .NUM 21>
<TELL ", but far, far ahead.">)
(<L? .NUM 24>
<TELL " far ahead of you.">)
(T
<TELL ", a bit too far to make out any details.">)>)>>
<CONSTANT ION-TABLE
<TABLE
"" ;"zero slot"
"slight"
"worsening"
"splitting"
"fantastically unbelievable ultra-awesome migraine">>
<GLOBAL ION-DEATH-COUNTER 0>
<GLOBAL SIDEKICK-IONIZED <>>
<ROUTINE I-ION-DEATH ()
<SETG ION-DEATH-COUNTER <+ ,ION-DEATH-COUNTER 1>>
<TELL " ">
<COND (<G? ,ION-DEATH-COUNTER 4>
<JIGS-UP
"Your anatomy, in absorbing a dose of superionized energy in translethal
levels, has ultimately equalized this submolecular environmental imbalance
by fulminating a cataclysmic exothermic reaction. Or to put it in lay
terms, you've just blown up.">)
(T
<COND (<FSET? ,POWER-TRANSMITTER ,MUNGBIT>
<QUEUE I-ION-DEATH 2> ;"so you can't win with headache")
(T
<QUEUE I-ION-DEATH 6>)>
<V-DIAGNOSE>
<COND (<AND ,SIDEKICK-IONIZED
<VISIBLE? ,SIDEKICK>
<EQUAL? ,ION-DEATH-COUNTER 3>>
<TELL
" " D ,SIDEKICK " says, \"My head is pounding! I wish we
had some aspirin.\"" CR>)>
<RTRUE>)>>
<ROUTINE BARGE-DOCKS ("OPTIONAL" (CALLED-BY-INT <>) "AUX" DOCK-ROOM DOCK-DIR)
<COND (<AND ,MOORING-ON
<IN? ,BARGE ,CANAL>
<OR <EQUAL? ,BARGE-LOC-NUM 7 10 15>
<EQUAL? ,BARGE-LOC-NUM 1 6>>>
<COND (.CALLED-BY-INT
<TELL " ">)>
<SET DOCK-ROOM <SET-DOCK-ROOM ,BARGE-LOC-NUM>>
<SET DOCK-DIR <SET-DOCK-DIR ,BARGE-LOC-NUM>>
<COND (<IN? ,BARGE ,HERE>
<TELL
" The barge drifts toward the dock on the " .DOCK-DIR
"ern shore, butting against it with a loud \"clank.\"">
<COND (<IN? ,PROTAGONIST ,BARGE>
<CRLF> ;"because room desc comes next")>
<CRLF>)>
<MOVE ,BARGE .DOCK-ROOM>
<COND (<IN? ,PROTAGONIST ,BARGE>
<COND (,RAFT-HELD
<MOVE ,RAFT .DOCK-ROOM>)>
<GOTO ,BARGE>)>
<SETG BARGE-WAIT <>>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE SET-DOCK-ROOM (NUM)
<COND (<EQUAL? .NUM -1>
<RETURN ,HICKORY-AND-DICKORY-DOCK>)
(<EQUAL? .NUM 1>
<RETURN ,ROYAL-DOCKS>)
(<EQUAL? .NUM 6>
<RETURN ,BABY-DOCK>)
(<EQUAL? .NUM 7>
<RETURN ,DONALD-DOCK>)
(<EQUAL? .NUM 15>
<RETURN ,WATTZ-UPP-DOCK>)
(<EQUAL? ,NEARER-DOCK ,MY-KIND-OF-DOCK>
<RETURN ,MY-KIND-OF-DOCK>)
(T
<RETURN ,ABANDONED-DOCK>)>>
<ROUTINE SET-DOCK-DIR (NUM)
<COND (<EQUAL? .NUM -1 1 7>
<RETURN "south">)
(<EQUAL? .NUM 6>
<RETURN "north">)
(<EQUAL? .NUM 15>
<RETURN "west">)
(<EQUAL? ,NEARER-DOCK ,MY-KIND-OF-DOCK>
<RETURN "east">)
(T
<RETURN "west">)>>
<ROOM BABY-DOCK
(LOC ROOMS)
(DESC "Baby Dock")
(LDESC
"This tiny dock, partly buried by drifting sand, extends south into the canal.
A break in the sand forms a trail to the north.")
(SOUTH SORRY "If you want to jump in the canal, say so.")
(SE SORRY "If you want to jump in the canal, say so.")
(SW SORRY "If you want to jump in the canal, say so.")
(NORTH TO AMONG-THE-DUNES)
(FLAGS ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER DUNES)>
<ROOM AMONG-THE-DUNES
(LOC ROOMS)
(DESC "Among the Dunes")
(LDESC
"You are in a tiny basin, protected by dunes from the fierce Martian winds.
The dunes are impassable, except to the south.")
(SOUTH TO BABY-DOCK)
(FLAGS RLANDBIT ONBIT NARTICLEBIT)
(GLOBAL DUNES)
(ACTION AMONG-THE-DUNES-F)>
<GLOBAL WIFE-NUMBER 0>
<ROUTINE AMONG-THE-DUNES-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,AMONG-THE-DUNES ,TOUCHBIT>>>
<REPEAT () ;"last digit can't be zero -- number gets reversed"
<SETG WIFE-NUMBER <+ 100 <RANDOM 8270>>>
<COND (<AND <NOT <EQUAL? <MOD ,WIFE-NUMBER 10> 0>>
<NOT <PALINDROME-NUMBER? ,WIFE-NUMBER>>>
<RETURN>)>>)>>
<ROUTINE PALINDROME-NUMBER? (NUM)
<COND (<G? .NUM 999> ;"for four digit numbers, this returns true
anytime the first and last digit are equal;
it doesn't bother checking the middle pair"
<COND (<EQUAL? </ .NUM 1000> <MOD .NUM 10>>
<RTRUE>)
(T
<RFALSE>)>)
(<EQUAL? </ .NUM 100> <MOD .NUM 10>>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT LIP-BALM
(LOC AMONG-THE-DUNES)
(DESC "stick of lip balm")
(NO-T-DESC "sick of lip balm")
(FDESC
"The alien may have died of acute chapped lips (a perennial problem in the
arid Martian climate). If so, it was a sudden death, for the lip balm near
the body is completely unused.")
(SYNONYM STICK BALM CHAPSTICK GLOSS)
(ADJECTIVE LIP SICK)
(FLAGS TAKEBIT)
(SIZE 2)
(ACTION LIP-BALM-F)>
<ROUTINE LIP-BALM-F ()
<COND (<FSET? ,LIP-BALM ,UNTEEDBIT>
<RFALSE>)
(<OR <AND <VERB? PUT-ON>
<PRSI? ,MOUTH>>
<VERB? WEAR>>
<COND (<FSET? ,LIP-BALM ,WORNBIT>
<TELL ,SENILITY-STRIKES>)
(T
<MOVE ,LIP-BALM ,PROTAGONIST>
<FSET ,LIP-BALM ,WORNBIT>
<FSET ,MOUTH ,MUNGBIT>
<TELL
"You coat your lips with the glistening balm, using up the whole stick." CR>)>)
(<AND <VERB? EXAMINE>
<FSET? ,LIP-BALM ,WORNBIT>>
<PERFORM-PRSA ,MOUTH>
<RTRUE>)
(<AND <VERB? REMOVE CLEAN>
<FSET? ,LIP-BALM ,WORNBIT>>
<MOVE ,LIP-BALM ,LOCAL-GLOBALS>
<FCLEAR ,MOUTH ,MUNGBIT>
<TELL "You wipe away the lip balm." CR>)>>
<OBJECT CODED-MESSAGE
(LOC AMONG-THE-DUNES)
(DESC "coded message")
(FDESC
"Lying next to the body, partially buried in the sand,
is a strange coded message.")
(SYNONYM MESSAGE CODE)
(ADJECTIVE STRANGE CODED)
(FLAGS TAKEBIT READBIT BURNBIT)
(SIZE 2)
(ACTION CODED-MESSAGE-F)>
<ROUTINE CODED-MESSAGE-F ()
<COND (<VERB? READ EXAMINE>
;"YOUR MISSION IS TO CONTACT (WIFE) (HUSBAND) NUMBER (N) OF THE
(SULTAN) (SULTANESS) AND GET THE SECRET MAP --
IDENTIFY YOURSELF TO (HIM) (HER) BY ASKING (HIM) (HER) TO KISS YOUR KNEECAPS"
;"to translate, replace every letter with the letter three before it --
D becomes A, E becomes B, and so forth. Then reverse the entire note."
<TELL "VSDFHHQN UXRB VVLN RW ">
<COND (,MALE
<TELL "UH">)
(T
<TELL "PL">)>
<TELL "K JQLNVD BE ">
<COND (,MALE
<TELL "UH">)
(T
<TELL "PL">)>
<TELL "K RW IOHVUXRB BILWQHGL -- SDP WHUFHV HKW WHJ GQD ">
<COND (<NOT ,MALE>
<TELL "VVH">)>
<TELL "QDWOXV HKW IR ">
<REVERSE-NUMBER ,WIFE-NUMBER>
<TELL " UHEPXQ ">
<COND (,MALE
<TELL "HILZ">)
(T
<TELL "GQDEVXK">)>
<TELL " WFDWQRF RW VL QRLVVLP UXRB" CR>)>>
<ROUTINE REVERSE-NUMBER (NUM)
<REPEAT ()
<PRINTN <MOD .NUM 10>>
<SET NUM </ .NUM 10>>
<COND (<EQUAL? .NUM 0>
<RETURN>)>>>
<OBJECT MESSENGER
(LOC AMONG-THE-DUNES)
(DESC "dead alien")
(FDESC
"A strange alien, probably a member of one of the ancient warrior
races of Mars, lies dead at the base of a dune.")
(SYNONYM ALIEN SPY BODY)
(ADJECTIVE STRANGE ALIEN DEAD)
(ACTION MESSENGER-F)>
<ROUTINE MESSENGER-F ()
<COND (<VERB? EXAMINE>
<TELL "It's dead. Very dead." CR>)
(<VERB? FUCK KISS>
<TELL
"Is there even a word for this sort of perverse behavior? Necro-xeno-philia?
Xeno-necro-philia? Grosso-sicko-philia?" CR>)
(<AND <VERB? PUT-ON>
<PRSO? ,LIP-BALM>>
<TELL "Too late." CR>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)
(<VERB? ALARM>
<TELL "This guy's not resting, he's deceased!" CR>)>>
<ROOM DONALD-DOCK
(LOC ROOMS)
(DESC "Donald Dock")
(LDESC
"This dock, on the south shore of the canal, is named after Don Donald, the
first resident of Mars. There are no paths leading inland, but a tall dune
to the south is less steep than the others.")
(NORTH SORRY "If you want to jump in the canal, say so.")
(NE SORRY "If you want to jump in the canal, say so.")
(NW SORRY "If you want to jump in the canal, say so.")
(SOUTH TO DUNETOP)
(UP TO DUNETOP)
(FLAGS RLANDBIT ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER DUNES)>
<ROOM DUNETOP
(LOC ROOMS)
(DESC "Dunetop")
(LDESC
"From this vantage, you can see the canal curving south, a bit downstream from
here. Just after this bend, two docks flank the canal: an opulent dock on the
east bank, and a dilapidated one on the closer shore.|
You could slide down the dune to the north or the east.")
(NORTH TO DONALD-DOCK)
(EAST TO CANALVIEW-MALL)
(DOWN SORRY "East or north?")
(FLAGS RLANDBIT ONBIT)
(GLOBAL DUNES CANAL-OBJECT DOCK-OBJECT)
(ACTION DUNETOP-F)>
<ROUTINE DUNETOP-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<EQUAL? ,TITS-COUNTER 0>>
<QUEUE I-TITS -1>)>>
<GLOBAL TITS-COUNTER 0>
<ROUTINE I-TITS ()
<SETG TITS-COUNTER <+ ,TITS-COUNTER 1>>
<COND (<NOT <EQUAL? ,NAUGHTY-LEVEL 2>>
<DEQUEUE I-TITS>
<RFALSE>)
(<EQUAL? ,TITS-COUNTER 4>
<TELL
" [A warning for any Jerry Falwell groupies who are miraculously still
playing: we'll be using the word \"tits\" in five turns or so. Please
consult the manual for the proper way to stop playing.]" CR>)
(<EQUAL? ,TITS-COUNTER 7>
<TELL
" [Only a few turns until the \"tits\" reference! Use QUIT now if
you might be offended!]" CR>)
(<EQUAL? ,TITS-COUNTER 9>
<TELL
" [Last warning! The word \"tits\" will appear in the very next turn!
This is your absolutely last chance to avoid seeing \"tits\" used!!!]" CR>)
(<EQUAL? ,TITS-COUNTER 10>
<DEQUEUE I-TITS>
<TELL
" A hyperdimensional traveller suddenly appears out of thin air.
\"My sister has tremendous breasts,\" says the traveller and, without
further explanation, vanishes">
<COND (<NOT <FSET? ,NOSE ,MUNGBIT>>
<TELL
", leaving only a vague trace of interdimensional ozone">)>
<TELL ".|
[Oh, regarding the use of \"tits,\" we changed our mind at the last minute.
Everyone agreed it was too risque.]" CR>)
(T
<RFALSE>)>>
<ROOM ABANDONED-DOCK
(LOC ROOMS)
(DESC "Abandoned Dock")
(LDESC
"This dock is in remarkably good shape, considering that it hasn't been painted
in fifteen thousand years. A wide canal, flowing south, lies to the east, and
an opening between the dunes leads west.")
(WEST TO CANALVIEW-MALL)
(EAST SORRY "If you want to jump in the canal, say so.")
(NE SORRY "If you want to jump in the canal, say so.")
(SE SORRY "If you want to jump in the canal, say so.")
(FLAGS RLANDBIT ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER DUNES)>
<ROOM CANALVIEW-MALL
(LOC ROOMS)
(DESC "Canalview Mall")
(LDESC
"As with all Martian civilization, this once-fashionable shopping center has
fallen upon hard times; the only store to have endured the fifteen-millenia
recession lies to the south. The canal is still as visible as it was when
scheming marketeers misnamed the mall generations ago -- in other words, not
at all. A path leads east, and a dune to the west seems mountable.")
(EAST TO ABANDONED-DOCK)
(WEST TO DUNETOP)
(UP TO DUNETOP)
(SOUTH TO EXIT-SHOP)
(GLOBAL DUNES)
(FLAGS RLANDBIT ONBIT)
;(THINGS <PSEUDO (<> STORE OUTSIDE-SHOP-F)
(<> SHOP OUTSIDE-SHOP-F)>)>
<OBJECT OUTSIDE-SHOP
(LOC CANALVIEW-MALL)
(DESC "shop")
(SYNONYM SHOP STORE)
(ADJECTIVE EXIT)
(FLAGS NDESCBIT)
(ACTION OUTSIDE-SHOP-F)>
<ROUTINE OUTSIDE-SHOP-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<DO-WALK ,P?SOUTH>)
(<VERB? EXIT LEAVE DISEMBARK>
<TELL ,LOOK-AROUND>)>>
<ROUTINE INSIDE-SHOP-F ()
<COND (<VERB? DISEMBARK LEAVE EXIT>
<DO-WALK ,P?NORTH>)
(<VERB? BOARD WALK-TO ENTER>
<TELL ,LOOK-AROUND>)
(<VERB? SEARCH>
<PERFORM-PRSA ,DUST>
<RTRUE>)
(<VERB? EXAMINE>
<V-LOOK>)>>
<ROOM EXIT-SHOP
(LOC ROOMS)
(DESC "Exit Shop")
(LDESC
"This store is in good shape only relative to the other shops in the mall; for
example, the last time it was vacuumed, humans were just inventing writing. The
dust nearly covers the proprietor, who sits forlornly in the corner beneath a
faded sign. An exit is barely visible through the dust to the north.")
(NORTH TO CANALVIEW-MALL)
(OUT TO CANALVIEW-MALL)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL SIGN)
(ACTION EXIT-SHOP-F)
;(THINGS <PSEUDO (<> STORE INSIDE-SHOP-F)
(<> SHOP INSIDE-SHOP-F)>)>
<OBJECT INSIDE-SHOP
(LOC EXIT-SHOP)
(DESC "shop")
(SYNONYM STORE SHOP)
(ADJECTIVE EXIT)
(FLAGS NDESCBIT)
(ACTION INSIDE-SHOP-F)>
<ROUTINE EXIT-SHOP-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-END>
<NOT <FSET? ,PROPRIETOR ,TOUCHBIT>>>
<FSET ,PROPRIETOR ,TOUCHBIT>
<TELL
" " ,PROPRIETOR-STIRS "Don't get many customers these days, since they
abandoned the dock. In fact, you're only the third in the last hundred and
fifty centuries.\" He slips back into a drowse." CR>)>>
<OBJECT PROPRIETOR
(LOC EXIT-SHOP)
(DESC "proprietor")
(SYNONYM PROPRIETOR OWNER)
(ADJECTIVE FORLORN DROWSY)
(FLAGS ACTORBIT NDESCBIT)
(ACTION PROPRIETOR-F)>
<ROUTINE PROPRIETOR-F ()
<COND (<EQUAL? ,PROPRIETOR ,WINNER>
<COND (<OR <AND <VERB? WHAT>
<PRSO? ,LGOP>>
<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,LGOP>>>
<TELL
"\"A bunch of deadbeats! Never pay their bills -- I've had to
repossess God knows how many exits!\"" CR>)
(T
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ALARM ,PROPRIETOR>
<STOP>)>)
(<VERB? ALARM>
<TELL
,PROPRIETOR-STIRS "E" ,BOUGHT-AND-SOLD ",\" he
mumbles, \"e" ,BOUGHT-AND-SOLD ".\" A moment later, he nods off." CR>)
(<OR <VERB? BARTER-WITH>
<AND <VERB? ASK-FOR>
<PRSI? ,EXIT-OBJECT>>>
<PERFORM ,V?BUY ,EXIT-OBJECT>
<RTRUE>)
(<AND <VERB? GIVE SHOW>
<PRSO? ,TEN-MARSMID-COIN>>
<TELL
"\"Humph? Eh, oh, sorry, no change for a ten. And the Mall Merchants
Association would have my license if I accepted an overpayment. Try again
in a year ... or two ... grunt snore.\"" CR>)
(<AND <VERB? GIVE SHOW>
<PRSO? ,ONE-MARSMID-COIN>>
<REMOVE ,ONE-MARSMID-COIN>
<MOVE ,TUBE ,DUST>
<INCREMENT-SCORE 5 12>
<TELL
"The proprietor slowly focuses one eye on the coin. \"Not much in stock
these days,\" he explains. \"My supplier went bankrupt ninety thousand years
ago.\" He takes the coin and starts to hand you a cardboard tube, but his
eye drifts out of focus again, and he drops it wearily into the dust." CR>)
(<AND <VERB? GIVE SHOW>
<PRSO? ,FLEXIBLE-HOLE>>
<TELL
,PROPRIETOR-STIRS "Don't think I could sell such an out-of-date model. No one
wants exits anymore, anyway. Don't know why I bother ... to stay in business
... zzzz.\"" CR>)>>
<OBJECT EXIT-OBJECT
(LOC GLOBAL-OBJECTS)
(DESC "exit")
(SYNONYM EXIT EGRESS)
(FLAGS VOWELBIT)
(ACTION EXIT-OBJECT-F)>
<ROUTINE EXIT-OBJECT-F ()
<COND (<VERB? BUY>
<COND (<EQUAL? ,HERE ,EXIT-SHOP>
<TELL "\"One marsmid, please, grunt snore zzz.\"" CR>)
(<FSET? ,EXIT-SHOP ,TOUCHBIT>
<TELL "This isn't an ">
<PRINTD ,EXIT-SHOP>
<TELL "!" CR>)
(T
<TELL "Buy an exit?!?!" CR>)>)
(<AND <VERB? BUY-WITH>
<PRSI? ,ONE-MARSMID-COIN ,TEN-MARSMID-COIN>>
<PERFORM ,V?GIVE ,PRSI ,PROPRIETOR>
<RTRUE>)
(<AND <VERB? TAKE>
<IN? ,TUBE ,DUST>
<EQUAL? ,HERE ,EXIT-SHOP>>
<TELL "It's lost in the dust." CR>)>>
<OBJECT DUST
(LOC EXIT-SHOP)
(DESC "dust")
(SYNONYM DUST)
(FLAGS NDESCBIT NARTICLEBIT)
(ACTION DUST-F)>
<ROUTINE DUST-F ("AUX" (X <>))
<COND (<VERB? SEARCH REACH-IN DIG LOOK-INSIDE RAKE>
<COND (<SET X <FIRST? ,DUST>>
<MOVE .X ,PROTAGONIST>
<THIS-IS-IT .X>
<TELL "You grasp" A .X "!" CR>)
(T
<TELL
"You sift through the dust but find nothing." CR>)>)
(<VERB? ENTER BOARD>
<TELL "You're already up to your neck in dust." CR>)
(<AND <VERB? PUT>
<PRSI? ,DUST>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<VERB? CLEAN MOVE BLOW>
<TELL "You'd need a plow to move this dust." CR>)>>
<OBJECT TUBE
(DESC "tube")
(NO-T-DESC "ube")
(SYNONYM TUBE UBE)
(ADJECTIVE CARDBOARD MAILING NARROW)
(FLAGS CONTBIT SEARCHBIT TAKEBIT BURNBIT)
(CAPACITY 2)>
<OBJECT FLEXIBLE-HOLE
(LOC TUBE)
(DESC "flexible black circle")
(SYNONYM CIRCLE HOLE EXIT)
(ADJECTIVE FLEXIBLE BLACK PORTABLE)
(FLAGS TAKEBIT)
(SIZE 1)
(ACTION FLEXIBLE-HOLE-F)>
<ROUTINE FLEXIBLE-HOLE-F ("AUX" (SIDEKICK-VISIBLE <>))
<COND (<VERB? EXAMINE>
<TELL
"The " 'FLEXIBLE-HOLE " looks just like a portable version of the
\"holes\" you've been encountering all over the solar system." CR>)
(<VERB? MEASURE>
<TELL "The " D ,HOLE " is two feet across." CR>)
(<AND <VERB? REACH-IN TOUCH LOOK-INSIDE>
<IN? ,FLEXIBLE-HOLE ,TUBE>>
<COND (<MEANT-OTHER-HOLE>
<RTRUE>)>
<NOT-ON-GROUND ,FLEXIBLE-HOLE>)
(<VERB? REACH-IN TOUCH>
<TELL ,HAND-DWINDLES>)
(<VERB? LOOK-INSIDE>
<TELL ,STARING-INTO-VOID>)
(<AND <VERB? PUT PUT-ON>
<PRSI? ,FLEXIBLE-HOLE>>
<COND (<EQUAL? <LOC ,FLEXIBLE-HOLE> ,HERE ,RAFT ,BARGE>
<MOVE ,PRSO ,BOUDOIR>
<NON-DIMENSIONAL-JOURNEY>)
(<MEANT-OTHER-HOLE>
<RTRUE>)
(T
<NOT-ON-GROUND ,FLEXIBLE-HOLE>)>)
(<VERB? STAND-ON ENTER BOARD>
<COND (<ULTIMATELY-IN? ,FLEXIBLE-HOLE>
<COND (<MEANT-OTHER-HOLE>
<RTRUE>)>
<TELL ,HOLDING-IT>)
(<AND <NOT <IN? ,PROTAGONIST ,HERE>>
<NOT <IN? ,FLEXIBLE-HOLE <LOC ,PROTAGONIST>>>>
<NOT-GOING-ANYWHERE>)
(<NOT <OR <EQUAL? <LOC ,FLEXIBLE-HOLE> ,HERE ,TREE-HOLE>
<EQUAL? <LOC ,FLEXIBLE-HOLE> ,RAFT ,BARGE>>>
<COND (<MEANT-OTHER-HOLE>
<RTRUE>)>
<NOT-ON-GROUND ,FLEXIBLE-HOLE>)
(<AND ,SIDEKICK-TRIP-FLAG
<QUEUED? ,I-SIDEKICK-OUT-WINDOW>>
<DO-WALK ,P?DOWN>)
(T
<COND (<VISIBLE? ,SIDEKICK>
<SET SIDEKICK-VISIBLE T>)>
<FALL-THROUGH-HOLE>
<GOTO ,BOUDOIR> ;"begin the endgame!"
<COND (<QUEUED? ,I-ION-DEATH> ;"radiated, you can't win"
<FSET ,POWER-TRANSMITTER ,MUNGBIT> ;"speed it up"
<QUEUE I-ION-DEATH 1>)>
<COND (.SIDEKICK-VISIBLE
<SETG HOLE-MOVE T>
<SIDEKICK-FOLLOWS-YOU>)>
<RTRUE>)>)>>
<ROUTINE MEANT-OTHER-HOLE () ;"if portable and nonportable hole both present"
<COND (<OR <AND <PRSO? ,FLEXIBLE-HOLE>
<EQUAL? <GET ,P-ADJW 0> ,W?FLEXIBLE ,W?PORTABLE>>
<AND <PRSI? ,FLEXIBLE-HOLE>
<EQUAL? <GET ,P-ADJW 1> ,W?FLEXIBLE ,W?PORTABLE>>>
<RFALSE>)
(<NOT <GLOBAL-IN? ,HOLE ,HERE>>
<RFALSE>)
(<PRSO? ,FLEXIBLE-HOLE>
<PERFORM-PRSA ,HOLE ,PRSI>
<RTRUE>)
(T
<PERFORM-PRSA ,PRSO ,HOLE>
<RTRUE>)>>
<ROOM MY-KIND-OF-DOCK
(LOC ROOMS)
(DESC "My Kinda Dock!")
(SDESC "Now THIS Is My Kind of Dock")
(LDESC
"If I owned a pier on a major Martian canal, I'd want it to look just like
this one -- handsome, well-proportioned, and amply endowed with jade and
ivory. I could probably live without the alabaster stair which leads up at
the end of the dock, to the east.")
(WEST SORRY "If you want to jump in the canal, say so.")
(SW SORRY "If you want to jump in the canal, say so.")
(NW SORRY "If you want to jump in the canal, say so.")
(EAST TO MAIN-HALL-OF-PALACE)
(UP TO MAIN-HALL-OF-PALACE)
(FLAGS ONBIT NARTICLEBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER STAIRS LIGHT)
;(THINGS <PSEUDO (<> LIGHT UNIMPORTANT-THING-F)>)>
<ROOM MAIN-HALL-OF-PALACE
(LOC ROOMS)
(DESC "Main Hall of Palace")
(LDESC
"A shaft of sunlight penetrates the stained glass windows and glistens off a
large reflecting pool, filling this huge entry hall with a seductive pattern
of tantalizing colors. Gleaming marble pillars rise majestically from the pool
to support a towering, arched roof. You are on a branching pathway suspended
above the pool, leading toward shadowy archways in every direction.")
(NORTH SORRY
"As you approach, you realize that the archway in this direction is merely
a design on a solid wall.")
(NE TO AUDIENCE-CHAMBER)
(EAST TO ORIENTAL-GARDEN)
(SE SORRY
"As you approach, you realize that the archway in this direction is merely
a design on a solid wall.")
(SOUTH TO LAUNDRY-ROOM)
(SW SORRY
"As you approach, you realize that the archway in this direction is merely
a design on a solid wall.")
(WEST TO MY-KIND-OF-DOCK)
(NW SORRY
"As you approach, you realize that the archway in this direction is merely
a design on a solid wall.")
(DOWN TO MY-KIND-OF-DOCK)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL WATER STAIRS WINDOW LIGHT)
;(THINGS <PSEUDO (<> LIGHT UNIMPORTANT-THING-F)>)>
<ROOM LAUNDRY-ROOM
(LOC ROOMS)
(DESC "Laundry Room")
(NORTH TO MAIN-HALL-OF-PALACE)
(OUT TO MAIN-HALL-OF-PALACE)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(ACTION LAUNDRY-ROOM-F)
;(THINGS <PSEUDO (DIRTY LAUNDRY UNIMPORTANT-THING-F)
(<> BRA UNIMPORTANT-THING-F)
(<> BRAS UNIMPORTANT-THING-F)
(<> BRASSIERE UNIMPORTANT-THING-F)
(<> JOCKSTRAP UNIMPORTANT-THING-F)>)>
<OBJECT DIRTY-LAUNDRY
(LOC LAUNDRY-ROOM)
(DESC "laundry")
(SYNONYM BRA BRAS BRASSIERE JOCKSTRAP LAUNDRY)
(ADJECTIVE DIRTY)
(FLAGS NDESCBIT)
(ACTION UNIMPORTANT-THING-F)>
<ROUTINE LAUNDRY-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"One of the less pleasant aspects of running a palace is the sheer volume
of dirty laundry its occupants produce. Why, the 8379 ">
<COND (,MALE
<TELL "wive">)
(T
<TELL "husband">)>
<TELL
"s alone could keep a crew of cleaners sleepless. Add in the servants, cooks,
gardeners, stablehands, jesters, visiting nobles, brothers-in-law in virtual
permanent residence... Suffice it to say that there's ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "quite">)
(T
<TELL "one hell of">)>
<TELL
" a lot of dirty laundry here. You can barely see the exit to the north
through it all.">)>>
<OBJECT CLOTHES-PIN
(LOC LAUNDRY-ROOM)
(DESC "clothes pin")
(NO-T-DESC "clohes pin")
(FDESC
"Today must be drying day at the laundry, since there's only one clothes
pin left.")
(SYNONYM PIN)
(ADJECTIVE CLOTHES CLOHES)
(FLAGS TAKEBIT BURNBIT)
(SIZE 2)
(ACTION CLOTHES-PIN-F)>
<ROUTINE CLOTHES-PIN-F ()
<COND (<FSET? ,CLOTHES-PIN ,UNTEEDBIT>
<RFALSE>)
(<AND <VERB? PUT-ON PIN>
<PRSO? ,CLOTHES-PIN>>
<COND (<NOT <PRSI? ,NOSE>>
<WASTES>)
(,GONE-APE
<TELL ,DEXTERITY>)
(<FSET? ,CLOTHES-PIN ,WORNBIT>
<TELL ,SENILITY-STRIKES>)
(T
<MOVE ,CLOTHES-PIN ,PROTAGONIST>
<FSET ,CLOTHES-PIN ,WORNBIT>
<FSET ,NOSE ,MUNGBIT>
<TELL "You pin your proboscis." CR>)>)
(<AND <VERB? PUT>
<PRSO? ,NOSE>>
<PERFORM ,V?PUT-ON ,CLOTHES-PIN ,NOSE>
<RTRUE>)
(<AND <VERB? TIE>
<EQUAL? ,P-PRSA-WORD ,W?ATTACH>
<PRSO? ,CLOTHES-PIN>
,PRSI>
<PERFORM ,V?PUT-ON ,CLOTHES-PIN ,PRSI>
<RTRUE>)
(<AND <VERB? TAKE-WITH>
<EQUAL? ,P-PRSA-WORD ,W?HOLD>
<PRSO? ,NOSE>>
<PERFORM ,V?PUT-ON ,CLOTHES-PIN ,NOSE>
<RTRUE>)
(<AND <VERB? REMOVE TAKE-OFF>
<FSET? ,CLOTHES-PIN ,WORNBIT>>
<COND (,GONE-APE
<PERFORM ,V?TAKE ,CLOTHES-PIN>
<RTRUE>)>
<OPEN-EYES-AND-REMOVE-HANDS>
<FCLEAR ,CLOTHES-PIN ,WORNBIT>
<SENSE-AGAIN ,NOSE>)>>
<ROOM ORIENTAL-GARDEN
(LOC ROOMS)
(DESC "Oriental Garden")
(LDESC
"These twisted trees and elegant footbridges are even more beautiful than the
gardens of the most lavish Fu Manchu films. Paths from the north, southeast,
and west meet at a large well of hand-carved stone in the center of the
garden.")
(WEST TO MAIN-HALL-OF-PALACE)
(NORTH TO AUDIENCE-CHAMBER)
(SE TO BASE-OF-TOWER)
(DOWN PER WELL-ENTER-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL TREE WELL-OBJECT)
;(THINGS <PSEUDO (LARGE WELL WELL-F)
(STONE WELL WELL-F)>)>
<OBJECT WELL-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "well")
(SYNONYM WELL)
(ADJECTIVE LARGE STONE)
(FLAGS NDESCBIT)
(ACTION WELL-F)>
<ROUTINE WELL-ENTER-F ()
<TELL
"You climb down the well for a long distance. Near the bottom the
handholds end, so you">
<AND-SIDEKICK ,WELL-BOTTOM>
<TELL " leap the rest of the way, landing on" A ,HOLE ". ">
<SETG HERE ,WELL-BOTTOM>
<MOVE ,PROTAGONIST ,WELL-BOTTOM>
<SETG OHERE <>>
<PERFORM ,V?STAND-ON ,HOLE>
<RFALSE>>
<ROUTINE WELL-F ()
<COND (<VERB? LOOK-INSIDE REACH-IN>
<TELL "Handholds lead downward!" CR>)
(<VERB? CLIMB-DOWN CLIMB CLIMB-UP BOARD ENTER>
<COND (<EQUAL? ,HERE ,WELL-BOTTOM>
<DO-WALK ,P?UP>)
(T
<WELL-ENTER-F>)>
<RTRUE>)
(<AND <VERB? PUT>
<PRSI? ,WELL-OBJECT>
<EQUAL? ,HERE ,ORIENTAL-GARDEN>>
<MOVE ,PRSO ,BARGE>
<COND (<PRSO? ,TORCH>
<TORCH-OFF>)>
<TELL "It drops out of sight." CR>)>>
<OBJECT TOWER
(LOC LOCAL-GLOBALS)
(DESC "tower")
(SYNONYM TOWER MINARET)
(ADJECTIVE SLENDER TALL)
(ACTION TOWER-F)>
<ROUTINE TOWER-F ()
<COND (<VERB? ENTER WALK-TO BOARD CLIMB CLIMB-UP>
<COND (<EQUAL? ,HERE ,BASE-OF-TOWER>
<DO-WALK ,P?UP>)
(<EQUAL? ,HERE ,MINARET>
<TELL ,LOOK-AROUND>)>)
(<VERB? DISEMBARK LEAVE EXIT>
<COND (<EQUAL? ,HERE ,BASE-OF-TOWER>
<TELL ,LOOK-AROUND>)
(T
<DO-WALK ,P?DOWN>)>)>>
<ROOM BASE-OF-TOWER
(LOC ROOMS)
(DESC "Base of Tower")
(LDESC
"A slender tower protrudes magnificently above the palace grounds. A stair
winds up into the tower and an oriental garden spreads out to the northwest.")
(UP TO MINARET)
(NW TO ORIENTAL-GARDEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL STAIRS TOWER)>
<ROOM MINARET
(LOC ROOMS)
(DESC "Minaret")
(LDESC
"By standing erect at the parapet of this mighty tower, you command an exciting
view. Below, gardens and courtyards intermingle with the palace buildings,
forming a fertile oasis in the Martian desert. Off to the west, docks straddle
a deep canal. On the far shore, sand dunes lap at crumbling buildings. On the
top step of a winding stair is a black circle.")
(DOWN TO BASE-OF-TOWER)
(FLAGS RLANDBIT ONBIT)
(GLOBAL HOLE STAIRS TOWER CANAL-OBJECT WATER DUNES DOCK-OBJECT)
(HOLE-DESTINATION CRAMPED-SPACE)>
<ROOM AUDIENCE-CHAMBER
(LOC ROOMS)
(DESC "Audience Chamber")
(WEST PER AUDIENCE-CHAMBER-EXIT-F)
(IN PER AUDIENCE-CHAMBER-EXIT-F)
(SOUTH PER AUDIENCE-CHAMBER-EXIT-F)
(SW PER AUDIENCE-CHAMBER-EXIT-F)
(GLOBAL HAREM-OBJECT)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(ACTION AUDIENCE-CHAMBER-F)
;(THINGS <PSEUDO (<> HAREM HAREM-OBJECT-F)
(<> WIFE MATE-F)
(<> HUSBAND MATE-F)>)>
<OBJECT HAREM-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "harem")
(SYNONYM HAREM)
(FLAGS NDESCBIT)
(ACTION HAREM-OBJECT-F)>
<OBJECT WIFE-NOT-HERE
(LOC AUDIENCE-CHAMBER)
(DESC "wife")
(SYNONYM WIFE)
(FLAGS NDESCBIT)
(ACTION WIFE-NOT-HERE-F)>
<OBJECT HUSBAND-NOT-HERE
(LOC AUDIENCE-CHAMBER)
(DESC "husband")
(SYNONYM HUSBAND)
(FLAGS NDESCBIT)
(ACTION HUSBAND-NOT-HERE-F)>
<ROUTINE AUDIENCE-CHAMBER-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The good news is that this hall is intoxicatingly beautiful, laid with the
snow-white fur of the rare Martian Velvetworm and endowed with platinum arches
and balustrades. Silky curtains embrace openings to the south, southwest,
and west.|
The bad news is that no ">
<COND (<NOT ,MALE>
<TELL "wo">)>
<TELL
"man has ever entered the " D ,HERE " of" T ,SULTAN " and departed alive.">)
(<AND <EQUAL? .RARG ,M-END>
<NOT <FSET? ,SULTAN ,TOUCHBIT>>>
<FSET ,SULTAN ,TOUCHBIT>
<QUEUE I-SULTAN -1>)>>
<ROUTINE AUDIENCE-CHAMBER-EXIT-F ()
<COND (<NOT ,RIDDLE-ANSWERED>
<TELL "\"Rule violation! Rule violation!\" ">
<RIDDLE-DEATH>)
(<PRSO? ,P?SOUTH>
,ORIENTAL-GARDEN)
(<PRSO? ,P?SW>
,MAIN-HALL-OF-PALACE)
(<OR <G? ,CHOICE-NUMBER 0>
<EQUAL? ,HAREM-GUARD-COUNTER 5> ;"he's stormed off">
,HAREM)
(<RUNNING? ,I-HAREM-GUARD>
<QUEUE I-HAREM-GUARD 2>
<TELL
"\"Hey!\" The " 'HAREM-GUARD " pushes you back. \"Pick a number first!" CR>
<RFALSE>)
(T
<QUEUE I-HAREM-GUARD 2>
<MOVE ,HAREM-GUARD ,AUDIENCE-CHAMBER>
<SETG AWAITING-FAKE-ORPHAN T>
<TELL "A well-armed ">
<COND (,MALE
<TELL "fe">)>
<TELL
"male guard blocks you. \"Congratulations on your performance,\" ">
<SHE-HE>
<TELL
" says in a bored voice. You wonder how the guard can be so unmoved by your
historic feat. As though sensing your thoughts, the guard says, \"The "
D ,SULTAN " likes to pretend that no one's ever gotten the riddle, but
someone got it last year, the word spread around, and now everyone knows
the answer. You're the twelfth winner this week already. ">
<HE-SHE T>
<TELL
" sent away to Maude's House of Riddles on Ganymede for a new one, but the
mail is so slow...\" The guard shakes ">
<HER-HIS>
<TELL " head. \"Well, pick a ">
<COND (,MALE
<TELL "wife">)
(T
<TELL "husband">)>
<TELL
"; any number from 1 to 8379. Don't waste
time thinking; they're all clones anyway.\" ">
<SHE-HE T>
<TELL " looks at you expectantly." CR>
<RFALSE>)>>
<OBJECT RIDDLE
(LOC AUDIENCE-CHAMBER)
(DESC "riddle")
(SYNONYM RIDDLE)
(FLAGS NDESCBIT)>
<ROUTINE HUSBAND-NOT-HERE-F ()
<COND (<AND <VERB? PICK>
<IN? ,HAREM-GUARD ,HERE>>
<I-HAREM-GUARD T>)
(<AND <NOT <PRSO-MOBY-VERB?>>
<NOT <PRSI-MOBY-VERB?>>>
<CANT-SEE ,HUSBAND-NOT-HERE>)>>
<ROUTINE WIFE-NOT-HERE-F ()
<COND (<AND <VERB? PICK>
<IN? ,HAREM-GUARD ,HERE>>
<I-HAREM-GUARD T>)
(<AND <NOT <PRSO-MOBY-VERB?>>
<NOT <PRSI-MOBY-VERB?>>>
<CANT-SEE ,WIFE-NOT-HERE>)>>
<OBJECT HAREM-GUARD
(DESC "harem guard")
(LDESC
"A guard stands by the entrance to the harem, apparently waiting for
a response from you.")
(SYNONYM GUARD)
(ADJECTIVE HAREM)
(FLAGS ACTORBIT)
(ACTION HAREM-GUARD-F)>
<ROUTINE HAREM-GUARD-F ()
<COND (<EQUAL? ,HAREM-GUARD ,WINNER>
<COND (<AND <VERB? ANSWER-KLUDGE>
<PRSO? ,INTNUM>>
<PICK-WIFE ,INTNUM>)
(T
<I-HAREM-GUARD T>)>)
(<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 13 14>>
<DO-WALK ,P?WEST>)>>
<GLOBAL HAREM-GUARD-COUNTER 0>
<ROUTINE I-HAREM-GUARD ("OPTIONAL" (CALLED-BY-HAREM-GUARD-F <>))
<SETG HAREM-GUARD-COUNTER <+ ,HAREM-GUARD-COUNTER 1>>
<COND (.CALLED-BY-HAREM-GUARD-F
<QUEUE I-HAREM-GUARD 2>)
(T
<QUEUE I-HAREM-GUARD -1>)>
<COND (<OR <NOT <EQUAL? ,HERE ,AUDIENCE-CHAMBER>>
<G? ,CHOICE-NUMBER 0>>
<SETG AWAITING-FAKE-ORPHAN <>>
<DEQUEUE I-HAREM-GUARD>
<REMOVE ,HAREM-GUARD>
<RFALSE>)>
<COND (<NOT .CALLED-BY-HAREM-GUARD-F>
<TELL " ">)>
<TELL "\"">
<COND (<EQUAL? ,HAREM-GUARD-COUNTER 5>
<REMOVE ,HAREM-GUARD>
<SETG FOLLOW-FLAG 14>
<QUEUE I-FOLLOW 2>
<DEQUEUE I-HAREM-GUARD>
<SETG AWAITING-FAKE-ORPHAN <>>
<TELL
"I'm not waiting around anymore! You blew it, sucker.\" The
guard storms angrily away." CR>)
(T
<TELL "Ahem? A number...?\" says" T ,HAREM-GUARD>
<COND (<EQUAL? ,HAREM-GUARD-COUNTER 4>
<TELL " with growing impatience">)>
<TELL ,PERIOD-CR>)>>
<ROUTINE PICK-WIFE ("OPTIONAL" (OBJ <>) "AUX" DUPE)
<COND (<OR <EQUAL? .OBJ ,INTNUM>
<EQUAL? <NUMBER? ,P-CONT> ,W?NUMBER>>
<COND (<L? ,P-NUMBER 1>
<TELL ,GIMME-TROUBLE>)
(<G? ,P-NUMBER 8379>
<TELL "\"There're only 8379 of 'em.\"" CR>)
(<SET DUPE <INTBL? ,P-NUMBER ,WRONG-ANSWERS 8>>
<TELL
"\"You already asked for that one, dodo-brain!\"" CR>)
(<OR <EQUAL? ,P-NUMBER ,WIFE-NUMBER>
<PROB ,HAREM-PROB>>
<SETG CHOICE-NUMBER ,P-NUMBER>
<SETG AWAITING-FAKE-ORPHAN <>>
<SETG FOLLOW-FLAG 13>
<QUEUE I-FOLLOW 2>
<REMOVE ,HAREM-GUARD>
<QUEUE I-HAREM 5>
<TELL
"The guard, walking off, says, \"I'll summon that one. You may enter.\"" CR>)
(T
<PUT ,WRONG-ANSWERS </ ,HAREM-PROB 15> ,P-NUMBER>
<SETG HAREM-PROB <+ ,HAREM-PROB 15>>
<TELL "The guard consults a list. \"">
<COND (<PROB 25>
<TELL "Traded to the Du">
<COND (,MALE
<TELL "ke">)
(T
<TELL "chess">)>
<TELL
" of Deimos for two eunuchs and a jester to be named later">)
(T
<TELL <PICK-ONE ,EXCUSES>>)>
<TELL ". Pick another number.\"" CR>)>)
(T
<TELL "[Please give your selection in numerical form.]" CR>)>
<QUEUE I-HAREM-GUARD 2>
<STOP>>
<GLOBAL HAREM-PROB 0>
<GLOBAL CHOICE-NUMBER 0>
<GLOBAL WRONG-ANSWERS
<TABLE 0 0 0 0 0 0 0 0>>
<GLOBAL EXCUSES
<LTABLE 0
"Oops, deceased"
"Vacationing on Ceres"
"Bad case of harem fever">>
<OBJECT SULTAN
(LOC AUDIENCE-CHAMBER)
(SDESC "")
(DESCFCN SULTAN-F)
(SYNONYM SULTAN SULTANESS)
(FLAGS ACTORBIT)
(ACTION SULTAN-F)>
<ROUTINE SULTAN-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL " The " D ,SULTAN " is here,">
<COND (,RIDDLE-ANSWERED
<ARGUING-WITH-LEGAL-ADVISOR>)
(T
<TELL " enthroned.">)>)
(<EQUAL? ,SULTAN ,WINNER>
<COND (<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,LGOP>>
<TELL
"\"They were exiled from Leather Island in the Caribbean, after cheating in
the Miss Leather Island beauty pageant; the silicone injectionist spilled the
beans. Now they rule all of Phobos. Hmmph! They call that hunk of rock a
Sultanate? Those bimbos never told a decent riddle in their lives!\"" CR>)
(<VERB? WHAT WHERE>
<TELL "\"I ask the riddles around here!\"" CR>)
(<AND <VERB? YES>
<EQUAL? ,AWAITING-REPLY 1>>
<V-YES>)
(<AND <VERB? NO>
<EQUAL? ,AWAITING-REPLY 1>>
<V-NO>)
(<AND <VERB? ANSWER-KLUDGE USE-QUOTES>
,AWAITING-FAKE-ORPHAN
<NOT ,RIDDLE-ANSWERED>>
<COND (<NOT <PRSO? ,RIDDLE>>
<RIDDLE-ANSWER>
<RTRUE>)>
<SETG RIDDLE-ANSWERED T>
<DEQUEUE I-SNEEZE>
<INCREMENT-SCORE 8 11>
<TELL
"The " D ,SULTAN " looks crestfallen. \"Yes, that's right.\" The "
D ,SULTAN " is struck by a thought. \"Can we kill ">
<HIM-HER>
<TELL " anyway?\" ">
<HE-SHE T>
<TELL " begins">
<ARGUING-WITH-LEGAL-ADVISOR>
<TELL
" This might be a good time to make a beeline for the harem to the west." CR>)
(T
<TELL "The " D ,SULTAN " ignores you." CR>
<STOP>)>)
(<AND <NOT ,RIDDLE-ANSWERED>
<OR <TOUCHING? ,SULTAN>
<AND <VERB? THROW>
<PRSI? ,SULTAN>>>>
<DO-WALK ,P?WEST>)
(<AND <VERB? GIVE SHOW>
<PRSO? ,CODED-MESSAGE>>
<TELL "\"A spy! A spy!\" ">
<RIDDLE-DEATH>)
(<AND <VERB? LISTEN>
,RIDDLE-ANSWERED>
<TELL "The " D ,SULTAN " is">
<ARGUING-WITH-LEGAL-ADVISOR>
<CRLF>)>>
<ROUTINE ARGUING-WITH-LEGAL-ADVISOR ()
<TELL " arguing loudly with one of ">
<HIS-HER>
<TELL " legal advisors.">>
<GLOBAL SULTAN-COUNTER 0>
<ROUTINE I-SULTAN ()
<SETG SULTAN-COUNTER <+ ,SULTAN-COUNTER 1>>
<TELL " ">
<COND (<G? ,SULTAN-COUNTER 1>
<COND (<EQUAL? ,SULTAN-COUNTER 4>
<TELL "\"Have this bore devoured.\" ">
<RIDDLE-DEATH>)
(T
<TELL "\"I grow impatient. ">)>)
(T
<SETG AWAITING-REPLY 1>
<TELL
"\"Ah,\" says" T ,SULTAN ", \"a visitor. This is pleasing;
it was turning out to be a very dull morning.\" ">
<HE-SHE T>
<TELL " clears ">
<HIS-HER>
<TELL
" throat. \"The rules: I will pose a riddle. If you answer it correctly,
you may spend one hour with any of my ">
<COND (,MALE
<TELL "wive">)
(T
<TELL "husband">)>
<TELL "s.">
<YOU-WILL-DIE "you answer incorrectly">
<YOU-WILL-DIE "you do not answer">
<YOU-WILL-DIE "you enter the harem before answering">
<YOU-WILL-DIE "you attempt to leave">
<YOU-WILL-DIE "you touch me in any way">
<YOU-WILL-DIE "I happen to sneeze">
<YOU-WILL-DIE "any situation not covered by the rules occurs">
<TELL "\" ">
<HE-SHE T>
<SETG AWAITING-REPLY 1>
<TELL
" motions to one of the palace eunuchs. \"Go tell the animal tenders
not to feed the tigers yet.\" Pause. \"">)>
<TELL "Are you ready?\"" CR>>
<ROUTINE YOU-WILL-DIE (STRING)
<TELL " If " .STRING ", you will die.">>
<ROUTINE RIDDLE-DEATH ()
<JIGS-UP
"You never actually notice where the tiger comes from, only that it seems
very very very very ferocious.">>
<ROUTINE I-SNEEZE ()
<QUEUE I-SNEEZE -1>
<SETG SULTAN-COUNTER <+ ,SULTAN-COUNTER 1>>
<TELL " The " D ,SULTAN>
<COND (<EQUAL? ,SULTAN-COUNTER 4>
<TELL " convulses. \"Achoooooo!!!!\" ">
<RIDDLE-DEATH>)
(<EQUAL? ,SULTAN-COUNTER 3>
<TELL " is squinting and drawing in quick gasps of air!" CR>)
(<EQUAL? ,SULTAN-COUNTER 2>
<TELL " is rubbing ">
<HIS-HER>
<TELL " nose with the back of ">
<HIS-HER>
<TELL " hand." CR>)
(T
<TELL " is twitching ">
<HIS-HER>
<TELL " nose." CR>)>>
<GLOBAL RIDDLE-ANSWERED <>>
<ROUTINE RIDDLE-ANSWER ()
<COND (<AND <NOT ,P-CONT>
<NOT ,PRSO>>
<SETG PRSO ,SULTAN>
<V-TELL> "if you just said SAY or ANSWER with nothing after")
(<AND ,P-CONT
<OR <EQUAL? <GET ,P-LEXV ,P-CONT> ,W?RIDDLE>
<EQUAL? <GET ,P-LEXV <+ ,P-CONT 2>> ,W?RIDDLE>>>
<SETG WINNER ,SULTAN>
<PERFORM ,V?ANSWER-KLUDGE ,RIDDLE>
<SETG WINNER ,PROTAGONIST>
<STOP>)
(<OR <AND ,P-CONT
<EQUAL? <GET ,P-LEXV ,P-CONT> ,W?SEX ,W?LOVE>>
<PRSO? ,LOVE>>
<TELL "\"Good guess! It's wrong, though.\" ">
<RIDDLE-DEATH>)
(T
<TELL "\"Wrongo!\" ">
<RIDDLE-DEATH>)>>
<ROOM HAREM
(LOC ROOMS)
(DESC "Harem")
(EAST TO AUDIENCE-CHAMBER)
(OUT TO AUDIENCE-CHAMBER)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL ODOR HAREM-OBJECT)
(ODOR "")
(ODOR-NUMBER 4)
(ACTION HAREM-F)
;(THINGS <PSEUDO (<> HAREM HAREM-OBJECT-F)>)>
<ROUTINE HAREM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a sensuous location of silks and satins and furs.
A draped exit leads east.">
<COND (<NOT <FSET? ,NOSE ,MUNGBIT>>
<TELL " A pleasant odor">
<COND (<FSET? ,HERE ,SMELLEDBIT>
<TELL " of " <GETP ,HERE ,P?ODOR>>)>
<TELL " tickles mischievously at " 'NOSE ".">)>
<RTRUE>)
(<AND <EQUAL? .RARG ,M-END>
<IN? ,SIDEKICK ,HERE>
<QUEUED? ,I-HAREM>>
;"this can happen if you answer the riddle before ever
meeting sidekick, then go back, get him, and enter harem"
<TELL
" A " 'HAREM-GUARD " grabs " D ,SIDEKICK ". \"You didn't
answer the riddle!\" ">
<TIGER-EATS-SIDEKICK>)
(<EQUAL? .RARG ,M-SMELL>
<TELL ,IT-SEEMS-THAT T ,SULTAN " likes h">
<COND (,MALE
<TELL "is wives">)
(T
<TELL "er husbands">)>
<TELL " to wear fine " <GETP ,HERE ,P?ODOR> ".">)>>
<ROUTINE TIGER-EATS-SIDEKICK ()
<REMOVE ,SIDEKICK>
<SETG FOLLOW-FLAG 2>
<QUEUE I-FOLLOW 2>
<SETG SIDEKICK-EATEN T>
<TELL
D ,SIDEKICK " is led away. As you hear, from nearby, a fierce roar
followed by a blood-curdling scream">
<MEMORIAM>>
<ROUTINE I-HAREM ()
<COND (<EQUAL? ,HERE ,HAREM>
<TELL
" A figure, completely cloaked in veils of silk, enters and beckons
you deeper into the harem" ,ELLIPSIS>
<GOTO ,INNER-HAREM>
<THIS-IS-IT ,SULTANS-WIFE>
<FCLEAR ,SULTANS-WIFE ,NDESCBIT>
<QUEUE I-HOUR 60>
<TELL " " D ,SULTANS-WIFE>
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL " sits down at the far end of the room." CR>)
(T
<TELL " touches a button at the shoulder of ">
<HER-HIS>
<TELL " tunic and it slowly floats to the floor. ">
<SHE-HE T>
<TELL
" pulls you down onto the furs, whispering in a husky voice, \"For
an hour, I am yours.\"" CR>)>)
(T
<RFALSE>)>>
<ROUTINE I-HOUR ()
<COND (<EQUAL? ,HERE ,INNER-HAREM>
<TELL
" \"The hour is over,\" sighs " D ,SULTANS-WIFE
", reluctantly leading you out of the " 'HERE ,ELLIPSIS>
<GOTO ,HAREM>)
(T
<RFALSE>)>>
<ROUTINE HAREM-OBJECT-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,AUDIENCE-CHAMBER>
<DO-WALK ,P?WEST>)
(<EQUAL? ,HERE ,HAREM ,INNER-HAREM>
<TELL ,LOOK-AROUND>)>)
(<VERB? LEAVE EXIT DISEMBARK>
<COND (<EQUAL? ,HERE ,AUDIENCE-CHAMBER>
<TELL ,LOOK-AROUND>)
(T
<DO-WALK ,P?OUT>)>)
(<AND <VERB? EXAMINE>
<NOT <EQUAL? ,HERE ,AUDIENCE-CHAMBER>>>
<V-LOOK>)
(<AND <VERB? SMELL>
<NOT <EQUAL? ,HERE ,AUDIENCE-CHAMBER>>>
<PERFORM-PRSA ,ODOR>
<RTRUE>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)>>
<ROOM INNER-HAREM
(LOC ROOMS)
(DESC "Inner Harem")
(DOWN PER CATACOMBS-ENTER-F)
(SE PER INNER-HAREM-EXIT-F)
(OUT PER INNER-HAREM-EXIT-F)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL ODOR HAREM-OBJECT)
(ACTION INNER-HAREM-F)
;(THINGS <PSEUDO (<> HAREM HAREM-OBJECT-F)>)>
<ROUTINE INNER-HAREM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This luxurious bedroom, presumably one of many throughout the
harem, is appointed with a multitude of exotic furs, warm to the
touch as though still alive. ">
<COND (<NOT <FSET? ,NOSE ,MUNGBIT>>
<TELL
"The heady aroma of " <GETP ,HAREM ,P?ODOR>
" and incense mingle in the air. ">)>
<TELL "There's an exit to the southeast">
<COND (,CATACOMBS-OPEN
<TELL " and a secret passage leads downward">)>
<TELL ".">)>>
<ROUTINE INNER-HAREM-EXIT-F ()
<COND (<AND <ULTIMATELY-IN? ,MAP>
<VISIBLE? ,MAP>>
<TELL "As" T ,SULTANS-WIFE>
<JIGS-UP " forewarned, the guards reduce you to three dots.">)
(T
,HAREM)>>
<OBJECT SULTANS-WIFE
(LOC INNER-HAREM)
;"DESC handled by a special clause in DPRINT because of wife/husband #"
(DESCFCN SULTANS-WIFE-F)
(SYNONYM HUSBAND WIFE)
(ADJECTIVE SULTAN\'S SULTAN SULTANESS)
(FLAGS ACTORBIT NARTICLEBIT NDESCBIT)
(ACTION SULTANS-WIFE-F)>
<ROUTINE SULTANS-WIFE-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL " " D ,SULTANS-WIFE " is here">
<COND (<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>
<TELL ", lying seductively naked on a bed of furs">)>
<TELL ".">)
(<EQUAL? ,WINNER ,SULTANS-WIFE>
<COND (<OR <AND <VERB? KISS>
<PRSO? ,KNEECAPS>
<NOT ,CATACOMBS-OPEN>>
<AND <VERB? KISS-ON>
<PRSO? ,ME>
<PRSI? ,KNEECAPS>
<NOT ,CATACOMBS-OPEN>>>
<COND (<EQUAL? ,CHOICE-NUMBER ,WIFE-NUMBER>
<MOVE ,MAP ,HERE>
<MOVE ,TORCH ,HERE>
<QUEUE I-TORCH 23>
<DEQUEUE I-HOUR>
<SETG CATACOMBS-OPEN T>
<OPEN-EYES-AND-REMOVE-HANDS>
<TELL
"\"Oh,\" whispers " D ,SULTANS-WIFE ", \"you're from
the rebels! Here's" T ,MAP ",\" ">
<SHE-HE>
<TELL
" says, laying" A ,MAP " at your feet, \"and here's" A ,TORCH ",\" ">
<SHE-HE>
<TELL
" says, lighting" A ,TORCH " and placing it next to the map. ">
<SHE-HE T>
<TELL
" moves some furs to reveal a secret entrance leading downwards. \"The
only way out is through the catacombs -- if you come back this way with"
T ,MAP "," T ,HAREM-GUARD "s will...\"" CR>)
(T
<TELL "\"I'm not into that kinky stuff.\"" CR>)>)
(<AND <VERB? KISS SUCK FUCK EAT LICK BLOW TAKE TOUCH>
<EQUAL? ,NAUGHTY-LEVEL 0>
<PRSO? ,ME ,COCK>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?FUCK ,SULTANS-WIFE>
<SETG WINNER ,SULTANS-WIFE>
<RTRUE>)
(<AND <VERB? KISS>
<PRSO? ,ME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM-PRSA ,SULTANS-WIFE>
<SETG WINNER ,SULTANS-WIFE>
<RTRUE>)
(<AND <VERB? FUCK TAKE>
<PRSO? ,ME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?FUCK ,SULTANS-WIFE>
<SETG WINNER ,SULTANS-WIFE>
<RTRUE>)
(<AND <VERB? EAT LICK BLOW SUCK>
<PRSO? ,ME ,COCK>>
<COND (<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL ,MISSIONARY-ONLY>)
(T
<TELL
D ,SULTANS-WIFE " nods eagerly and slides downward. Skillful tongue-work soon
has you squirming on the edge of orgasm... Eventually, spent and satisfied,
you take " D ,SULTANS-WIFE " lovingly into your arms." CR>)>)
(<OR <AND <VERB? WHAT>
<PRSO? ,LGOP>>
<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,LGOP>>>
<TELL
"\"That's the code name of the cadre who lead the rebel underground. It is
said they have pledged their lives and souls to the revolution!\"" CR>)
(T
<TELL "\"Shhh... ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL
"It's past bedtime for the children of" T ,SULTAN "! You'll wake them!\"" CR>
<STOP>)
(T
<TELL
"Let " 'YOUR-BODY " do the talking,\" says " D ,SULTANS-WIFE
", reaching out toward you." CR>
<STOP>)>)>)
(<WRONG-SEX-WORD ,SULTANS-WIFE ,W?WIFE ,W?HUSBAND>
<STOP>)
(<AND <VERB? THANK>
,CATACOMBS-OPEN>
<TELL
D ,SULTANS-WIFE " gives you a grand salute. \"For the revolution!\"" CR>)
(<AND <VERB? KISS TOUCH FUCK TAKE>
<EQUAL? ,NAUGHTY-LEVEL 0>>
<TELL
"Instead, you decide to get to know " D ,SULTANS-WIFE
" better, so you engage ">
<HER-HIM>
<TELL
" in a stimulating discussion about " <PICK-ONE ,DISCUSSION-TOPICS> CR>)
(<VERB? EAT>
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<V-FUCK>)
(<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL ,MISSIONARY-ONLY>)
(T
<TELL D ,PRSO " arches ">
<HER-HIS>
<TELL
" body to meet you, passionately stroking your neck and shoulders." CR>)>)
(<AND <VERB? UNDRESS>
<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>>
<SHE-HE T>
<TELL " is!" CR>)
(<VERB? DRESS>
<TELL "You must be from Massachusetts." CR>)
(<VERB? KISS TOUCH TAKE>
<TELL
D ,SULTANS-WIFE " moans softly and draws closer to you." CR>)
(<VERB? FUCK>
<COND (,WIFE-FUCKED
<TELL
"You shouldn't wear yourself out. [Besides, do you think there's infinite
room on this disk for long, lurid descriptions of sex acts?]" CR>
<RTRUE>)>
<SETG WIFE-FUCKED T>
<TELL D ,SULTANS-WIFE " draws you into ">
<HER-HIS>
<TELL " arms. ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 2>
<TELL "As " 'HANDS "s explore h">
<COND (,MALE
<TELL "er soft, rounded">)
(T
<TELL "is firm, strong">)>
<TELL
" body, a faint sweaty, musky odor triggers a passionate fire
within you, and you find yourself ">
<COND (,MALE
<TELL "ris">)
(T
<TELL "warm">)>
<TELL
"ing to the occasion. Your lovemaking is slow and gentle, and as you reach
a crescendo of pleasure, you cry out softly, passionately, and repeatedly.
\"Oh,\" moans " D ,SULTANS-WIFE ", \"say my number again ... say it in
French...\"" CR>)>
<TELL
"Much later, you and " D ,SULTANS-WIFE " fall back upon the furs,
basking in the aura of postcoital bliss." CR>)
(<VERB? MARRY>
<TELL "But " D ,PRSO " is already married!" CR>)
(<VERB? MEASURE>
<COND (,MALE
<TELL "36-24-36">)
(<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "Tall">)
(<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "Long">)
(T
<TELL "Ten delicious inches">)>
<TELL ,PERIOD-CR>)
(<AND <VERB? EXAMINE>
<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>>
<TELL
"A mere glance at the succulent, sexy body of "
D ,SULTANS-WIFE " is enough to ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "really turn you on">)
(,MALE
<TELL "give you an instant hard-on">)
(T
<TELL "get you all moist and randy">)>
<TELL ,PERIOD-CR>)
(<VERB? SMELL>
<SHE-HE T>
<TELL " smells of " <GETP ,HAREM ,P?ODOR> ,PERIOD-CR>)>>
<GLOBAL WIFE-FUCKED <>>
<GLOBAL DISCUSSION-TOPICS
<LTABLE 0
"the latest sounds in jazz."
"a new radio serial."
"possible uses of electricity."
"the writings of Jules Verne."
"the intelligence level of beavers.">>
<OBJECT TORCH
(SDESC "reliable torch")
(NO-T-DESC "orch")
(SYNONYM TORCH ORCH)
(ADJECTIVE RELIABLE UNRELIABLE)
(FLAGS TAKEBIT ONBIT LIGHTBIT)
(ACTION TORCH-F)>
<ROUTINE TORCH-F ()
<COND (<AND <VERB? OFF>
<FSET? ,TORCH ,ONBIT>>
<TORCH-OFF>
<TELL ,PFFT>)
(<AND <VERB? ON>
<NOT <FSET? ,TORCH ,ONBIT>>>
<PERFORM ,V?BURN ,TORCH>
<RTRUE>)
(<AND <VERB? BURN>
<PRSO? ,TORCH>
<FSET? ,TORCH ,ONBIT>>
<PERFORM ,V?ON ,TORCH>
<RTRUE>)
(<AND <VERB? PUT PUT-ON>
<FSET? ,TORCH ,ONBIT>
<PRSI? ,BARGE ,TRELLIS>
<NOT <FSET? ,PRSI ,UNTEEDBIT>>>
<TELL "The " 'PRSI " would burn!" CR>)
(<AND <VERB? PUT>
<PRSI? ,CANAL ,WATER>
<FSET? ,TORCH ,ONBIT>>
<TORCH-OFF>
<TELL ,PFFT>)>>
<GLOBAL TORCH-LIFE 5>
<ROUTINE TORCH-OFF ()
<DEQUEUE I-TORCH>
<FCLEAR ,TORCH ,ONBIT>
<FCLEAR ,TORCH ,LIGHTBIT>
<PUTP ,TORCH ,P?SDESC "unreliable torch">
<FSET ,TORCH ,VOWELBIT>>
<ROUTINE I-TORCH ()
<SETG TORCH-LIFE <- ,TORCH-LIFE 1>>
<COND (<EQUAL? ,TORCH-LIFE 0>
<TORCH-OFF>)
(T
<QUEUE I-TORCH <* ,TORCH-LIFE 6>>)>
<COND (<AND <VISIBLE? ,TORCH>
<NOT <FSET? ,EYES ,MUNGBIT>>
<NOT <EQUAL? ,HAND-COVER ,EYES>>>
<TELL " ">
<COND (<EQUAL? ,TORCH-LIFE 0>
<TELL ,PFFT>
<NOW-DARK?>)
(T
<TELL "The torch is noticeably dimmer." CR>)>)>
<RFALSE> ;"won't stop a wait even if it prints">
<OBJECT MAP
(DESC "secret map")
(NO-T-DESC "secre map")
(SYNONYM MAP)
(ADJECTIVE SECRET SECRE)
(FLAGS TAKEBIT BURNBIT READBIT)
(SIZE 2)
(ACTION MAP-F)>
<ROUTINE MAP-F ()
<COND (<AND <VERB? READ EXAMINE>
<NOT <FSET? ,PRSO ,UNTEEDBIT>>>
<IN-YOUR-PACKAGE "secret catacombs map">
<CRLF>)>>
<GLOBAL CATACOMBS-OPEN <>>
<ROUTINE CATACOMBS-ENTER-F ()
<COND (,CATACOMBS-OPEN
<QUEUE I-BEETLES 6>
<QUEUE I-CRABS 10>
<QUEUE I-GATOR 12>
<TELL "As you leave, ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<PERFORM ,V?THANK ,SULTANS-WIFE>
<CRLF>)
(T
<TELL D ,SULTANS-WIFE>
<COND (,MALE
<TELL
" throws herself into your arms. Her ample bosom presses against your chest as
she whispers into your ear, \"Please, oh, please be careful down there!\" Sh">)
(T
<TELL
" gathers you into his powerful arms. Nibbling tenderly on your neck, he
whispers, \"Be wary -- the catacombs are dangerous.\" H">)>
<TELL
"e kisses you longingly, but eventually you descend, reluctantly,
into the gloom of the catacombs" ,ELLIPSIS>)>
,CATACOMBS)
(T
<TELL ,CANT-GO>
<RFALSE>)>>
<ROOM CATACOMBS
(LOC ROOMS)
(DESC "Catacombs")
(NORTH PER CATACOMBS-MOVEMENT-F)
(NE PER CATACOMBS-MOVEMENT-F)
(EAST PER CATACOMBS-MOVEMENT-F)
(SE PER CATACOMBS-MOVEMENT-F)
(SOUTH PER CATACOMBS-MOVEMENT-F)
(SW PER CATACOMBS-MOVEMENT-F)
(WEST PER CATACOMBS-MOVEMENT-F)
(NW PER CATACOMBS-MOVEMENT-F)
(UP PER CATACOMBS-MOVEMENT-F)
(DOWN PER CATACOMBS-MOVEMENT-F)
(GLOBAL WATER)
(FLAGS INDOORSBIT)
(ACTION CATACOMBS-F)>
<ROUTINE CATACOMBS-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You're at a junction within an ancient, crumbling catacomb. Your ">
<COND (<AND <ULTIMATELY-IN? ,TORCH>
<FSET? ,TORCH ,ONBIT>>
<TELL "torch">)>
<TELL
"light pierces the gloom for only a few feet in each direction. "
,CATACOMBS-WATER-DESC>)
(<AND <EQUAL? .RARG ,M-END>
,SIDEKICK-EATEN>
<MOVE ,SIDEKICK ,HERE>
<SETG SIDEKICK-EATEN <>>
<TELL
" \"Yo!\" says " D ,SIDEKICK ", tapping your shoulder. \"Looked like my
number was up that time! Would've been, if those dimension-hopping midgets
hadn't come through at the right moment. Good thing the tiger cage leads
to the catacombs, eh?\" ">
<HE-SHE T>
<TELL " brushes a stray patch of fur off ">
<HIS-HER>
<TELL " shoulder." CR>)>>
<ROUTINE CATACOMBS-MOVEMENT-F ("AUX" DIR-OFFSET TABLE-VALUE)
<COND (<NOT ,LIT>
<JIGS-UP
"You stumble into the dark, hit a wall, knock yourself unconscious, fall
into a foot of water, drown, and are devoured by Martian beetles.">)>
<SET DIR-OFFSET <COND (<PRSO? ,P?NORTH> 0)
(<PRSO? ,P?NE> 1)
(<PRSO? ,P?EAST> 2)
(<PRSO? ,P?SE> 3)
(<PRSO? ,P?SOUTH> 4)
(<PRSO? ,P?SW> 5)
(<PRSO? ,P?WEST> 6)
(<PRSO? ,P?NW> 7)
(<PRSO? ,P?UP> 8)
(T 9)>>
<SET TABLE-VALUE
<GET ,CATACOMBS-TABLE <+ <* <- ,CATACOMBS-LOC 1> 10> .DIR-OFFSET>>>
<TELL "You wade into the gloom ... and find ">
<COND (<EQUAL? .TABLE-VALUE 0>
<COND (<PRSO? ,P?UP ,P?DOWN>
<TELL "a severe paucity of passages leading ">
<COND (<PRSO? ,P?UP>
<TELL "up">)
(T
<TELL "down">)>)
(T
<TELL "yourself face to face with a blank wall">)>
<TELL ,PERIOD-CR>
<RFALSE>)
(T
<TELL "a ">
<COND (<PRSO? ,P?UP ,P?DOWN>
<TELL "hidden passage leading ">
<COND (<PRSO? ,P?UP>
<TELL "up">)
(T
<TELL "down">)>
<TELL "wards.">)
(T
<TELL "dark and winding tunnel.">)>
<COND (<EQUAL? .TABLE-VALUE 99>
<TELL
" Unfortunately, you soon come to a point where the tunnel has collapsed,
hopelessly blocking your way." CR>
<RFALSE>)
(<EQUAL? .TABLE-VALUE 80> ;"back up to harem"
<TELL " Unfortunately, it's too steep and slippery." CR>
<RFALSE>)
(T
<CRLF> <CRLF>
<COND (<EQUAL? .TABLE-VALUE 40>
<RETURN ,FORGOTTEN-STOREHOUSE>)
(<EQUAL? .TABLE-VALUE 50>
<RETURN ,WELL-BOTTOM>)
(<EQUAL? .TABLE-VALUE 60>
<RETURN ,LADDER-ROOM>)
(<EQUAL? .TABLE-VALUE 70>
<RETURN ,BURIAL-CHAMBER>)
(T
<SET CATACOMBS-LOC .TABLE-VALUE>
<DESCRIBE-ROOM>
<COND (<IN? ,SIDEKICK ,HERE>
<SIDEKICK-FOLLOWS-YOU>)>
;"next kludge keeps V-WALK from doing an RFATAL"
<RETURN ,ROOMS>)>)>)>>
<GLOBAL CATACOMBS-LOC 1>
<CONSTANT CATACOMBS-TABLE
<TABLE ;"99 = dead end"
;N ;NE ;E ;SE ;S ;SW ;W ;NW ;U ;D
;01 0 0 99 0 0 99 0 2 80 0 ;"up to harem"
;02 3 0 0 3 0 1 0 0 0 0
;03 0 4 0 0 2 0 2 0 0 0
;04 3 0 5 0 0 0 99 0 0 0
;05 0 6 4 99 0 0 0 0 0 0
;06 0 7 0 5 99 0 0 0 0 0
;07 99 6 0 8 0 0 0 0 0 0
;08 0 0 0 0 7 0 0 99 0 9
;09 0 0 0 0 0 10 0 11 8 0
;10 0 9 0 10 0 0 10 0 0 0
;N ;NE ;E ;SE ;S ;SW ;W ;NW ;U ;D
;11 0 12 0 0 0 9 99 0 0 0
;12 13 0 0 0 0 11 99 0 0 0
;13 0 12 0 0 14 0 99 0 0 0
;14 0 15 99 0 0 0 13 0 0 0
;15 0 16 0 14 0 0 0 0 17 0
;16 15 0 16 0 0 16 0 0 0 0
;17 0 0 0 0 18 0 0 40 0 15 ;"storehouse"
;18 0 99 0 19 0 0 0 17 0 0
;19 0 0 18 22 20 0 0 0 0 0
;20 21 21 0 0 19 0 0 0 0 0
;N ;NE ;E ;SE ;S ;SW ;W ;NW ;U ;D
;21 0 20 0 50 0 0 0 20 0 0 ;"wellbottom"
;22 0 0 19 0 0 0 0 50 0 23 ;"wellbottom"
;23 0 25 24 0 0 0 0 0 22 0
;24 25 0 0 0 0 0 23 99 0 0
;25 0 0 0 23 24 0 26 0 0 0
;26 60 25 27 0 0 0 0 0 0 0 ;"ladderoom"
;27 0 0 0 0 0 99 28 26 0 0
;28 0 0 27 0 29 29 0 0 0 0
;29 0 28 0 0 28 70 0 0 0 0 ;"burial">>
<ROOM FORGOTTEN-STOREHOUSE
(LOC ROOMS)
(DESC "Forgotten Storehouse")
(LDESC
"No living creature can even guess how long this storehouse has sat amidst
the catacombs, undisturbed by man or by time, untouched by wars and weather,
a silent witness to the passing eons, the rise and fall of empires, the
births and deaths of countless billions, its only visitor the dark waters
of a Martian canal.")
(NW TO CATACOMBS)
(OUT TO CATACOMBS)
(FLAGS INDOORSBIT)
(GLOBAL WATER)>
<OBJECT PHONE-BOOK
(LOC FORGOTTEN-STOREHOUSE)
(DESC "Cleveland phone book")
(FDESC "Sitting in one corner is a Cleveland telephone directory.")
(SYNONYM BOOK DIRECTORY PHONEBOOK)
(ADJECTIVE CLEVELAND PHONE TELEPHONE)
(FLAGS TAKEBIT BURNBIT)
(ACTION PHONE-BOOK-F)>
<ROUTINE PHONE-BOOK-F ()
<COND (<VERB? READ LOOK-INSIDE OPEN>
<TELL
"How useful. Now you know how many Smiths live in Cleveland." CR>)
(<VERB? CLOSE>
<TELL "It is." CR>)
(<AND <VERB? TAKE>
<NOT <FSET? ,PHONE-BOOK ,TOUCHBIT>>>
<FSET ,PHONE-BOOK ,TOUCHBIT>
<INCREMENT-SCORE 13 26 T>
<RFALSE>)>>
<ROOM WELL-BOTTOM
(LOC ROOMS)
(DESC "Well Bottom")
(LDESC
"Damp walls of brick rise to a point of light far above. A black circle
is visible just below the surface of the water.")
(EAST PER WELL-BOTTOM-EXIT-F)
(SE PER WELL-BOTTOM-EXIT-F)
(SW PER WELL-BOTTOM-LOOP-F)
(NW PER WELL-BOTTOM-LOOP-F)
(UP SORRY "The well has no handholds.")
(GLOBAL HOLE WATER LIGHT WELL-OBJECT)
(HOLE-DESTINATION BARGE)
(FLAGS ONBIT INDOORSBIT)
;(THINGS <PSEUDO (LARGE WELL WELL-F)
(<> LIGHT UNIMPORTANT-THING-F)>)>
<ROUTINE WELL-BOTTOM-EXIT-F ()
<COND (<PRSO? ,P?EAST>
<SETG CATACOMBS-LOC 21>)
(T
<SETG CATACOMBS-LOC 22>)>
,CATACOMBS>
<ROUTINE WELL-BOTTOM-LOOP-F ()
<DESCRIBE-ROOM>
<COND (<IN? ,SIDEKICK ,HERE>
<NORMAL-SIDEKICK-FOLLOW>)>
<RFALSE>>
<ROOM LADDER-ROOM
(LOC ROOMS)
(DESC "Ladder Room")
(LDESC
"This spot is much like the rest of the catacombs, except that a ladder
leads up into the darkness.")
(NW TO CATACOMBS)
(OUT TO CATACOMBS)
(UP PER LADDER-ROOM-EXIT-F)
(FLAGS INDOORSBIT)
(GLOBAL WATER)
;(THINGS <PSEUDO (<> LADDER LADDER-F)>)>
<OBJECT LADDER
(LOC LADDER-ROOM)
(DESC "ladder")
(SYNONYM LADDER)
(FLAGS NDESCBIT)
(ACTION LADDER-F)>
<ROUTINE LADDER-ROOM-EXIT-F ()
<TELL
"You climb for a seemingly endless time, with the ladder becoming increasingly
rickety. Suddenly a rung snaps, and you tumble into the darkness! You bounce
painfully into a slanted ventilation shaft, slide through a wooden grating,
and land amidst thousands of silk ">
<COND (,MALE
<TELL "brassieres">)
(T
<TELL "jockstraps">)>
<TELL ,PERIOD-CR CR>
,LAUNDRY-ROOM>
<ROUTINE LADDER-F ()
<COND (<VERB? CLIMB CLIMB-UP>
<DO-WALK ,P?UP>)>>
<ROOM BURIAL-CHAMBER
(LOC ROOMS)
(DESC "Burial Chamber")
(LDESC
"Generations of Sultans and Sultanesses are entombed here, along with their
vast wealth, their favorite servants, and some form of transportation to the
next world. For example, one Sultan lies amidst mountains of rubies, surrounded
by a fleet of dirigibles.")
(NORTH TO CATACOMBS)
(OUT TO CATACOMBS)
(FLAGS INDOORSBIT)
(GLOBAL WATER)
;(THINGS <PSEUDO (<> RUBY UNIMPORTANT-THING-F)
(<> RUBIES UNIMPORTANT-THING-F)
(<> DIRIGIBLE UNIMPORTANT-THING-F)>)>
<OBJECT RUBIES
(LOC BURIAL-CHAMBER)
(DESC "ruby")
(SYNONYM RUBY RUBIES)
(FLAGS NDESCBIT)
(ACTION UNIMPORTANT-THING-F)>
<OBJECT DIRIGIBLE
(LOC BURIAL-CHAMBER)
(DESC "dirigible")
(SYNONYM DIRIGIBLE)
(FLAGS NDESCBIT)
(ACTION UNIMPORTANT-THING-F)>
<OBJECT RAFT
(LOC BURIAL-CHAMBER)
(SDESC "raft")
(NO-T-DESC "raf")
(DESCFCN RAFT-F)
(SYNONYM RAFT RAF LIFERAFT)
(ADJECTIVE DEFLATED SIMPLE RUBBER LIFE)
(CAPACITY 100)
(SIZE 60)
(FLAGS TAKEBIT VEHBIT INBIT CONTBIT SEARCHBIT OPENBIT)
(ACTION RAFT-F)>
<GLOBAL RAFT-HELD <>>
<ROUTINE RAFT-F ("OPTIONAL" (OARG <>) "AUX" (NUM 0))
<COND (.OARG
<COND (<NOT <FSET? ,RAFT ,TOUCHBIT>>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL
" On the other hand, another Sultan had a considerably more modest
vision of the afterlife, bringing only a simple rubber life raft.">)
(,RAFT-HELD
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL
" There is a raft here, which you're keeping a hand on.">)
(<EQUAL? ,HERE ,CANAL>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL " A raft is floating nearby.">)
(T
<RFALSE>)>)
(<AND <EQUAL? ,HERE ,CANAL>
<IN? ,PROTAGONIST ,BARGE>
<IN? ,RAFT ,CANAL>
<NOT <EQUAL? ,RAFT-LOC-NUM ,BARGE-LOC-NUM>>>
<CANT-SEE ,RAFT>)
(<FSET? ,RAFT ,UNTEEDBIT>
<RFALSE>)
(<VERB? SINK>
<COND (<OR ,RAFT-HELD
<AND <EQUAL? ,HERE ,CANAL>
<IN? ,PROTAGONIST ,RAFT>>>
<PERFORM ,V?DEFLATE ,RAFT>
<RTRUE>)
(T
<TELL "It's not even in water!" CR>)>)
(<AND <VERB? PUT>
<IN-CATACOMBS>
<PRSI? ,WATER>>
<PERFORM ,V?DROP ,RAFT>
<RTRUE>)
(<AND <VERB? DROP THROW>
<PRSO? ,RAFT>
<IN-CATACOMBS>>
<REMOVE ,RAFT>
<TELL
"The raft floats into the darkness. Oh, well, easy come, easy go." CR>)
(<AND <VERB? DROP>
,RAFT-HELD>
<SETG RAFT-HELD <>>
<MOVE ,RAFT ,CANAL>
<SET-RAFT-LOC>
<QUEUE I-CANAL -1>
<TELL "The raft ">
<COND (<EQUAL? ,HERE ,CANAL>
<COND (,BARGE-UNDER-POWER
<TELL "is left behind in the wake of">)
(T
<SETG RAFT-WAIT ,BARGE-WAIT> ;"keep 'em in phase"
<TELL "floats along beside">)>
<TELL " the barge." CR>)
(T
<TELL "is swept away." CR>)>)
(<AND <VERB? TAKE>
<PRSO? ,RAFT>
<NOT <FSET? ,RAFT ,TOUCHBIT>>>
<FSET ,RAFT ,TOUCHBIT>
<INCREMENT-SCORE 8 3>
<RFALSE>)
(<AND <VERB? TAKE>
<OR <IN? ,YOUR-BODY ,RAFT>
<IN? ,SIDEKICKS-BODY ,RAFT>>>
;"this is possible if you get in raft in Lab and then
flip the switch again, then TAKE RAFT as gorilla"
<TELL "It's too heavy." CR>)
(<VERB? BOARD>
<COND (<IN? ,RAFT ,BARGE>
<TELL
"Hrumph! There's no reason to board the raft inside the barge! ">
<PERFORM ,V?SINK ,BARGE>
<RTRUE>)
(<IN? ,RAFT ,ODD-MACHINE>
<DO-FIRST "remove it from" ,ODD-MACHINE>)
(<OR <ULTIMATELY-IN? ,RAFT ,MALE-GORILLA>
<ULTIMATELY-IN? ,RAFT ,FEMALE-GORILLA>>
<NOT-ON-GROUND ,RAFT>)
(<AND <OR ,RAFT-HELD
<IN? ,RAFT ,CANAL>>
<NOT <IN? ,PROTAGONIST ,RAFT>>>
<QUEUE I-CANAL -1>
<SET-RAFT-LOC>
<COND (<EQUAL? ,HERE ,MY-KIND-OF-DOCK>
<SETG NEARER-DOCK ,MY-KIND-OF-DOCK>)
(T
<SETG NEARER-DOCK ,ABANDONED-DOCK>)>
<COND (<AND <G? ,BARGE-LOC-NUM ,RAFT-LOC-NUM>
<IN? ,BARGE ,CANAL>>
<SETG BARGE-LOC-NUM 36>
<MOVE ,BARGE ,ICY-DOCK>)>
<TELL "As you">
<AND-SIDEKICK ,RAFT>
<TELL " board the raft, ">
<COND (<EQUAL? ,HERE ,CANAL>
<TELL "it begins drifting away from the barge">
<COND (,BARGE-UNDER-POWER
<BARGE-FORGES-AHEAD>)>)
(T
<TELL
"the current sweeps it away from the dock">)>
<TELL ,PERIOD-CR>
<COND (<AND ,BARGE-WAIT
<EQUAL? ,RAFT-LOC-NUM ,BARGE-LOC-NUM>>
<SETG RAFT-WAIT T>) ;"so they'll drift together"
(T
<SETG RAFT-WAIT <>>)>
<SETG RAFT-HELD <>>
<MOVE ,RAFT ,CANAL>
<COND (<EQUAL? ,HERE ,CANAL> ;"not changing rooms"
<MOVE ,PROTAGONIST ,RAFT>
<SETG OHERE <>>)
(T ;"changing rooms, so new room desc is wanted"
<CRLF>
<GOTO ,RAFT>)>)>)
(<VERB? STAND-ON> ;"for JUMP ONTO RAFT"
<PERFORM ,V?BOARD ,RAFT>
<RTRUE>)
(<VERB? DEFLATE MUNG KILL>
<COND (<FSET? ,RAFT ,MUNGBIT>
<TELL ,ALREADY-IS>)
(T
<TELL "\"Phssss.\"">
<COND (<OR ,RAFT-HELD
<IN? ,RAFT ,CANAL>>
<TELL " The raft sinks">
<COND (<IN? ,PROTAGONIST ,RAFT>
<JIGS-UP ", and you with it.">)
(T
<SETG RAFT-HELD <>>
<REMOVE ,RAFT>
<TELL ,PERIOD-CR>)>)
(T
<FSET ,RAFT ,MUNGBIT>
<PUTP ,RAFT ,P?SDESC "deflated raft">
<CRLF>)>)>)
(<VERB? INFLATE>
<COND (<FSET? ,RAFT ,MUNGBIT>
<TELL "Without a pump? Forget it." CR>)
(T
<TELL ,ALREADY-IS>)>)
(<AND <VERB? SHAKE>
<EQUAL? ,HERE ,CANAL>
<IN? ,PROTAGONIST ,RAFT>>
<SHAKE-BOAT>)
(<AND <VERB? PUSH-DIR>
<PRSI? ,INTDIR>>
<COND (<AND <IN? ,PROTAGONIST ,RAFT>
<NOT <EQUAL? ,P-PRSA-WORD ,W?MOVE>>>
<TELL "You're in it!" CR>)
(<IN? ,RAFT ,CANAL>
<TELL ,NO-STEERING>)
(T
<DO-WALK ,P-DIRECTION>
<MOVE ,RAFT ,HERE>)>)
(<AND <VERB? SET>
<IN? ,RAFT ,CANAL>>
<TELL ,NO-STEERING>)
(<VERB? LAND>
<TELL "Try grabbing a dock." CR>)>>
<ROUTINE I-BEETLES ()
<COND (<NOT <IN-CATACOMBS>>
<RFALSE>)>
<QUEUE I-BEETLES 6>
<COND (<IN? ,PROTAGONIST ,HERE>
<SETG CATACOMBS-LOC <RANDOM ,CATACOMBS-LOC>>
<COND (<IN? ,SIDEKICK ,HERE>
<MOVE ,SIDEKICK ,CATACOMBS>)>
<MOVE ,PROTAGONIST ,CATACOMBS>
<SETG OHERE <>>
<SETG HERE ,CATACOMBS> ;"in case you're in Well Bottom, etc."
<FSET ,CATACOMBS ,MUNGBIT> ;"for V-DIAGNOSE"
<OPEN-EYES-AND-REMOVE-HANDS>
<TELL
" Suddenly the water explodes with life! A swarm of the nastiest beetles
this side of Pluto starts munching your flesh. You escape by running blindly
through the catacombs, completely losing track of your location." CR>)
(T
<HARMLESS-SNAP "beetle">)>>
<ROUTINE I-CRABS ("AUX" OBJ)
<COND (<NOT <IN-CATACOMBS>>
<RFALSE>)>
<QUEUE I-CRABS 10>
<COND (<IN? ,PROTAGONIST ,HERE>
<OPEN-EYES-AND-REMOVE-HANDS>
<FSET ,CATACOMBS ,MUNGBIT> ;"for V-DIAGNOSE"
<TELL
" You feel an intense pain, like a tuft of hair being yanked out -- except
that it's coming from your feet, and in about a hundred places. As you flail
at the pack of Martian sand crabs, the splashing startles them away">
<COND (<AND <SET OBJ <FIRST? ,PROTAGONIST>>
<NOT <EQUAL? .OBJ ,GARMENT ,COMIC-BOOK>>>
<COND (<AND <EQUAL? .OBJ ,TORCH>
;"make torch last object lost"
<NEXT? ,TORCH>>
<SET OBJ <NEXT? ,TORCH>>)>
<TELL
", but during the struggle you seem to have lost your " D .OBJ ,PERIOD-CR>
<REMOVE .OBJ>
<NOW-DARK?>)
(T
<TELL ,PERIOD-CR>)>)
(T
<HARMLESS-SNAP "crab">)>>
<ROUTINE I-GATOR ()
<COND (<NOT <IN-CATACOMBS>>
<RFALSE>)>
<COND (<IN? ,PROTAGONIST ,HERE>
<JIGS-UP
" A Martian alligator, large enough to blend in inconspicuously with
Great Britain's mercantile fleet, swims by and gulps a huge bunch of
canal water -- the bunch that happens to include you, by the way.">)
(T
<QUEUE I-GATOR 12>
<HARMLESS-SNAP "gator">)>>
<ROUTINE HARMLESS-SNAP (STRING)
<TELL
" The calm water is suddenly shattered by the jaws of a huge Martian "
.STRING " snapping harmlessly toward you. Good thing you were in the
raft." CR>>
<ROOM MARTIAN-DESSERT
(LOC ROOMS)
(DESC "Martian Dessert")
(LDESC
"No, not a typo. \"Dessert\" refers to the fifty foot Martian Cream Pie here.
A mirage, of course. People hopelessly lost in the desert often see strange
mirages, such as cream pies, lakes, or trails to the northwest and southeast.")
(NW PER MARTIAN-DESSERT-EXIT-F)
(SE PER MARTIAN-DESSERT-EXIT-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL DUNES)
;(THINGS <PSEUDO (<> MIRAGE UNIMPORTANT-THING-F)
;(<> DESSERT UNIMPORTANT-THING-F)
(CREAM PIE UNIMPORTANT-THING-F)>)>
<OBJECT DESSERT-OBJECT
(LOC MARTIAN-DESSERT)
(DESC "Martian Cream Pie")
(SYNONYM PIE DESSERT MIRAGE)
(ADJECTIVE MARTIAN CREAM)
(FLAGS NDESCBIT)
(ACTION UNIMPORTANT-THING-F)>
<ROUTINE MARTIAN-DESSERT-EXIT-F ()
<COND (<NOT <FSET? ,MARTIAN-DESSERT ,MUNGBIT>>
<FSET ,MARTIAN-DESSERT ,MUNGBIT>
<TELL "I guess the paths aren't a mirage..." CR CR>)>
<COND (<PRSO? ,P?NW>
,RUINED-CASTLE-2)
(T
,OASIS)>>
<ROOM WATTZ-UPP-DOCK
(LOC ROOMS)
(DESC "Wattz-Upp Dock")
(LDESC
"This tiny dock is the maritime entrance to the once-famous Wattz-Upp section
of Mars. East of the dock is a wide, north-south canal; you can hear a gurgling
sound to the west. There's a chill in the air; you might be approaching the
south polar cap.")
(NE SORRY "If you want to jump in the canal, say so.")
(EAST SORRY "If you want to jump in the canal, say so.")
(SE SORRY "If you want to jump in the canal, say so.")
(WEST TO OASIS)
(FLAGS RLANDBIT ONBIT)
(GLOBAL CANAL-OBJECT DOCK-OBJECT WATER SIGN BUOY)
;(THINGS <PSEUDO (RED BUOY BUOY-F)
(WARNING BUOY BUOY-F)>)>
<ROOM OASIS
(LOC ROOMS)
(DESC "Oasis")
(EAST PER WATTZ-UPP-DOCK-ENTER-F)
(WEST PER MARTIAN-DESSERT-ENTER-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL HOLE WATER DUNES)
(HOLE-DESTINATION CLEVELAND)
(ACTION OASIS-F)>
<ROUTINE WATTZ-UPP-DOCK-ENTER-F ()
<PUTP ,HOLE ,P?SDESC "black circle">
,WATTZ-UPP-DOCK>
<ROUTINE MARTIAN-DESSERT-ENTER-F ()
<PUTP ,HOLE ,P?SDESC "black circle">
,MARTIAN-DESSERT>
;<ROUTINE EASTERN-EDGE-OF-DESERT-ENTER-F ()
<PUTP ,HOLE ,P?SDESC "black circle">
,EASTERN-EDGE-OF-DESERT>
<GLOBAL CIRCLE-BLACK T>
<GLOBAL CIRCLE-FADED <>>
<ROUTINE CIRCLE-ISNT-BLACK ()
<COND (<AND <NOT ,CIRCLE-BLACK>
<EQUAL? ,HERE ,OASIS>>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE OASIS-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT ,CIRCLE-BLACK>>
<PUTP ,HOLE ,P?SDESC "white circle">)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a remarkable sight on arid Mars -- subsurface water bubbling up in
a fountain, flowing around" A ,HOLE ", and soaking into the thirsty sand. A
path curves east around the " 'DUNES>
<UNCHARTABLE-DESERT "west">)
(<EQUAL? .RARG ,M-END>
<COND (,SIDEKICK-DROWNED
<MOVE ,SIDEKICK ,HERE>
<SETG SIDEKICK-DROWNED <>>
<TELL
" Like a wet watermelon seed being squirted from between two fingers, "
D ,SIDEKICK " is ejected from the fountain and lands in a dripping heap at
your feet. \"Good thing I'm so good at holding my breath,\" ">
<HE-SHE>
<TELL " says." CR>)>
<COND (<NOT ,CIRCLE-FADED>
<SETG CIRCLE-FADED T>
<SETG CIRCLE-BLACK <>>
<PUTP ,HOLE ,P?SDESC "white circle">
<TELL
" Inexplicably, the circle fades before your very eyes, slowly going from
black to white." CR>)>)>>
<OBJECT RABBIT
(LOC OASIS)
(DESC "rabbit")
(FDESC
"A little bunny rabbit is sipping at the waters of the oasis.")
(SYNONYM RABBIT BUNNY)
(ADJECTIVE BUNNY SMALL)
(FLAGS TAKEBIT)>
<ROOM ICY-DOCK
(LOC ROOMS)
(DESC "Icy Dock")
(LDESC
"This is the southern terminus of the canal. Far below this dock, teleportation
machinery transports massive quantities of water back to the head of the canal
in the equatorial region of Mars. It's quite chilly, and the dock is covered
with a sheet of ice. To the south, as far as you can see, is the bleak
whiteness of the southern ice cap.")
(NORTH SORRY "If you want to jump in the canal, say so.")
(NE SORRY "If you want to jump in the canal, say so.")
(NW SORRY "If you want to jump in the canal, say so.")
(SOUTH TO TUNDRA)
(FLAGS RLANDBIT ONBIT)
(GLOBAL WATER DOCK-OBJECT CANAL-OBJECT)
(ACTION ICY-DOCK-F)>
<ROUTINE ICY-DOCK-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,ICY-DOCK ,TOUCHBIT>>
<NOT <RUNNING? ,I-ION-DEATH>>>
<INCREMENT-SCORE 4 14>)
(<AND <EQUAL? .RARG ,M-END>
<IN? ,SIDEKICK ,HERE>>
<SETG FOLLOW-FLAG 3>
<QUEUE I-FOLLOW 2>
<REMOVE ,SIDEKICK>
<SETG SIDEKICK-DROWNED T>
<TELL " With a whoop of surprise, " D ,SIDEKICK " loses ">
<HIS-HER>
<TELL
" footing on the ice, skids right into the canal, and is immediately dragged
under by the strong current produced by the underwater teleporters. You search
frantically for any sign of ">
<HIM-HER>
<TELL
", but after several agonizingly long minutes you abandon all hope. As you
gaze across " D ,SIDEKICK "'s watery grave">
<MEMORIAM>)>>
<ROOM TUNDRA
(LOC ROOMS)
(DESC "Edge of Polar Ice Cap")
(NORTH TO ICY-DOCK)
(SOUTH TO ALLUSION-ROOM)
(SE TO PENGUIN-PARK)
(FLAGS RLANDBIT ONBIT)
(ACTION TUNDRA-F)>
<ROUTINE TUNDRA-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This snowy plain is barren of all signs of life. Drifts block travel
in all directions but north, south and southeast. It's pretty cold, but
nothing a tough g">
<COND (,MALE
<TELL "uy">)
(T
<TELL "al">)>
<TELL " like yourself can't stand.">)>>
<ROOM ALLUSION-ROOM
(LOC ROOMS)
(DESC "Allusion Room")
(LDESC
"A solitary black circle is the only break in an vaste expanse of whiteness
extending to the horizon. Like a dark speck in a sea of white, or a huge piece
of typing paper with but a single period typed upon it, this black circle seems
to have been placed here entirely as an opportunity for some silly literary
allusions. To avoid the danger of accidentally typing an \"L\" and having to
read them again, follow the faint trails to the north or east.")
(NORTH TO TUNDRA)
(NE SORRY "You'd only get lost in the snow and die.")
(EAST TO PENGUIN-PARK)
(SE SORRY "You'd only get lost in the snow and die.")
(SOUTH SORRY "You'd only get lost in the snow and die.")
(SW SORRY "You'd only get lost in the snow and die.")
(WEST SORRY "You'd only get lost in the snow and die.")
(NW SORRY "You'd only get lost in the snow and die.")
(FLAGS RLANDBIT ONBIT)
(GLOBAL HOLE)
(HOLE-DESTINATION WATTZ-UPP-DOCK)>
<ROOM PENGUIN-PARK
(LOC ROOMS)
(DESC "Penguin Park")
(WEST TO ALLUSION-ROOM)
(NW TO TUNDRA)
(SE TO GYPSY-CAMP IF PENGUINS-PARTED ELSE
"There's a wall of penguins in the way.")
(FLAGS RLANDBIT ONBIT)
(GLOBAL SIGN)
(ACTION PENGUIN-PARK-F)>
<ROUTINE PENGUIN-PARK-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"Even on Mars, one could hardly expect a polar visit without seeing penguins.
Well, here they are! A whole waddling mass of them, ">
<COND (,PENGUINS-PARTED
<TELL "standing politely on either side of">)
(T
<TELL "a pack so dense they completely block">)>
<TELL
" the path to the southeast. Other paths lead west and northwest.">
<COND (<NOT ,PENGUINS-PARTED>
<TELL CR
" One penguin teasingly waves a sign in your direction, much like
a matador waving his cape toward a bull.">)>
<RTRUE>)>>
<GLOBAL PENGUINS-PARTED <>>
<OBJECT PENGUINS
(LOC PENGUIN-PARK)
(DESC "mass of penguins")
(SYNONYM PENGUIN MASS BIRD BIRDS)
(ADJECTIVE WADDLING)
(FLAGS NDESCBIT)
(ACTION PENGUINS-F)>
<ROUTINE PENGUINS-F ()
<COND (<VERB? GIVE>
<COND (<PRSO? ,TEN-MARSMID-COIN>
<SETG PENGUINS-PARTED T>
<REMOVE ,TEN-MARSMID-COIN>
<MOVE ,ONE-MARSMID-COIN ,PROTAGONIST>
<TELL
"The penguins, satisfied by your donation to the PRF, part ranks for you to
pass. The going rate for donations to the fund must be nine marsmids, since
one of the penguins hands you a one marsmid coin." CR>)
(<PRSO? ,ONE-MARSMID-COIN>
<TELL
"Nine marsmids is the minimum contribution to the PRF." CR>)>)
(<AND <VERB? SHOW>
<PRSO? ,TEN-MARSMID-COIN>>
<TELL "The penguins wiggle eagerly." CR>)>>
<ROOM GYPSY-CAMP
(LOC ROOMS)
(DESC "Gypsy Camp")
(LDESC
"This is the campsite of a family of nomadic robotic gypsies. A ragged tent is
pitched on the north side of the camp, and trails lead northwest and south.")
(SOUTH TO SOUTH-POLE)
(NORTH TO TENT)
(IN TO TENT)
(NW TO PENGUIN-PARK)
(FLAGS RLANDBIT ONBIT)
(ACTION GYPSY-CAMP-F)
;(THINGS <PSEUDO (RAGGED TENT OUTSIDE-TENT-F)
(TATTERED TENT OUTSIDE-TENT-F)>)>
<OBJECT OUTSIDE-TENT
(LOC GYPSY-CAMP)
(DESC "ragged tent")
(SYNONYM TENT)
(ADJECTIVE RAGGED TATTERED)
(FLAGS NDESCBIT)
(ACTION OUTSIDE-TENT-F)>
<GLOBAL PARENTS-KILLED <>>
<ROUTINE GYPSY-CAMP-F (RARG)
<COND (<EQUAL? .RARG ,M-END>
<COND (<NOT ,PARENTS-KILLED>
<SETG PARENTS-KILLED T>
<COND (<EQUAL? ,VERBOSITY 0>
<RTRUE>)>
<TELL
" A male and a female robot emerge from the tent, waving in a gesture
of gypsyish greeting. \"Hello, weary traveller">
<COND (<IN? ,SIDEKICK ,HERE>
<TELL "s">)>
<TELL
"! We are but poor gypsies, but we invite you to spend the night in our humble
tent and share our simple but delicious oil and silicon stew.\" Suddenly, in
an event so shocking that even a hardened space opera hero">
<COND (<NOT ,MALE>
<TELL "ine">)>
<TELL
" like yourself is stunned beyond belief, a meteorite shrieks through the
atmosphere and completely obliterates the two robots." CR>)>
<COND (<AND <IN? ,BABY ,TENT>
<NOT <IN? ,BLANKET ,BABY>>>
<TELL
" You hear the sound of high-pitched crying, slightly muffled, coming from
inside the tent." CR>)>)>>
<ROUTINE OUTSIDE-TENT-F ()
<COND (<VERB? ENTER BOARD WALK-TO>
<DO-WALK ,P?NORTH>)
(<VERB? EXIT LEAVE DISEMBARK>
<TELL ,LOOK-AROUND>)
(<VERB? LOOK-INSIDE>
<TELL ,CANT-FROM-HERE>)>>
<ROUTINE INSIDE-TENT-F ()
<COND (<VERB? EXIT LEAVE DISEMBARK>
<DO-WALK ,P?SOUTH>)
(<VERB? ENTER BOARD WALK-TO>
<TELL ,LOOK-AROUND>)
(<VERB? EXAMINE LOOK-INSIDE>
<V-LOOK>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)>>
<ROOM TENT
(LOC ROOMS)
(DESC "Inside the Tent")
(LDESC
"This tattered tent, home to the deceased robots, provides meager protection
against the cold polar winds. You can exit to the south.")
(SOUTH TO GYPSY-CAMP)
(OUT TO GYPSY-CAMP)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(ACTION TENT-F)
;(THINGS <PSEUDO (RAGGED TENT INSIDE-TENT-F)
(TATTERED TENT INSIDE-TENT-F)>)>
<OBJECT INSIDE-TENT
(LOC TENT)
(DESC "ragged tent")
(SYNONYM TENT)
(ADJECTIVE RAGGED TATTERED)
(FLAGS NDESCBIT)
(ACTION INSIDE-TENT-F)>
<ROUTINE TENT-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<QUEUE I-CRY -1>)>>
<ROUTINE I-CRY ()
<COND (<IN? ,BLANKET ,BABY>
<DEQUEUE I-CRY>
<RFALSE>)
(<NOT <VISIBLE? ,BABY>>
<RFALSE>)
(T
<TELL " The baby continues to wail at the top of its lungs.">
<COND (<PROB 12>
<TELL
" It's amazing that such small lungs have such a high top.">)>
<CRLF>)>>
<OBJECT BABY
(LOC TENT)
(SDESC "robot infant")
(DESCFCN BABY-F)
(SYNONYM BABY INFANT ROBOT)
(ADJECTIVE INFANT ROBOT ROBOTIC SMALL BABY)
(FLAGS TAKEBIT OPENBIT CONTBIT SEARCHBIT)
(SIZE 35)
(ACTION BABY-F)>
<ROUTINE BABY-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<FSET? ,BABY ,TOUCHBIT>
<RFALSE>)
(T
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL
" A little baby robot is shivering in the corner. It stops crying long
enough to open a tiny metal eyelid and look at you. \"">
<COND (,MALE
<TELL "Momm">)
(T
<TELL "Dadd">)>
<TELL
"y?\" it says, in a quavering, high-pitched, metallic voice.">)>)
(<VERB? TELL>
<COND (<IN? ,BLANKET ,BABY>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?KISS ,BABY>)
(T
<TELL "\"Goo goo ga ga buzz whirr click.\"" CR>)>
<STOP>)
(<OR <AND <VERB? PUT>
<PRSI? ,BLANKET>>
<AND <VERB? PUT-ON WRAP>
<PRSO? ,BLANKET>>
<AND <VERB? PUT>
<PRSI? ,BASKET>
<IN? ,BLANKET ,BASKET>>>
<COND (<FSET? ,BLANKET ,UNTEEDBIT>
<RFALSE>)
(<IN? ,BLANKET ,BABY>
<TELL ,SENILITY-STRIKES>
<RTRUE>)>
<FSET ,BABY ,TOUCHBIT>
<FSET ,BLANKET ,NDESCBIT>
<MOVE ,BLANKET ,BABY>
<COND (<PRSI? ,BASKET>
<MOVE ,BABY ,BASKET>)>
<PUTP ,BABY ,P?SDESC "baby robot wrapped in a blanket">
<DEQUEUE I-CRY>
<TELL
"The baby stops crying and, in the comfy warmth of the blanket, slips into
a calm sleep. A peaceful smile creeps over its face." CR>)
(<OR <AND <VERB? PUT>
<PRSI? ,SHEET>>
<AND <VERB? PUT-ON WRAP>
<PRSO? ,SHEET>>>
<COND (<OR <IN? ,BLANKET ,BABY>
<FSET? ,SHEET ,MUNGBIT>
<FSET? ,SHEET ,PLURALBIT>>
<WASTES>)
(T
<TELL "The sheet provides little warmth." CR>)>)
(<AND <VERB? PUT>
<PRSI? ,BASKET>
<IN? ,BASKET ,FRONT-STOOP>
<NOT <FIRST? ,BASKET>>>
<COND (<IN? ,BLANKET ,BABY>
<MOVE ,BABY ,BASKET>
<ABANDON-BABY "in the basket">)
(T
<CRYING-ALERTS-MATRON>)>)
(<AND <VERB? REMOVE>
<IN? ,BLANKET ,BABY>>
<MOVE ,BLANKET ,PROTAGONIST>
<FCLEAR ,BLANKET ,NDESCBIT>
<PUTP ,BABY ,P?SDESC "robot infant">
<QUEUE I-CRY -1>
<TELL "The baby robo" ,TWICE-AS-LOUD>
<COND (<ULTIMATELY-IN? ,BABY ,FRONT-STOOP>
<TELL " ">
<CRYING-ALERTS-MATRON>)>
<RTRUE>)
(<VERB? KISS>
<COND (<IN? ,BLANKET ,BABY>
<PERFORM ,V?ALARM ,BABY>
<RTRUE>)
(T
<TELL
"The " D ,BABY " reacts as a human baby would react if kissed by a giant
walking metal machine. In other words, i" ,TWICE-AS-LOUD>)>)
(<AND <VERB? LISTEN>
<NOT <IN? ,BLANKET ,BABY>>>
<TELL "\"Waaaa!\"" CR>)
(<VERB? SHAKE>
<COND (<IN? ,BLANKET ,BABY>
<TELL "The baby's asleep!" CR>)
(T
<TELL
"This upsets the " D ,BABY "'s equilibrium mechanism. I" ,TWICE-AS-LOUD>)>)
(<AND <VERB? ALARM>
<IN? ,BLANKET ,BABY>>
<TELL
"The baby whimpers briefly, but the warm coziness of the blanket
soon lulls it back to sleep." CR>)
(<TAKE-BABY-FROM-STOOP ,BABY>
<RTRUE>)
(<VERB? SUCKLE>
<COND (,MALE
<TELL
"You're a male, remember? You obviously have a poor mammary." CR>)
(T
<TELL
"How touching that the baby robot has stirred your maternal instinct.
Unfortunately, your mammaries won't produce #3 machine oil." CR>)>)
(<AND <VERB? PUT PUT-NEAR> ;"for PUT BABY IN FRONT OF DOOR"
<PRSI? ,ORPHANAGE-DOOR>>
<PERFORM ,V?PUT-ON ,BABY ,FRONT-STOOP>
<RTRUE>)
(<VERB? EXAMINE>
<TELL "The " D ,BABY " is ">
<COND (<IN? ,BLANKET ,BABY>
<TELL "sleep">)
(T
<TELL "cry">)>
<TELL "ing." CR>)
(<VERB? OPEN CLOSE>
<TELL ,HUH>)>>
<ROUTINE CRYING-ALERTS-MATRON ()
<TELL "The baby's crying alerts someone within the igloo. ">
<SHOO "abandon">>
<ROUTINE SHOO (STRING)
<DEQUEUE I-ORPHANAGE>
<TELL
,MATRON-DESC "appears. \"Caught you, you baby-" .STRING "ing gypsy!\"
she cries, in a voice that, in a more mountainous region, could probably
initiate an avalanche. \"Begone!\" She ">
<COND (<ULTIMATELY-IN? ,BABY ,FRONT-STOOP>
<TELL "thrusts the babe into your arms and ">)>
<COND (<IN? ,BASKET ,FRONT-STOOP>
<MOVE ,BASKET ,PROTAGONIST>)>
<COND (<ULTIMATELY-IN? ,BABY ,FRONT-STOOP>
<MOVE ,BABY ,PROTAGONIST>)>
<TELL "drives you away with blows that would fell an elephant." CR CR>
<COND (<EQUAL? ,HERE ,ORPHANAGE-FOYER>
<GOTO ,SOUTH-POLE>)
(T
<GOTO ,GYPSY-CAMP>)>>
<CONSTANT MATRON-DESC
"A matronly woman of massive proportions and rather cubical aspect ">
<ROOM SOUTH-POLE
(LOC ROOMS)
(DESC "South Pole")
(LDESC
"You are standing near the front stoop of a very large igloo. Its door is
flanked by a faded sign and a barred window. Paths lead north, north and
north.")
(NORTH TO GYPSY-CAMP)
(SOUTH SORRY "This is as far south as you can go!")
(EAST SORRY "You walk in a tight circle, returning to your starting point.")
(WEST SORRY "You walk in a tight circle, returning to your starting point.")
(IN TO ORPHANAGE-FOYER IF ORPHANAGE-DOOR IS OPEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL SIGN IGLOO ORPHANAGE-DOOR WINDOW BARS)
(ACTION SOUTH-POLE-F)
;(THINGS <PSEUDO (<> BAR WINDOW-F)
(<> BARS WINDOW-F)>)>
<OBJECT BARS
(LOC LOCAL-GLOBALS)
(DESC "barred window")
(SYNONYM BAR BARS)
(FLAGS NDESCBIT)
(ACTION WINDOW-F)>
<ROUTINE SOUTH-POLE-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
,COTTON-BALLS-SEEN
<FSET? ,COTTON-BALLS ,TRYTAKEBIT>>
<MOVE ,COTTON-BALLS ,HERE>
<FSET ,COTTON-BALLS ,NDESCBIT>)>>
<GLOBAL COTTON-BALLS-SEEN <>>
<OBJECT ORPHANAGE-DOOR
(LOC LOCAL-GLOBALS)
(DESC "igloo door")
(SYNONYM DOOR)
(ADJECTIVE IGLOO ORPHANAGE)
(FLAGS DOORBIT LOCKEDBIT VOWELBIT)
(ACTION ORPHANAGE-DOOR-F)>
<ROUTINE ORPHANAGE-DOOR-F ()
<COND (<AND <VERB? KNOCK>
<EQUAL? ,HERE ,SOUTH-POLE>>
<COND (<VISIBLE? ,BABY>
<SHOO "abandon">)
(T
<SHOO "steal">)>)>>
<OBJECT FRONT-STOOP
(LOC SOUTH-POLE)
(DESC "front stoop")
(SYNONYM STOOP DOORSTEP)
(ADJECTIVE FRONT)
(CAPACITY 150)
(FLAGS NDESCBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT)
(ACTION FRONT-STOOP-F)>
<ROUTINE FRONT-STOOP-F ()
<COND (<VERB? PUT PUT-ON PUT-NEAR>
<COND (<AND <PRSO? ,BABY>
<NOT <IN? ,BABY ,BASKET>>>
<COND (<IN? ,BLANKET ,BABY>
<COLD-CAUSES-CRYING>)>
<MOVE ,PRSO ,FRONT-STOOP>
<CRYING-ALERTS-MATRON>)
(<AND <PRSO? ,BASKET ,BABY>
<IN? ,BABY ,BASKET>>
<COND (<NOT <IN? ,BLANKET ,BABY>>
<CRYING-ALERTS-MATRON>)
(T
<MOVE ,BASKET ,FRONT-STOOP>
<ABANDON-BABY "on the stoop">)>)>)
(<VERB? BOARD ENTER STAND-ON>
<WASTES>)
(<AND <VERB? PUT>
<PRSO? ,BABY>>
<COLD-CAUSES-CRYING>
<CRYING-ALERTS-MATRON>)>>
<ROUTINE COLD-CAUSES-CRYING ()
<TELL
"As you place the baby on the cold doorstep, i" ,TWICE-AS-LOUD " ">>
<ROUTINE ABANDON-BABY (STRING)
<QUEUE I-ORPHANAGE 5>
<MOVE ,PROTAGONIST ,HERE>
<SETG OHERE <>>
<TELL
"You place the baby gently " .STRING
" and sneak behind a nearby snowdrift." CR>>
<ROUTINE I-ORPHANAGE ()
<REMOVE ,BABY>
<REMOVE ,BASKET>
<FCLEAR ,ORPHANAGE-DOOR ,LOCKEDBIT>
<COND (<EQUAL? ,HERE ,SOUTH-POLE>
<SETG FOLLOW-FLAG 15>
<QUEUE I-FOLLOW 2>
<TELL
" " ,MATRON-DESC "opens the " 'ORPHANAGE-DOOR ". She coos over the baby
for a moment then carries it inside, closing the door behind her." CR>)
(T
<RFALSE>)>>
<ROOM ORPHANAGE-FOYER
(LOC ROOMS)
(DESC "Orphanage Foyer")
(NE PER IGLOO-ENTER-F)
(NW PER IGLOO-ENTER-F)
(SOUTH TO SOUTH-POLE IF ORPHANAGE-DOOR IS OPEN)
(OUT TO SOUTH-POLE IF ORPHANAGE-DOOR IS OPEN)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL ORPHANAGE-DOOR IGLOO WINDOW BARS)
(ACTION ORPHANAGE-FOYER-F)
;(THINGS <PSEUDO (<> BAR WINDOW-F)
(<> BARS WINDOW-F)>)>
<ROUTINE ORPHANAGE-FOYER-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
;<COND (<AND <NOT <FSET? ,HERE ,TOUCHBIT>>
<NOT <EQUAL? ,VERBOSITY 0>>>
<TELL ;"punted for space reasons"
"One of the many fantastical legends that abound in the universe states that
every time someone burps, a civilization is destroyed. While this is probably
just a silly myth, it is a fact that at the moment the primary sun of the
Smaldonus system exploded, wiping out the entire Smaldoni race, Wendell B.
Diddlehump was producing a tremendously loud and embarrassing belch while
delivering a keynote address at the seventeenth annual convention of the
Cotton Ball Manufacturers of America. By an extraordinary coincidence, the
only relic of Smaldoni civilization to survive the terrible fires of that
supernova was, inexplicably," A ,COTTON-BALLS ", which knocked about the
universe a while, finally ending up here in the" ,ELLIPSIS>)>
<COND (<FSET? ,COTTON-BALLS ,TRYTAKEBIT>
<MOVE ,COTTON-BALLS ,HERE>
<FCLEAR ,COTTON-BALLS ,NDESCBIT>)>
<COND (<NOT <QUEUED? ,I-ORPHANAGE-BOOT>>
<QUEUE I-ORPHANAGE-BOOT 5>)>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"The igloo's front hall has rooms to the northeast and northwest. A barred
window is next to the ">
<OPEN-CLOSED ,ORPHANAGE-DOOR>
<TELL " door to the south.">)>>
<ROUTINE IGLOO-ENTER-F ()
<TELL "Nursery" CR>
<I-ORPHANAGE-BOOT>
<DEQUEUE I-ORPHANAGE-BOOT>
<RFALSE>>
<ROUTINE I-ORPHANAGE-BOOT ()
<COND (<EQUAL? ,HERE ,ORPHANAGE-FOYER>
<TELL " ">
<SHOO "steal">
<FCLEAR ,ORPHANAGE-DOOR ,OPENBIT>
<FSET ,ORPHANAGE-DOOR ,LOCKEDBIT>)
(<AND <EQUAL? ,HERE ,SOUTH-POLE>
<FSET? ,ORPHANAGE-DOOR ,OPENBIT>>
<TELL " The " 'ORPHANAGE-DOOR " slams shut." CR>
<FCLEAR ,ORPHANAGE-DOOR ,OPENBIT>
<FSET ,ORPHANAGE-DOOR ,LOCKEDBIT>)
(T
<FCLEAR ,ORPHANAGE-DOOR ,OPENBIT>
<FSET ,ORPHANAGE-DOOR ,LOCKEDBIT>
<RFALSE>)>>
<OBJECT COTTON-BALLS
(DESC "pair of cotton balls")
(NO-T-DESC "pair of coon balls")
(SYNONYM PAIR BALL BALLS)
(ADJECTIVE COTTON COON)
(FLAGS TAKEBIT TRYTAKEBIT NDESCBIT PLURALBIT BURNBIT)
(SIZE 2)
(ACTION COTTON-BALLS-F)>
<ROUTINE COTTON-BALLS-F ()
<COND (<AND <EQUAL? ,HERE ,SOUTH-POLE>
<FSET? ,COTTON-BALLS ,TRYTAKEBIT>
<TOUCHING? ,COTTON-BALLS>>
<CANT-REACH ,COTTON-BALLS>)
(<AND <VERB? TAKE>
<FSET? ,COTTON-BALLS ,TRYTAKEBIT>>
<INCREMENT-SCORE 16 29 T>
<FCLEAR ,COTTON-BALLS ,TRYTAKEBIT>
<RFALSE>)
(<FSET? ,COTTON-BALLS ,UNTEEDBIT>
<COND (<VERB? EXAMINE>
<TELL
"Let's just say that some poor male raccoon is speaking in a
particularly high-pitched voice." CR>)
(T
<RFALSE>)>)
(<AND <VERB? PUT PUT-ON> ;"the verb PLUG turns into PUT-ON"
<PRSI? ,EARS>>
<COND (,GONE-APE
<TELL ,DEXTERITY>)
(T
<FSET ,COTTON-BALLS ,WORNBIT>
<FSET ,EARS ,MUNGBIT>
<MOVE ,COTTON-BALLS ,PROTAGONIST>
<TELL
,MUFFLED " have " D ,COTTON-BALLS " stuffed in " 'EARS ,PERIOD-CR>)>)
(<AND <VERB? REMOVE DISEMBARK> ;"TAKE OUT BALLS = DISEMBARK"
<FSET? ,COTTON-BALLS ,WORNBIT>>
<COND (,GONE-APE
<PERFORM ,V?TAKE ,COTTON-BALLS>
<RTRUE>)>
<OPEN-EYES-AND-REMOVE-HANDS>
<FCLEAR ,COTTON-BALLS ,WORNBIT>
<SENSE-AGAIN ,EARS>)
(<AND <VERB? PUT>
<PRSI? ,NOSE>>
<TELL "The " 'COTTON-BALLS " is too itchy." CR>)>>
<OBJECT IGLOO
(LOC LOCAL-GLOBALS)
(DESC "igloo")
(SYNONYM IGLOO ORPHANAGE)
(ADJECTIVE LARGE)
(FLAGS VOWELBIT)
(ACTION IGLOO-F)>
<ROUTINE IGLOO-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,ORPHANAGE-FOYER>
<TELL ,LOOK-AROUND>)
(<EQUAL? ,HERE ,SOUTH-POLE>
<DO-WALK ,P?IN>)>)
(<VERB? LEAVE EXIT DISEMBARK>
<COND (<EQUAL? ,HERE ,SOUTH-POLE>
<TELL ,LOOK-AROUND>)
(T
<DO-WALK ,P?OUT>)>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,SOUTH-POLE>
<PERFORM-PRSA ,WINDOW>
<RTRUE>)
(T
<V-LOOK>)>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)>>