leathergoddesses/cleveland.zil

724 lines
20 KiB
Plaintext

"CLEVELAND for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
<OBJECT CLEVELAND-OBJECT
(IN LOCAL-GLOBALS)
(DESC "Cleveland")
(SYNONYM CLEVELAND)
(ACTION CLEVELAND-OBJECT-F)>
<ROUTINE CLEVELAND-OBJECT-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,CLEVELAND>
<TELL ,LOOK-AROUND>)
(<EQUAL? ,HERE ,LAWN>
<DO-WALK ,P?NORTH>)>)
(<VERB? LEAVE EXIT DISEMBARK>
<COND (<EQUAL? ,HERE ,CLEVELAND>
<V-WALK-AROUND>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? EXAMINE>
<V-LOOK>)>>
<ROOM CLEVELAND
(IN ROOMS)
(DESC "Cleveland")
(LDESC
"You suddenly find yourself longing for the slime pits of Venus or the
sandstorms of Mars. This particular section of Cleveland has exits to
the northeast and south.")
(NE TO TEENSY-WEENSY-HOUSE)
(SOUTH TO LAWN)
(FLAGS RLANDBIT ONBIT NARTICLEBIT)
(GLOBAL CLEVELAND-OBJECT HOUSE)>
<ROOM LAWN
(IN ROOMS)
(DESC "Lawn")
(NORTH TO CLEVELAND)
(FLAGS RLANDBIT ONBIT)
(GLOBAL CLEVELAND-OBJECT)
(ACTION LAWN-F)
(THINGS <PSEUDO (TALL FENCE FENCE-F)
(<> LAWN LAWN-OBJECT-F)>)>
<ROUTINE LAWN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"Yes, \"Lawn\" is the kindest word for this muddy patch of limp crabgrass. ">
<COND (<AND <FSET? ,RAKE ,TRYTAKEBIT>
<FSET? ,SACK ,TRYTAKEBIT>>
<TELL "Miraculously, someone actually seems to ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "care">)
(T
<TELL "give a ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "damn">)
(T
<TELL "shit">)>)>
<TELL
" about this lawn, because there are signs of recent activity:" A ,RAKE
" and a large " 'SACK ". ">)>
<TELL
"A fence rings the lawn; through an opening to the north you can
see Cleveland.">)
(<EQUAL? .RARG ,M-END>
<FCLEAR ,RAKE ,TRYTAKEBIT>
<FCLEAR ,SACK ,TRYTAKEBIT>
<FCLEAR ,RAKE ,NDESCBIT>
<FCLEAR ,SACK ,NDESCBIT>)>>
<ROUTINE FENCE-F ()
<COND (<VERB? LOOK-OVER CLIMB CLIMB-UP CLIMB-OVER>
<TELL "It's too tall." CR>)
(<AND <VERB? PUT-AGAINST>
<PRSO? ,TRELLIS>>
<PERFORM-PRSA ,TRELLIS ,HOUSE>
<RTRUE>)>>
<ROUTINE LAWN-OBJECT-F ()
<COND (<VERB? RAKE>
<TELL "It's already raked." CR>)
(<VERB? CLIMB-UP CLIMB-ON CLIMB BOARD LOOK-UNDER>
<PERFORM-PRSA ,GROUND ,PRSI>
<RTRUE>)
(<AND <VERB? PUT-ON>
<PRSI? ,PSEUDO-OBJECT>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)
(<VERB? EXAMINE>
<V-LOOK>)>>
<OBJECT RAKE
(IN LAWN)
(DESC "wooden rake")
(SYNONYM RAKE)
(ADJECTIVE WOODEN)
(FLAGS NDESCBIT TAKEBIT BURNBIT TRYTAKEBIT)>
<OBJECT SACK
(IN LAWN)
(DESC "canvas sack")
(SYNONYM SACK BAG)
(ADJECTIVE CANVAS LARGE)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT CONTBIT SEARCHBIT BURNBIT)
(SIZE 3)
(CAPACITY 50)>
<OBJECT LEAVES
(IN SACK)
(DESC "whole bunch of leaves")
(SYNONYM BUNCH LEAVES LEAF PILE)
(ADJECTIVE WHOLE)
(FLAGS TAKEBIT BURNBIT TRYTAKEBIT PLURALBIT)
(SIZE 2)
(ACTION LEAVES-F)>
<ROUTINE LEAVES-F ()
<COND (<VERB? ENTER>
<COND (<ULTIMATELY-IN? ,LEAVES>
<TELL ,HOLDING-IT>)
(T
<WEE>)>)
(<VERB? TAKE>
<COND (<PRE-TOUCH>
<RTRUE>)>
<TELL ,YOU-CANT "hold so many leaves in your arms!" CR>)
(<VERB? RAKE>
<TELL "They're already in a ">
<COND (<IN? ,LEAVES ,SACK>
<PRINTD ,SACK>)
(T
<TELL "pile">)>
<TELL ,PERIOD-CR>)
(<VERB? COUNT>
<TELL "69,105." CR>)
(<VERB? SEARCH LOOK-INSIDE>
<TELL "You find ... more leaves!" CR>)
(<AND <VERB? POUR>
<PRSO? ,LEAVES>>
<COND (<ULTIMATELY-IN? ,LEAVES>
<COND (<PRSI? ,WINDOW>
<PERFORM ,V?PUT-THROUGH ,LEAVES ,WINDOW>
<RTRUE>)
(T
<PERFORM ,V?PUT ,LEAVES ,PRSI>
<RTRUE>)>)
(T
<TELL ,YNH TR ,LEAVES>)>)
(<OR <AND <VERB? PUSH PUT>
<PRSI? ,SACK>>
<AND <VERB? FILL>
<PRSO? ,SACK>>>
<COND (<UNTOUCHABLE? ,LEAVES>
<CANT-REACH ,LEAVES>
<RTRUE>)
(<IN? ,LEAVES ,SACK>
<RFALSE>)>
<FCLEAR ,LEAVES ,TRYTAKEBIT>
<SETG LEAVES-PLACED <>>
<FSET ,TREE-HOLE ,OPENBIT>
<FCLEAR ,LEAVES ,NDESCBIT>
<MOVE ,LEAVES ,SACK>
<TELL "Done." CR>)
(<AND <VERB? MOVE>
,LEAVES-PLACED>
<FCLEAR ,LEAVES ,TRYTAKEBIT>
<SETG LEAVES-PLACED <>>
<FSET ,TREE-HOLE ,OPENBIT>
<FCLEAR ,LEAVES ,NDESCBIT>
<MOVE ,LEAVES ,HERE>
<TELL "You uncover the trellis." CR>)
(<AND <VERB? LOOK-UNDER>
,LEAVES-PLACED>
<TRELLIS-VISIBLE>
<CRLF>)
(<AND <VERB? EMPTY>
<PRSO? ,LEAVES>
<IN? ,LEAVES ,SACK>>
<PERFORM ,V?DROP ,LEAVES>
<RTRUE>)
(<AND <VERB? STAND-ON CLIMB-ON BOARD>
,LEAVES-PLACED>
<PERFORM ,V?STAND-ON ,TRELLIS>
<RTRUE>)>>
<ROOM TEENSY-WEENSY-HOUSE
(IN ROOMS)
(DESC "Teensy-Weensy House")
(LDESC
"This rickety home is so petite that the entire first floor is only
one location in this story. When you tire of this floor, you can go
east, southwest, or up.")
(SW TO CLEVELAND)
(EAST TO GARDEN)
(UP TO BEDROOM)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL STAIRS HOUSE)
(THINGS <PSEUDO (FIRST FLOOR FIRST-FLOOR-F)
(SECOND FLOOR SECOND-FLOOR-F)>)>
<ROOM GARDEN
(IN ROOMS)
(DESC "Garden")
(WEST TO TEENSY-WEENSY-HOUSE)
(IN TO TEENSY-WEENSY-HOUSE)
(FLAGS RLANDBIT ONBIT)
(GLOBAL HOLE HOUSE)
(HOLE-DESTINATION END-OF-HALLWAY)
(ACTION GARDEN-F)
(THINGS <PSEUDO (<> FLOWER FLOWERS-F)>)>
<ROUTINE GARDEN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The house opens onto a fragrant garden! A piece of sod has been ">
<COND (<FSET? ,SOD ,MUNGBIT>
<TELL "rolled aside, revealing" A ,HOLE>)
(T
<TELL "recently planted">)>
<TELL
", and a clump of yellow, bulbous flowers grows nearby.">
<COND (<FSET? ,TRELLIS ,TRYTAKEBIT>
<TELL
" The flowers barely reach the trellis which rises behind them.">)>
<TELL " You can re-enter the house to the west.">)>>
<ROUTINE FLOWERS-F ()
<COND (<VERB? SMELL>
<PERFORM-PRSA ,ODOR>
<RTRUE>)
(<VERB? PICK TAKE MUNG>
<TELL "That would be the act of a philistine." CR>)>>
<OBJECT SOD
(IN GARDEN)
(DESC "sod")
(SYNONYM PIECE SOD)
(FLAGS NARTICLEBIT NDESCBIT TRYTAKEBIT)
(ACTION SOD-F)>
<ROUTINE SOD-F ()
<COND (<VERB? TAKE>
<EXAMINE-SOD T>)
(<VERB? MOVE ROLL PUSH>
<COND (<FSET? ,SOD ,MUNGBIT>
<TELL ,SENILITY-STRIKES>)
(T
<FSET ,SOD ,MUNGBIT>
<THIS-IS-IT ,HOLE>
<TELL "Moving the sod reveals" AR ,HOLE>)>)
(<OR <AND <VERB? PUT-ON>
<PRSI? ,HOLE>>
<VERB? UNROLL>>
<COND (<FSET? ,SOD ,MUNGBIT>
<FCLEAR ,SOD ,MUNGBIT>
<TELL "You re-cover" TR ,HOLE>)
(T
<TELL ,LOOK-AROUND>)>)
(<AND <VERB? RAISE LOOK-UNDER>
<NOT <FSET? ,SOD ,MUNGBIT>>>
<TELL
"You lift a corner. Before the sod drops back to the ground,
you notice something dark." CR>)
(<VERB? EXAMINE>
<EXAMINE-SOD>)>>
<ROUTINE EXAMINE-SOD ("OPTIONAL" (TAKING <>))
<TELL "Although the sod hasn't taken root yet, it">
<COND (.TAKING
<TELL "'">)
(T
<TELL " look">)>
<TELL "s too heavy to carry." CR>>
<OBJECT TRELLIS
(IN GARDEN)
(DESC "trellis")
(NO-T-DESC "rellis")
(DESCFCN TRELLIS-F)
(SYNONYM TRELLIS RELLIS)
(ADJECTIVE WOODEN WHITE TALL WIDE SQUARE)
(FLAGS NDESCBIT TAKEBIT BURNBIT TRYTAKEBIT SEARCHBIT)
(SIZE 55)
(CAPACITY 50)
(ACTION TRELLIS-F)>
<ROUTINE TRELLIS-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<FSET? ,TRELLIS ,MUNGBIT>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL " ">
<DESCRIBE-TRELLIS-ON-HOLE>)
(T
<RFALSE>)>)
(<FSET? ,TRELLIS ,UNTEEDBIT>
<RFALSE>)
(<AND <VERB? PUT-ON PUT>
<PRSO? ,LEAVES>
<FSET? ,TRELLIS ,MUNGBIT>>
<COND (<IN? ,LEAVES ,TREE-HOLE>
<CANT-REACH ,LEAVES>)
(T
<SETG LEAVES-PLACED T>
<FCLEAR ,TREE-HOLE ,OPENBIT>
<FSET ,LEAVES ,NDESCBIT>
<FSET ,LEAVES ,TRYTAKEBIT>
<MOVE ,LEAVES ,TRELLIS>
<TELL "The leaves cover the trellis." CR>)>)
(<AND <VERB? PUT-ON>
<PRSI? ,TREE-HOLE>>
<COND (<FSET? ,TRELLIS ,MUNGBIT>
<TELL ,SENILITY-STRIKES>)
(T
<COND (<IN? ,LEAVES ,TRELLIS>
<SETG LEAVES-PLACED T>
<FCLEAR ,TREE-HOLE ,OPENBIT>
<FSET ,LEAVES ,NDESCBIT>
<FSET ,LEAVES ,TRYTAKEBIT>)>
<MOVE ,TRELLIS ,HERE>
<FSET ,TRELLIS ,TRYTAKEBIT>
<FSET ,TRELLIS ,MUNGBIT>
<TELL "The trellis barely spans the hole." CR>)>)
(<AND <VERB? TAKE>
<FSET? ,TRELLIS ,TRYTAKEBIT>
<NOT <UNTOUCHABLE? ,TRELLIS>>>
<UNDO-TRAP>
<RFALSE>)
(<AND <VERB? CLIMB CLIMB-ON>
<EQUAL? ,HERE ,GARDEN>
<FSET? ,TRELLIS ,TRYTAKEBIT>>
<UNDO-TRAP>
<TELL "It falls over." CR>)
(<AND <VERB? MOVE REMOVE>
<FSET? ,TRELLIS ,MUNGBIT>>
<UNDO-TRAP>
<TELL "You uncover the hole." CR>)
(<AND <VERB? PUT-AGAINST>
<PRSI? ,HOUSE>>
<TELL "The trellis is too flimsy to climb." CR>)
(<AND <VERB? LOOK-INSIDE>
<EQUAL? <GET ,P-ITBL ,P-PREP1> ,PR?THROUGH>>
<V-LOOK>)
(<VERB? MEASURE>
<TELL "It's six or seven feet wide." CR>)
(<AND <VERB? EXAMINE>
,LEAVES-PLACED>
<FCLEAR ,LEAVES ,NDESCBIT>
<V-EXAMINE>
<FSET ,LEAVES ,NDESCBIT>)
(<AND <VERB? EXAMINE>
<NOT <FIRST? ,TRELLIS>>>
<TELL
"The trellis is a tight lattice of white wood. Though slightly
wider at the top, it is approximately square in shape." CR>)
(<AND <VERB? PUT>
<PRSI? ,TREE-HOLE>>
<TELL ,TRELLIS-TOO-WIDE>)
(<AND <VERB? STAND-ON BOARD>
<FSET? ,TRELLIS ,MUNGBIT>>
<ROB ,TRELLIS ,TREE-HOLE>
<REMOVE ,TRELLIS>
<MOVE ,PROTAGONIST ,TREE-HOLE>
<TELL "Crash! You">
<AND-SIDEKICK ,TREE-HOLE>
<UNDO-TRAP>
<TELL " are now in the hole, along with some splinters." CR>)>>
<ROUTINE TRELLIS-VISIBLE ()
<TELL "The edge of a trellis is just visible under" A ,LEAVES ".">>
<ROUTINE DESCRIBE-TRELLIS-ON-HOLE ()
<COND (,LEAVES-PLACED
<TRELLIS-VISIBLE>)
(T
<TELL "A trellis covers the hole.">)>>
<ROUTINE UNDO-TRAP ()
<COND (,LEAVES-PLACED
<SETG LEAVES-PLACED <>>
<FCLEAR ,LEAVES ,TRYTAKEBIT>
<FCLEAR ,LEAVES ,NDESCBIT>)>
<FSET ,TREE-HOLE ,OPENBIT>
<FCLEAR ,TRELLIS ,TRYTAKEBIT>
<FCLEAR ,TRELLIS ,MUNGBIT>
<FCLEAR ,TRELLIS ,NDESCBIT> ;"for first time you take it in Garden"
<FSET ,TRELLIS ,OPENBIT> ;"ditto"
<FSET ,TRELLIS ,CONTBIT> ;"ditto"
<FSET ,TRELLIS ,SURFACEBIT> ;"ditto">
<ROUTINE FIRST-FLOOR-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,BEDROOM>
<DO-WALK ,P?DOWN>)
(<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE>
<TELL ,LOOK-AROUND>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,BEDROOM>
<TELL ,LOOK-AROUND>)
(T
<DO-WALK ,P?UP>)>)
(<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE>
<COND (<PRSO? ,PSEUDO-OBJECT>
<PERFORM-PRSA ,GLOBAL-ROOM ,PRSI>
<RTRUE>)
(T
<PERFORM-PRSA ,PRSO ,GLOBAL-ROOM>)>)>>
<ROUTINE SECOND-FLOOR-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE>
<DO-WALK ,P?UP>)
(<EQUAL? ,HERE ,BEDROOM>
<TELL ,LOOK-AROUND>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,BEDROOM>
<DO-WALK ,P?DOWN>)
(T
<TELL ,LOOK-AROUND>)>)
(<EQUAL? ,HERE ,BEDROOM>
<COND (<PRSO? ,PSEUDO-OBJECT>
<PERFORM-PRSA ,GLOBAL-ROOM ,PRSI>
<RTRUE>)
(T
<PERFORM-PRSA ,PRSO ,GLOBAL-ROOM>)>)>>
<ROOM BEDROOM
(IN ROOMS)
(DESC "Bedroom")
(LDESC
"The second floor of the house has an open window overlooking the street and
a stair leading down.")
(DOWN PER BEDROOM-EXIT-F)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL STAIRS WINDOW HOUSE)
(THINGS <PSEUDO (FIRST FLOOR FIRST-FLOOR-F)
(SECOND FLOOR SECOND-FLOOR-F)>)>
<ROUTINE BEDROOM-EXIT-F ("OPTIONAL" (CALLED-BY-STAIRS-F <>))
<COND (<AND ,SIDEKICK-TRIP-FLAG
<QUEUED? ,I-SIDEKICK-OUT-WINDOW>>
<TELL "Just as you are about to..." CR>
<RFALSE>)
(<AND ,SHEET-HANGING
<NOT .CALLED-BY-STAIRS-F>>
<TELL
"Choice: You could climb down the stairs or the rope." CR>
<RFALSE>)
(T
,TEENSY-WEENSY-HOUSE)>>
<OBJECT BED
(IN BEDROOM)
(DESC "bed")
(SYNONYM BED)
(FLAGS VEHBIT NDESCBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT)
(CAPACITY 100)
(ACTION BED-F)>
<ROUTINE BED-F ()
<COND (<VERB? MAKE>
<V-CLEAN>)
(<AND <VERB? EXAMINE>
<OR ,SHEET-TIED
<FSET? ,SHEET ,TRYTAKEBIT>>>
<SHEET-F ,M-OBJDESC>
<COND (<FIRST? ,BED>
<COND (<AND <EQUAL? <FIRST? ,BED> ,SHEET>
<NOT <NEXT? ,SHEET>>>
<CRLF>)
(T
<TELL " ">
<RFALSE>)>)
(T
<CRLF>)>)
(<AND <VERB? PUT PUT-ON>
<PRSO? ,RAFT ,STOOL>>
<WASTES> ;"don't want nested vehicles")
(<VERB? MOVE PUSH>
<TELL "The bed is too heavy to move." CR>)>>
<GLOBAL SHEET-HANGING <>>
<GLOBAL SHEET-TIED <>>
<OBJECT SHEET
(IN BEDROOM)
(SDESC "sheet")
(NO-T-DESC "shee")
(DESCFCN SHEET-F)
(SYNONYM SHEET STRIPS END ROPE)
(ADJECTIVE OTHER SHEE CLOTH) ;"no synonym slots left...sigh"
(FLAGS TAKEBIT BURNBIT TRYTAKEBIT)
(ACTION SHEET-F)>
<ROUTINE SHEET-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<OR ,SHEET-TIED
<FSET? ,SHEET ,TRYTAKEBIT>>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<COND (<NOT <VERB? EXAMINE>>
<TELL " ">)>
<COND (,SHEET-TIED
<TELL "A " D ,SHEET " is tied to the bed">
<COND (,SHEET-HANGING
<TELL ", its other end out the window">)>
<TELL ".">)
(T
<TELL
"The bed is unmade, with the sheet lying half on the floor.">)>)
(T
<RFALSE>)>)
(<AND <VERB? MAKE>
<NOUN-USED ,W?ROPE ,SHEET>>
<COND (<FSET? ,SHEET ,MUNGBIT>
<PERFORM ,V?TIE-TOGETHER ,SHEET>
<RTRUE>)
(T
<TELL "Be less general." CR>)>)
(<AND <VERB? TIE MAKE-WITH>
<PRSO? ,PRSI> ;"both PRSO and PRSI are the sheet">
<PERFORM ,V?TIE-TOGETHER ,SHEET>
<RTRUE>)
(<VERB? TIE-TOGETHER>
<COND (<FSET? ,SHEET ,MUNGBIT>
<TELL ,SENILITY-STRIKES>)
(<FSET? ,SHEET ,NARTICLEBIT>
<FCLEAR ,SHEET ,NARTICLEBIT>
<FCLEAR ,SHEET ,PLURALBIT>
<FSET ,SHEET ,MUNGBIT>
<PUTP ,SHEET ,P?SDESC "rope of cloth">
<PUTP ,SHEET ,P?NO-T-DESC "rope of cloh">
<TELL
"With the expertise of one who has watched countless prison escape movies,
you tie the strips into a rope." CR>)
(T
<TELL "Tying the ends of the sheet together">
<HO-HUM>)>)
(<AND <NOUN-USED ,W?ROPE ,SHEET>
<NOT <FSET? ,SHEET ,MUNGBIT>>>
<CANT-SEE ,SHEET>)
(<AND <VERB? PUT TAKE>
<PRSO? ,SHEET>
<FSET? ,SHEET ,TRYTAKEBIT>
<NOT <PRSI? ,WINDOW>>>
<COND (,SHEET-TIED
<DO-FIRST "untie it">)
(T
<FCLEAR ,SHEET ,TRYTAKEBIT>
<FCLEAR ,BED ,NDESCBIT>
<RFALSE>)>)
(<FSET? ,SHEET ,UNTEEDBIT>
<RFALSE>)
(<OR <VERB? RIP>
<AND <VERB? CUT>
<PRSO? ,SHEET>>>
<COND (<OR <FSET? ,SHEET ,NARTICLEBIT>
<FSET? ,SHEET ,MUNGBIT>>
<TELL ,SENILITY-STRIKES>)
(T
<SETG SHEET-TIED <>>
<FSET ,SHEET ,NARTICLEBIT>
<FCLEAR ,SHEET ,TRYTAKEBIT>
<FCLEAR ,BED ,NDESCBIT>
<FSET ,SHEET ,PLURALBIT>
<PUTP ,SHEET ,P?SDESC "strips of cloth">
<PUTP ,SHEET ,P?NO-T-DESC "srips of cloh">
<TELL "You rip the sheet into" TR ,SHEET>)>)
(<AND <VERB? TIE>
<PRSO? ,SHEET>>
<COND (,SHEET-TIED
<TELL "But" T ,SHEET " is already tied to the bed." CR>)
(<FSET? ,SHEET ,NARTICLEBIT>
<TELL
"Unless you want to make a nice decorative fringe for" T ,PRSI ", that">
<HO-HUM>)
(<PRSI? ,BED>
<SETG SHEET-TIED T>
<FSET ,BED ,NDESCBIT>
<FSET ,SHEET ,TRYTAKEBIT>
<MOVE ,SHEET ,HERE>
<NOW-TIED ,BED>)
(<AND <FSET? ,PRSI ,ACTORBIT>
<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>>
<RFALSE> ;"V-TIE will say KINKY!")
(<NOT <PRSO? ,BLANKET>> ;"BLANKET-F handles it"
<WASTES>)>)
(<AND <VERB? UNTIE>
,SHEET-TIED>
<FCLEAR ,SHEET ,TRYTAKEBIT>
<SETG SHEET-TIED <>>
<MOVE ,SHEET <LOC ,PROTAGONIST>>
<COND (,SHEET-HANGING
<FCLEAR ,BED ,NDESCBIT>
<SETG SHEET-HANGING <>>
<TELL "You pull in" T ,PRSO " and untie it." CR>)
(T
<TELL "Untied." CR>)>)
(<AND <VERB? PUT-THROUGH PUT>
<PRSI? ,WINDOW>>
<COND (,SHEET-HANGING
<TELL ,SENILITY-STRIKES>)
(,SHEET-TIED
<COND (<NOT <FSET? ,SHEET ,MUNGBIT>>
<TELL
"The sheet would barely reach the window, let alone the ground below!" CR>
<RTRUE>)>
<MOVE ,SHEET ,HERE>
<SETG SHEET-HANGING T>
<TELL "The " D ,SHEET " hangs almost to the ground.">
<COND (<OR <NOT <IN? ,SIDEKICK ,HERE>>
,SIDEKICK-TRIP-FLAG ;"he already went once">
<CRLF>
<RTRUE>)>
<QUEUE I-SIDEKICK-OUT-WINDOW 2>
<TELL
" " D ,SIDEKICK " looks awed. \"Super idea! Doesn't look too strong,
though. I'm lighter, so I'll go down.\"" CR>)>)
(<VERB? MOVE>
<COND (,SHEET-HANGING
<SETG SHEET-HANGING <>>
<TELL "You pull" T ,SHEET " back into the room." CR>)
(,SHEET-TIED
<PERFORM-PRSA ,BED>
<RTRUE>)>)
(<AND <VERB? CLIMB-DOWN>
,SHEET-HANGING>
<TELL "The rope rips under your weight. ">
<PLUMMET-TO-PAVEMENT>)
(<AND <VERB? MEASURE>
<FSET? ,SHEET ,MUNGBIT>>
<TELL "Long enough." CR>)
(<AND <VERB? EXAMINE>
<OR ,SHEET-TIED
<FSET? ,SHEET ,TRYTAKEBIT>>>
<SHEET-F ,M-OBJDESC>
<CRLF>)>>
<ROUTINE PLUMMET-TO-PAVEMENT ()
<JIGS-UP
"After plummeting to the pavement, ambulances rush up to take you the finest
hospitals in Cleveland. If only the ambulances had all picked the same
hospital, there might've been a chance to put you back together.">>
<ROUTINE I-SIDEKICK-OUT-WINDOW ()
<TELL " ">
<COND (,SIDEKICK-TRIP-FLAG
<FSET ,BEDROOM ,MUNGBIT>
<MOVE ,SIDEKICK ,HERE>
<MOVE ,HEADLIGHT ,HERE>
<INCREMENT-SCORE 14 33 T>
<TELL
"The ceiling collapses into a cloud of old plaster and startled termites,
and out of the middle of it steps " D ,SIDEKICK ", looking dishevelled but,
for the most part, alive!|
\"That truck explosion knocked me into the basement of some nutty professor,
who strapped me into a faster-than-light missile he was about to test! Halfway
to Pluto, I was intercepted by slavers looking for asteroid mining laborers. I
beat off about thirty of 'em, but they just kept coming and coming. Just then
I noticed" A ,HOLE " which led to a spot about four feet above the floor of
the attic ... or what used to be the floor of the attic. Anyway, I got the "
'HEADLIGHT "!\" ">
<HE-SHE T>
<TELL
" points to the battered but usable " 'HEADLIGHT " on the floor." CR>)
(<OR <NOT <EQUAL? ,HERE ,BEDROOM>>
<NOT ,SHEET-HANGING>>
<DEQUEUE I-SIDEKICK-OUT-WINDOW>
<TELL
"\"Okay, forget the " 'HEADLIGHT ",\" shrugs " D ,SIDEKICK ,PERIOD-CR>)
(T
<MOVE ,FORD ,HERE>
<REMOVE ,SIDEKICK>
<REMOVE ,HEADLIGHT>
<SETG FOLLOW-FLAG 1>
<QUEUE I-FOLLOW 2>
<FCLEAR ,HEADLIGHT ,NDESCBIT>
<FCLEAR ,HEADLIGHT ,TRYTAKEBIT>
<SETG SIDEKICK-TRIP-FLAG T>
<QUEUE I-SIDEKICK-OUT-WINDOW 1>
<TELL
D ,SIDEKICK " climbs down the rope and unscrews the " 'HEADLIGHT ". Suddenly,
a truck barrels down the street and hits " D ,SIDEKICK ", carrying ">
<HIM-HER>
<TELL
" out of sight. Moments later, you hear an explosion. As the smoke
drifts past the window">
<MEMORIAM>)>>
<OBJECT HEADLIGHT
(DESC "headlight")
(NO-T-DESC "headligh")
(SYNONYM HEADLIGHT LIGHT LIGH)
(ADJECTIVE FORD HEAD)
(FLAGS TAKEBIT TRYTAKEBIT NDESCBIT)
(ACTION HEADLIGHT-F)>
<ROUTINE HEADLIGHT-F ()
<COND (<AND <VERB? EXAMINE>
<FSET? ,HEADLIGHT ,TRYTAKEBIT>>
<TELL "It looks loose." CR>)
(<AND <TOUCHING? ,HEADLIGHT>
<FSET? ,HEADLIGHT ,TRYTAKEBIT>>
<CANT-REACH ,HEADLIGHT>)>>
<OBJECT FORD
(DESC "Ford")
(SYNONYM FORD CAR AUTO)
(ADJECTIVE NUMBER) ;"so you can refer to it as 1933 FORD"
(FLAGS NDESCBIT)
(ACTION FORD-F)>
<ROUTINE FORD-F ()
<COND (<AND <ADJ-USED ,A?NUMBER>
<NOT <EQUAL? ,P-NUMBER 1933>>>
<CANT-SEE ,FORD> ;"will this really work?")
(<TOUCHING? ,FORD>
<CANT-REACH ,FORD>)>>