889 lines
25 KiB
Plaintext
889 lines
25 KiB
Plaintext
"DUELING for
|
|
NORD AND BERT
|
|
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
|
|
|
|
<ROOM BEFORE-MANOR
|
|
(LOC ROOMS)
|
|
(DESC "Before the Manor")
|
|
;(FLAGS INDOORSBIT)
|
|
(GLOBAL MANOR DUELING)
|
|
(ACTION BEFORE-MANOR-F)>
|
|
|
|
<ROUTINE BEFORE-MANOR-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You're standing in front of a large but oddly shaped manor house. From
|
|
the outside, it looks as if its individual rooms have been haphazardly
|
|
constructed and are out of proportion with each other. This has a slight
|
|
disorienting effect.">)>>
|
|
|
|
<GLOBAL REAL-DUELING <>>
|
|
|
|
<OBJECT DUELING
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "room")
|
|
(PICK-IT "Visit the Manor of Speaking")
|
|
(MAX-SCORE 7)
|
|
(SCENE-SCORE 0)
|
|
(SCENE-ROOM BEFORE-MANOR)
|
|
(SCENE-CUR 0)
|
|
(SYNONYM ;ROOM DECORATED DECORATION DOLDRUMS DOLDRUM KREMLIN
|
|
PHARMACY ATTIC RX INTERIOR YAWN)
|
|
(ADJECTIVE INTERIOR)
|
|
(FLAGS NDESCBIT SCENEBIT)
|
|
(GLOBAL MANOR)
|
|
(ACTION DUELING-F)>
|
|
|
|
<ROUTINE DUELING-F ("AUX" ROOM)
|
|
<COND (<OR <ADJ-USED ,DUELING ,W?INTERIOR>
|
|
<NOUN-USED ,DUELING ,W?DECORATED ,W?DECORATION ,W?INTERIOR>>
|
|
<SETG REAL-DUELING ,ID-ROOM>)
|
|
(<NOUN-USED ,DUELING ,W?DOLDRUM ,W?DOLDRUMS ,W?YAWN>
|
|
<SETG REAL-DUELING ,DOLDRUMS>)
|
|
(<NOUN-USED ,DUELING ,W?KREMLIN>
|
|
<SETG REAL-DUELING ,KREMLIN>)
|
|
(<NOUN-USED ,DUELING ,W?PHARMACY ,W?RX>
|
|
<SETG REAL-DUELING ,PHARMACY>)
|
|
(<NOUN-USED ,DUELING ,W?ATTIC>
|
|
<SETG REAL-DUELING ,ATTIC>)
|
|
;(T
|
|
<SETG REAL-DUELING ,ID-ROOM>)>
|
|
<COND (<OR <NOT ,REAL-DUELING>
|
|
<VERB? NO-VERB>
|
|
<AND <DONT-HANDLE ,DUELING>
|
|
<NOT <VERB? WALK-TO>>>>
|
|
<RFALSE>)
|
|
(<VERB? WALK-TO>
|
|
<COND (<EQUAL? ,HERE ,REAL-DUELING>
|
|
<TELL ,ARRIVED>)
|
|
(<EQUAL? ,REAL-DUELING ,ATTIC>
|
|
<COND (<FSET? ,ATTIC ,PHRASEBIT>
|
|
<SET ROOM ,KREMLIN>)
|
|
(T
|
|
<SET ROOM ,ID-ROOM>)>
|
|
<COND (<AND <EQUAL? ,HERE ,ID-ROOM>
|
|
<NOT <FSET? ,ATTIC ,PHRASEBIT>>>
|
|
<DO-WALK ,P?DOWN>)
|
|
(<AND <EQUAL? ,HERE ,KREMLIN>
|
|
<FSET? ,ATTIC ,PHRASEBIT>>
|
|
<DO-WALK ,P?UP>)
|
|
(T
|
|
<TELL
|
|
"You walk to the " D .ROOM ", and from there walk ">
|
|
<COND (<EQUAL? .ROOM ,ID-ROOM>
|
|
<TELL "down">)
|
|
(T
|
|
<TELL "up">)>
|
|
<TELL " the stairs..." CR CR>
|
|
<GOTO ,ATTIC>)>)
|
|
(<EQUAL? ,HERE ,ATTIC>
|
|
<COND (<FSET? ,ATTIC ,PHRASEBIT>
|
|
<SET ROOM ,KREMLIN>)
|
|
(T
|
|
<SET ROOM ,ID-ROOM>)>
|
|
<COND (<AND <EQUAL? ,REAL-DUELING ,ID-ROOM>
|
|
<NOT <FSET? ,ATTIC ,PHRASEBIT>>>
|
|
<DO-WALK ,P?UP>)
|
|
(<AND <EQUAL? ,REAL-DUELING ,KREMLIN>
|
|
<FSET? ,ATTIC ,PHRASEBIT>>
|
|
<DO-WALK ,P?DOWN>)
|
|
(T
|
|
<TELL "You walk ">
|
|
<COND (<EQUAL? .ROOM ,ID-ROOM>
|
|
<TELL "up">)
|
|
(T
|
|
<TELL "down">)>
|
|
<TELL
|
|
" the stairs to the " D .ROOM " and continue walking... " CR CR>
|
|
<GOTO ,REAL-DUELING>)>)
|
|
(T
|
|
<TELL "You go there..." CR CR>
|
|
<GOTO ,REAL-DUELING>)>)
|
|
(<NOT <EQUAL? ,HERE ,REAL-DUELING>>
|
|
<CANT-SEE <> "such room">)
|
|
;(T
|
|
<CHANGE-OBJECT ,DUELING ,GLOBAL-ROOM>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT MANOR
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "manor")
|
|
(SYNONYM HOUSE MANOR SPEAKING)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION MANOR-F)>
|
|
|
|
<ROUTINE MANOR-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<PERFORM ,V?LOOK>
|
|
<RTRUE>)
|
|
(<VERB? ENTER WALK-TO>
|
|
<COND (<EQUAL? ,HERE ,BEFORE-MANOR>
|
|
<V-WALK-AROUND>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL ,LOOK-AROUND>)>)>>
|
|
|
|
<ROOM ID-ROOM
|
|
(LOC ROOMS)
|
|
(DESC "Interior Decorated")
|
|
(FLAGS INDOORSBIT)
|
|
(DOWN PER ATTIC-ENTER)
|
|
(GLOBAL MANOR DUELING STAIRS)
|
|
(ACTION ID-ROOM-F)>
|
|
|
|
;"rmungbit = have tried to leave room and stopped for Player to describe obj"
|
|
|
|
;<GLOBAL GETTING-INPUT <>>
|
|
|
|
<ROUTINE ID-ROOM-F (RARG)
|
|
<COND ;(<AND <EQUAL? .RARG ,M-BEG>
|
|
,GETTING-INPUT>
|
|
<COND (<L? <GETB ,P-LEXV ,P-LEXWORDS> 5>
|
|
<TELL
|
|
"Come on, not so tight-lipped! You can be more floral in your prose than
|
|
that." CR>)
|
|
(T
|
|
<SETG GETTING-INPUT <>>
|
|
<SAVE-INPUT ,FIRST-BUFFER>)>)
|
|
;(<AND <EQUAL? .RARG ,M-BEG>
|
|
<NOT <FSET? ,ID-ROOM ,RMUNGBIT>>
|
|
<VERB? WALK WALK-TO>>
|
|
<FSET ,ID-ROOM ,RMUNGBIT>
|
|
<SETG GETTING-INPUT T>
|
|
<SETG AWAITING-REPLY 2>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL
|
|
"So, you're just going to walk away from my lovingly crafted description
|
|
of your opulent surroundings, just like ">
|
|
<ITALICIZE "that">
|
|
<TELL ", huh? Well! Do you think ">
|
|
<ITALICIZE "you">
|
|
<TELL " can do better?" CR>)
|
|
(<AND <EQUAL? .RARG ,M-BEG>
|
|
<VERB? THROW THROW-TO KICK KILL MUNG KNOCK-OFF>>
|
|
<TELL
|
|
"Shame shame shame on you, you ruffian! I tremble at the thought of having
|
|
you crash one of my dinner parties. I just won't allow that type of
|
|
behaviour!" CR>)
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
<HELD? ,OLD-BOTTLE>
|
|
<VISIBLE? ,OLD-BOTTLE>
|
|
<NOT <FSET? ,OLD-BOTTLE ,SEENBIT>>>
|
|
<FSET ,OLD-BOTTLE ,SEENBIT>
|
|
<TELL
|
|
"Oh, my goodness, that's a rare antique bottle you're holding. Very
|
|
impressive indeed." CR CR>)
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
<NOT <FSET? ,ID-ROOM ,TOUCHBIT>>>
|
|
<TELL
|
|
"The carpet! The carpet! Don't drag your feet on the carpet! It's a
|
|
priceless hand-loomed Persian!|
|
|
|
|
|
Whew! Okay, you're now standing on the bone-white Louis-XV-inspired tile.||">)
|
|
(<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"This room, with its modern sensibility yet also palpable feeling for
|
|
the ancien regime, is unique in its elegant reflection of a confident,
|
|
personal sense of style. The lines are lean and classic, the color is
|
|
rich and distinctive.">
|
|
<COND (<AND <IN? ,LOUIS-CHAIR ,HERE>
|
|
<FSET? ,LOUIS-CHAIR ,DESC-IN-ROOMBIT>>
|
|
<TELL CR CR
|
|
"The Louis XIV chair is plump, tufted, aristocratic -- it's styled with equal
|
|
splashes of rococo and baroque. The piece definitely has charisma">
|
|
<COND (<OR <NOT <FIRST? ,LOUIS-CHAIR>>
|
|
<AND <IN? ,PROTAGONIST ,LOUIS-CHAIR>
|
|
<NOT <NEXT? ,PROTAGONIST>>>>
|
|
<TELL ".">)
|
|
(T
|
|
<TELL ". Sitting on the chair:">
|
|
<D-CONTENTS ,LOUIS-CHAIR 2>)>)>
|
|
<TELL "||
|
|
Against the far wall is an heroically proportioned, Mediterranean-crafted,
|
|
intricately inlaid, Pre-Raphaelite limestone mantelpiece, circa 1838.">
|
|
<COND (<IN? ,LACE ,MANTEL>
|
|
<REMOVE ,LACE>
|
|
<TELL CR CR
|
|
"Adorning the mantel is a resplendently virgin-ivory hand-embroidered,
|
|
filet-patterned lace tablecloth, circle 924 on your Reader Service Card">
|
|
<COND (;<G? <CCOUNT ,MANTEL> 1>
|
|
<FIRST? ,MANTEL>
|
|
<TELL ". Also on the mantel:">
|
|
<D-CONTENTS ,MANTEL 2>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL ".">)>
|
|
<MOVE ,LACE ,MANTEL>)
|
|
(<FIRST? ,MANTEL>
|
|
<TELL " Resting on the mantel:">
|
|
<D-CONTENTS ,MANTEL 2>)>
|
|
<COND (<NOT <FSET? ,ATTIC ,PHRASEBIT>>
|
|
<TELL CR CR
|
|
"A marble staircase of grand proportions leads down.">)>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT LOUIS-CHAIR
|
|
(LOC ID-ROOM)
|
|
(DESC "plump, tufted, aristocratic Louis XIV chair")
|
|
(SYNONYM CHAIR)
|
|
(ADJECTIVE PLUMP TUFTED ARISTICRATIC LOUIS XIV)
|
|
(FLAGS TAKEBIT TRYTAKEBIT DESC-IN-ROOMBIT SURFACEBIT VEHBIT CONTBIT
|
|
OPENBIT SEARCHBIT)
|
|
(CAPACITY 30)
|
|
(SIZE 90)
|
|
(ACTION LOUIS-CHAIR-F)>
|
|
|
|
;"phrasebit = score for boarding it"
|
|
|
|
<ROUTINE LOUIS-CHAIR-F ("OPT" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-BEG>
|
|
<VERB? WALK WALK-TO>>
|
|
<NOT-GOING-ANYWHERE>)
|
|
(.RARG
|
|
<RFALSE>)
|
|
(<AND <VERB? TAKE>
|
|
<FSET? ,LOUIS-CHAIR ,TRYTAKEBIT>
|
|
<EQUAL? ,ORPHAN-FLAG ,LOUIS-CHAIR>>
|
|
<PERFORM ,V?NO-VERB ,LOUIS-CHAIR>
|
|
<CRLF>
|
|
<PERFORM ,V?TAKE ,LOUIS-CHAIR>
|
|
<RTRUE>)
|
|
(<AND <VERB? TAKE>
|
|
<FSET? ,LOUIS-CHAIR ,TRYTAKEBIT>>
|
|
<TELL
|
|
"This is not a rummage sale. No! I could never think of parting
|
|
with such a priceless antique." CR>)
|
|
(<VERB? STAND-ON>
|
|
<PERFORM ,V?BOARD ,PRSO>
|
|
<RTRUE>)
|
|
(<AND <VERB? BOARD>
|
|
<EQUAL? ,HERE ,KREMLIN>
|
|
<NOT <FSET? ,LOUIS-CHAIR ,PHRASEBIT>>>
|
|
<FSET ,LOUIS-CHAIR ,PHRASEBIT>
|
|
<UPDATE-SCORE>
|
|
<RFALSE>)
|
|
(<AND <VERB? TAKE>
|
|
<EQUAL? ,HERE ,ID-ROOM>
|
|
;<EQUAL? <ITAKE> T>
|
|
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
|
|
<FCLEAR ,LOUIS-CHAIR ,DESC-IN-ROOMBIT>
|
|
<TELL
|
|
"Go ahead, but I can't bear to look. [With the proper reverence, you make
|
|
a courtly bow in front of the priceless antique as you pick it up.]" CR>)>>
|
|
|
|
<OBJECT PILLOW
|
|
(LOC LOUIS-CHAIR)
|
|
(DESC "multihued textured pillow")
|
|
(SYNONYM PILLOW)
|
|
(ADJECTIVE MULTI-HUED TEXTURED)
|
|
(FLAGS TAKEBIT)
|
|
(ACTION PILLOW-F)>
|
|
|
|
<ROUTINE PILLOW-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The pillow, complementary to the Louis XIV, is multihued and textured,
|
|
displaying free-form squiggles, curlicues and brash brushstrokes with a
|
|
primitive look to them." CR>)>>
|
|
|
|
<OBJECT MANTEL ;"just like rest-table"
|
|
(LOC ID-ROOM)
|
|
(DESC "heroically proportioned mantel")
|
|
(SYNONYM MANTEL MANTELPIECE)
|
|
(ADJECTIVE HEROICALLY PROPORTIONED)
|
|
(FLAGS DESC-IN-ROOMBIT NO-D-CONT SURFACEBIT CONTBIT OPENBIT SEARCHBIT
|
|
VOWELBIT)
|
|
(CAPACITY 25)
|
|
;(ACTION MANTEL-F)>
|
|
|
|
;"even with no-d-cont should print contents when v-examine.
|
|
no-d-cont only for look in a room"
|
|
|
|
;<ROUTINE MANTEL-F ()
|
|
<COND (<AND <VERB? EXAMINE>
|
|
<FSET? ,ID-ROOM ,RMUNGBIT>>
|
|
<RESTORE-INPUT ,FIRST-BUFFER>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT LACE
|
|
(LOC MANTEL)
|
|
(DESC "lace tablecloth")
|
|
(SYNONYM TABLECLOTH)
|
|
(ADJECTIVE VIRGIN-IVORY IVORY HAND-EMBROIDERED LACE)
|
|
(FLAGS TAKEBIT)
|
|
;(ACTION LACE-F)>
|
|
|
|
;<ROUTINE LACE-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "ok" CR>)>>
|
|
|
|
<ROOM DOLDRUMS
|
|
(LOC ROOMS)
|
|
(DESC "Doldrums")
|
|
(FLAGS INDOORSBIT)
|
|
(GLOBAL MANOR DUELING)
|
|
(ACTION DOLDRUMS-F)>
|
|
|
|
<ROUTINE DOLDRUMS-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-ENTER>
|
|
<COND (<FSET? ,DOLDRUMS ,TOUCHBIT>
|
|
<QUEUE I-DOLDRUMS 1>)
|
|
(T
|
|
<QUEUE I-DOLDRUMS 2>)>
|
|
<RFALSE>)
|
|
(<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"Go ahead, come on in and bore me.|
|
|
|
|
|
Walking into here is like driving across Nebraska. The place
|
|
is neither bright nor dim, neither cool nor warm, neither this way nor
|
|
that way. Even the air is unmoved by the experience of you entering the
|
|
doldrums.|
|
|
|
|
|
In the center of the room is a vast wasteland, which gradually blends into
|
|
a wide patch of long pale-green grass that spills over into yawning chasms.
|
|
Above the cliff hangs a shapeless cloud through which a line of sheep are
|
|
jumping, one after the next, in slow motion.|
|
|
|
|
|
All of the objects here have the aspect of salt-water taffy left out in
|
|
the sun too long.">
|
|
<COND (<NOT <FSET? ,CLOCK ,TOUCHBIT>>
|
|
<TELL
|
|
" Cobwebs enshroud a clock that has long since clocked out.">)>
|
|
<TELL "||
|
|
One wall appears to have been recently painted pea green. The weak smell
|
|
of paint lingers in the air.">)>>
|
|
|
|
<ROUTINE I-DOLDRUMS ()
|
|
<QUEUE I-DOLDRUMS -1>
|
|
<COND (<NOT <EQUAL? ,HERE ,DOLDRUMS>>
|
|
<DEQUEUE I-DOLDRUMS>
|
|
<RFALSE>)
|
|
(<FSET? ,GRASS ,SEENBIT>
|
|
<FCLEAR ,GRASS ,SEENBIT>
|
|
<TELL CR "The grass here continues to grow">)
|
|
(T
|
|
<FSET ,GRASS ,SEENBIT>
|
|
<TELL CR "The paint on the wall continues to dry">)>
|
|
<TELL ,PERIOD>>
|
|
|
|
<OBJECT WASTELAND
|
|
(LOC DOLDRUMS)
|
|
(DESC "vast wasteland")
|
|
(SYNONYM WASTELAND TV TELEVISION CHANNEL STATION)
|
|
(ADJECTIVE TV TELEVISION VAST)
|
|
(FLAGS DESC-IN-ROOMBIT LIGHTBIT ONBIT)
|
|
(ACTION WASTELAND-F)>
|
|
|
|
<ROUTINE WASTELAND-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The television set, which has been left droning on here, is now showing
|
|
a marathon of laundry detergent comercials." CR>)
|
|
(<VERB? OFF SET>
|
|
<TELL "It has no controls of any kind." CR>)>>
|
|
|
|
<OBJECT CLOUD
|
|
(LOC DOLDRUMS)
|
|
(DESC "cloud")
|
|
(SYNONYM CLOUD)
|
|
(ADJECTIVE SHAPELESS)
|
|
(FLAGS NDESCBIT)
|
|
;(ACTION CLOUD-F)>
|
|
|
|
;<ROUTINE CLOUD-F ()
|
|
<COND ()>>
|
|
|
|
<OBJECT GRASS
|
|
(LOC DOLDRUMS)
|
|
(DESC "grass")
|
|
(SYNONYM GRASS)
|
|
(ADJECTIVE PALE-GREEN GREEN LONG)
|
|
(FLAGS DESC-IN-ROOMBIT NOA)
|
|
;(ACTION WASTELAND-F)>
|
|
|
|
;"SEENBIT = in i-doldrums grass or paint"
|
|
|
|
<OBJECT CHASMS
|
|
(LOC DOLDRUMS)
|
|
(DESC "yawning chasms")
|
|
(SYNONYM CHASMS CHASM CLIFF CLIFFS)
|
|
(ADJECTIVE YAWNING)
|
|
(FLAGS DESC-IN-ROOMBIT NOA PLURALBIT ;NARTICLEBIT)
|
|
(ACTION CHASMS-F)>
|
|
|
|
<ROUTINE CHASMS-F ()
|
|
<COND (<VERB? BOARD LEAP LEAP-OFF ENTER>
|
|
<TELL
|
|
"Okay, here you are falling down off the cliffs and with all the
|
|
exhilaration you're showing you might as well be falling asleep. Your life
|
|
flashes before your eyes and that's a bigger yawn than the chasms. The abyss
|
|
is actually a continuum that loops back around whence you fell, and here
|
|
you are standing upright again." CR>)
|
|
(<AND <VERB? PUT THROW>
|
|
<PRSI? ,CHASMS>>
|
|
<MOVE ,PRSO ,HERE>
|
|
<TELL
|
|
"As you throw in" T ,PRSO ", it is swallowed by the darkness of the abyss,
|
|
only to reappear a second later at your feet." CR>)>>
|
|
|
|
<OBJECT PAINT
|
|
(LOC DOLDRUMS)
|
|
(DESC "paint")
|
|
(SYNONYM PAINT)
|
|
;(ADJECTIVE YAWNING)
|
|
(FLAGS NDESCBIT NARTICLEBIT)
|
|
;(ACTION PAINT-F)>
|
|
|
|
<OBJECT CLOCK
|
|
(LOC DOLDRUMS)
|
|
(DESC "clock")
|
|
(SYNONYM CLOCK TIMEPIECE WATCH TIME)
|
|
;(ADJECTIVE WINDING)
|
|
(FLAGS TAKEBIT CONTBIT SEARCHBIT OPENBIT DESC-IN-ROOMBIT)
|
|
(ACTION CLOCK-F)>
|
|
|
|
;"rmungbit = told in i-clock"
|
|
;"phrasebit = points for winding"
|
|
|
|
<ROUTINE CLOCK-F ()
|
|
<COND (<AND <VERB? TAKE>
|
|
;<EQUAL? <ITAKE> T>
|
|
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
|
|
<FCLEAR ,CLOCK ,DESC-IN-ROOMBIT>
|
|
<TELL "Taken." CR>)
|
|
;(<AND <VERB? PUT>
|
|
<PRSO? ,SAFE>>)
|
|
(<VERB? SET>
|
|
<COND (<NOT <FSET? ,CLOCK ,PHRASEBIT>>
|
|
<FSET ,CLOCK ,PHRASEBIT>
|
|
<UPDATE-SCORE>)>
|
|
<SETG CLOCK-N 0>
|
|
<QUEUE I-CLOCK -1>
|
|
<TELL "You wind the clock until the winding key stops." CR>)
|
|
(<AND <VERB? LISTEN>
|
|
<RUNNING? ,I-CLOCK>
|
|
<EQUAL? <META-LOC ,CLOCK> ,HERE>>
|
|
<RTRUE>)
|
|
(<VERB? READ EXAMINE>
|
|
<TELL
|
|
"The clock is faceless and without hands, but has a winding key
|
|
in its back." CR>)
|
|
(<VERB? OPEN>
|
|
<TELL "You can't." CR>)
|
|
(<VERB? CLOSE>
|
|
<TELL ,ALREADY-IS>)>>
|
|
|
|
<GLOBAL CLOCK-N 0>
|
|
|
|
<ROUTINE I-CLOCK ()
|
|
<SETG CLOCK-N <+ ,CLOCK-N 1>>
|
|
<COND (<G? ,CLOCK-N 10>
|
|
<COND (<EQUAL? <META-LOC ,CLOCK> ,HERE>
|
|
<TELL CR
|
|
"The clock gives off its last \"tick\" and stops." CR>)>
|
|
<DEQUEUE I-CLOCK>)
|
|
(<EQUAL? <META-LOC ,CLOCK> ,HERE>
|
|
<TELL CR "The clock ">
|
|
<COND (<OR <PROB 50>
|
|
<NOT <FSET? ,CLOCK ,RMUNGBIT>>>
|
|
<TELL
|
|
"continues sounding out a steady \"Tick... tick... tick.\"">)
|
|
(T
|
|
<TELL "keeps ticking off the time.">)>
|
|
<COND (<NOT <FSET? ,CLOCK ,RMUNGBIT>>
|
|
<FSET ,CLOCK ,RMUNGBIT>
|
|
<TELL
|
|
" If you couldn't see it was the clock making the noise, it would
|
|
sound rather ominous.">)>
|
|
<CRLF>)>
|
|
<RTRUE>>
|
|
|
|
<OBJECT CLOCK-KEY
|
|
(LOC CLOCK)
|
|
(DESC "winding key")
|
|
(SYNONYM KEY)
|
|
(ADJECTIVE WINDING CLOCK)
|
|
(FLAGS INTEGRALBIT)
|
|
(ACTION CLOCK-KEY-F)>
|
|
|
|
<ROUTINE CLOCK-KEY-F ()
|
|
<COND (<AND <VERB? MOVE SET OPEN>
|
|
<NOT ,PRSI>>
|
|
<PERFORM ,V?SET ,CLOCK>
|
|
<RTRUE>)>>
|
|
|
|
<ROOM KREMLIN
|
|
(LOC ROOMS)
|
|
(DESC "Kremlin")
|
|
(FLAGS INDOORSBIT)
|
|
(UP PER ATTIC-ENTER)
|
|
(GLOBAL MANOR DUELING STAIRS)
|
|
(ACTION KREMLIN-F)>
|
|
|
|
<GLOBAL KREMLIN-ENTER <>>
|
|
|
|
<ROUTINE KREMLIN-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-ENTER>
|
|
<COND (<AND <RUNNING? ,I-CLOCK>
|
|
<NOT <FSET? ,MARX ,TOUCHBIT>>
|
|
<HELD? ,CLOCK>>
|
|
<SETG KREMLIN-ENTER T>
|
|
<HLIGHT ,H-BOLD>
|
|
<TELL D ,KREMLIN>
|
|
<HLIGHT ,H-NORMAL>
|
|
<CRLF> <CRLF>
|
|
<TELL
|
|
"\"Tick... tick.\" I hear bomb ticking! Counter-Revolutionary spy! Hold
|
|
on to our sable hats.">
|
|
<COND (<VISIBLE? ,CLOCK>
|
|
<TELL
|
|
" Oh, we can see is only inferior Capitalist clock">)
|
|
(T
|
|
<UPDATE-SCORE>
|
|
<FSET ,MARX ,TOUCHBIT>
|
|
<MOVE ,SAFE ,HERE>
|
|
<TELL
|
|
" My sturdy walls tremble with xenophobia of Western hegemony into Mother
|
|
Country. Poor Marx is jolted and falls indignantly to
|
|
the floor, revealing some kind of safe on the red wall where he had hung">)>
|
|
<TELL ,PERIOD ;CR>)>)
|
|
(<EQUAL? .RARG ,M-LOOK>
|
|
<COND (<NOT ,KREMLIN-ENTER>
|
|
<TELL
|
|
"\"Fellow traveller, welcome.\"" CR CR>)>
|
|
<TELL
|
|
"This room is painted entirely in bold, revolutionary red -- walls, floor,
|
|
and ceiling -- surrounding you symbolically with the inescapability of
|
|
the coming of the revolution.">
|
|
<COND (<FSET? ,MARX ,TOUCHBIT>
|
|
<TELL CR CR
|
|
"There's a safe built into the wall where the picture once hung.">)>
|
|
<COND (<FSET? ,ATTIC ,PHRASEBIT>
|
|
<TELL CR CR
|
|
"A staircase leads up from here.">)>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT MARX
|
|
(LOC KREMLIN)
|
|
(DESC "portrait of Karl Marx")
|
|
(FDESC
|
|
"Presiding over the room, hanging from a high red wall, the portrait of the
|
|
Grandfather of the Revolution, Karl Marx, looks down with furrowed brow upon
|
|
your capitalist hide.")
|
|
(SYNONYM FATHER MARX KARL PORTRAIT PICTURE)
|
|
(ADJECTIVE KARL)
|
|
(FLAGS TRYTAKEBIT)
|
|
(ACTION MARX-F)>
|
|
|
|
;"touchbit is set as he falls to floor"
|
|
|
|
<ROUTINE MARX-F ()
|
|
<COND (<AND <TOUCHING? ,MARX>
|
|
<NOT <FSET? ,MARX ,TOUCHBIT>>
|
|
<NOT <IN? ,PROTAGONIST ,LOUIS-CHAIR>>>
|
|
<CANT-REACH ,MARX>)
|
|
(<AND <VERB? MOVE REMOVE TAKE LOOK-BEHIND>
|
|
<NOT <FSET? ,MARX ,TOUCHBIT>>>
|
|
<TELL
|
|
"The portrait seems to adhere more closely to the wall. These proud red
|
|
walls shall never render up the hero of the revolution
|
|
to a carpetbagging, imperialistic capitalist seeking booty." CR>)
|
|
(<AND <VERB? TAKE>
|
|
<FSET? ,MARX ,TOUCHBIT>>
|
|
<TELL
|
|
"The hero has suffered indignity enough. Never he to be taken away as
|
|
capitalist booty!" CR>)>>
|
|
|
|
<OBJECT SAFE
|
|
;(LOC KREMLIN)
|
|
(DESC "safe")
|
|
(LDESC
|
|
"A safe has been revealed high on the wall where the portrait of the
|
|
Father of our Revolution has once proundly hung.")
|
|
(SYNONYM SAFE LOCK)
|
|
(ADJECTIVE UNIVERSIAL)
|
|
(FLAGS NDESCBIT CONTBIT SEARCHBIT LOCKEDBIT)
|
|
(ACTION SAFE-F)>
|
|
|
|
;"phrasebit = points for unlocking"
|
|
|
|
<ROUTINE SAFE-F ()
|
|
<COND (<AND <TOUCHING? ,SAFE>
|
|
<NOT <IN? ,PROTAGONIST ,LOUIS-CHAIR>>>
|
|
<CANT-REACH ,SAFE>)
|
|
(<AND <VERB? EXAMINE>
|
|
<NOT <FSET? ,SAFE ,OPENBIT>>>
|
|
<TELL
|
|
"In keeping with the spirit of international brotherhood and with the
|
|
lofty theme of the Lennon's song \"Imagine,\" the safe is kept closed
|
|
only by a very simple universal lock, which can be opened by any kind
|
|
of key." CR>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,SAFE>
|
|
<NOUN-USED ,SAFE ,W?LOCK>>
|
|
<COND (<PRSO? ,CLOCK ,CLOCK-KEY>
|
|
<PERFORM ,V?UNLOCK ,SAFE ,CLOCK-KEY>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "The lock's too small." CR>)>)
|
|
(<AND <VERB? UNLOCK OPEN>
|
|
<PRSI? ,CLOCK ,CLOCK-KEY>
|
|
<FSET? ,SAFE ,LOCKEDBIT>>
|
|
<COND (<NOT <FSET? ,SAFE ,PHRASEBIT>>
|
|
<FSET ,SAFE ,PHRASEBIT>
|
|
<UPDATE-SCORE>)>
|
|
<FCLEAR ,SAFE ,LOCKEDBIT>
|
|
<TELL
|
|
"By inserting the clock key into the safe and turning, the safe is unlocked."
|
|
CR>)
|
|
(<AND <VERB? UNLOCK OPEN>
|
|
<PRSI? ,CLOCK ,CLOCK-KEY>>
|
|
<SETG PRSI <>>
|
|
<V-UNLOCK>)
|
|
(<VERB? LOCK>
|
|
<COND (<FSET? ,SAFE ,LOCKEDBIT>
|
|
<TELL ,ALREADY-IS>)
|
|
(T
|
|
<FSET ,SAFE ,LOCKEDBIT>
|
|
<TELL "The safe ">
|
|
<COND (<FSET? ,SAFE ,OPENBIT>
|
|
<TELL "closes shut and ">)>
|
|
<FCLEAR ,SAFE ,OPENBIT>
|
|
<TELL "is now locked." CR>)>)>>
|
|
|
|
<OBJECT REVOLUTION
|
|
(LOC SAFE)
|
|
(DESC "revolution")
|
|
(SYNONYM REVOLUTION)
|
|
(FLAGS TAKEBIT)
|
|
(ACTION REVOLUTION-F)>
|
|
|
|
<ROUTINE REVOLUTION-F ()
|
|
<COND (<VERB? EXAMINE READ>
|
|
<TELL
|
|
"It reads, \"When you really need to turn around a situation, go ahead
|
|
and revolve it.\"" CR>)>>
|
|
|
|
<ROOM PHARMACY
|
|
(LOC ROOMS)
|
|
(DESC "Pharmacy")
|
|
(FLAGS INDOORSBIT)
|
|
(GLOBAL MANOR DUELING)
|
|
(ACTION PHARMACY-F)>
|
|
|
|
<ROUTINE PHARMACY-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"Aaah... Choo! Oh, of course, in you come tracking your germs.|
|
|
|
|
|
Sniff... sniff.|
|
|
|
|
|
You're standing upon a rubberized non-slip bathroom mat. Handrails,
|
|
installed here as an extra precaution, run along the walls.||">
|
|
<COND (<FSET? ,CABINET ,OPENBIT>
|
|
<TELL
|
|
"The open medicine cabinet is cram packed full of a variety of medicines.">)
|
|
(T
|
|
<TELL
|
|
"You look a little peaked to yourself, reflected in the mirror of
|
|
the medicine cabinet.">)>)>>
|
|
|
|
<OBJECT BOX
|
|
(LOC PHARMACY)
|
|
(DESC "cardboard box")
|
|
(FDESC
|
|
"A cardboard box, about one-foot square and empty of its value pack of
|
|
medicines, sits on the floor.")
|
|
(SYNONYM BOX)
|
|
(ADJECTIVE CARDBOARD)
|
|
(FLAGS TAKEBIT CONTBIT OPENBIT SEARCHBIT)
|
|
(CAPACITY 10)
|
|
;(ACTION BOX-F)>
|
|
|
|
<OBJECT CABINET
|
|
(LOC PHARMACY)
|
|
(DESC "medicine cabinet")
|
|
(SYNONYM CHEST CABINET)
|
|
(ADJECTIVE MEDICINE)
|
|
(FLAGS CONTBIT SEARCHBIT NDESCBIT)
|
|
(CAPACITY 10)
|
|
(ACTION CABINET-F)>
|
|
|
|
<ROUTINE CABINET-F ()
|
|
<COND (<AND <VERB? OPEN>
|
|
<NOT <FSET? ,CABINET ,OPENBIT>>>
|
|
<FSET ,CABINET ,OPENBIT>
|
|
<TELL
|
|
"The cabinet creaks on its hinges, some would say from overuse.|
|
|
|
|
|
The cabinet is crowded to pharmaceutical proportions with a panoply of pills,
|
|
lozenges and elixirs -- hey, you can't be too careful, with what's going
|
|
around these days -- including some remedies for afflictions that, yes,
|
|
haven't even afflicted anyone yet. But it's better to be safe than sorry." CR>)
|
|
(<AND <VERB? SEARCH LOOK-INSIDE>
|
|
<FSET? ,CABINET ,OPENBIT>>
|
|
<PERFORM ,V?EXAMINE ,MEDICINES>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT MEDICINES
|
|
(LOC CABINET)
|
|
(DESC "variety of medicines")
|
|
(SYNONYM VARIETY MEDICINES MEDICINE ELIXIR ELIXIRS PILL PILLS LOSENGES
|
|
CURE CURES REMEDY REMEDIES NOSTRUM)
|
|
(ADJECTIVE RHEUMATOID)
|
|
(FLAGS DESC-IN-ROOMBIT TRYTAKEBIT) ;"desc-in-roombit so no redundancy"
|
|
(ACTION MEDICINES-F)>
|
|
|
|
<ROUTINE MEDICINES-F ()
|
|
<COND (<VERB? TAKE>
|
|
<TELL
|
|
"Oh, no, no, I couldn't survive without my medicines." CR>)
|
|
(<VERB? EXAMINE READ>
|
|
<TELL
|
|
"I collect varieties of medicines like some people collect wines.
|
|
You never know what'll ail you, and usually it's everything at once.
|
|
There are cures for catastrophic illness, remedies for ringworms, pills
|
|
for palpitations, and elixirs for everything else.">
|
|
<COND (<IN? ,OLD-BOTTLE ,CABINET>
|
|
<TELL CR CR
|
|
"Then there's one old, empty bottle that should've been thrown
|
|
out centuries ago.">)>
|
|
<CRLF>)
|
|
(<VERB? OPEN>
|
|
<TELL
|
|
"The \"childproof\" caps are enough to make it impossible." CR>)>>
|
|
|
|
<OBJECT OLD-BOTTLE
|
|
(LOC CABINET)
|
|
(DESC "old bottle")
|
|
(SYNONYM BOTTLE)
|
|
(ADJECTIVE OLD RARE GLASS ANTIQUE)
|
|
(FLAGS TAKEBIT VOWELBIT)
|
|
(ACTION OLD-BOTTLE-F)>
|
|
|
|
;"HEARDBIT = input was PUT BOTTLE ON MANTEL for V-YES question"
|
|
|
|
<ROUTINE OLD-BOTTLE-F ()
|
|
<COND (<AND <VERB? TAKE>
|
|
<NOT <FSET? ,OLD-BOTTLE ,TOUCHBIT>>
|
|
;<EQUAL? <ITAKE> T>
|
|
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
|
|
<TELL
|
|
"You can go ahead and have that old thing anyway. It was here before I
|
|
moved in." CR>)
|
|
(<AND <VERB? TAKE>
|
|
<IN? ,OLD-BOTTLE ,MANTEL>>
|
|
<TELL
|
|
"Hands off, Indian giver! That antique bottle is mine now." CR>)
|
|
(<AND <VERB? SHOW>
|
|
<PRSI? ,GLOBAL-ROOM ,DUELING>
|
|
<EQUAL? ,HERE ,ID-ROOM>>
|
|
<TELL
|
|
"Mmmm... Very handsome. Yes! I'd simply love to have it." CR>)
|
|
(<VERB? EXAMINE LOOK-INSIDE>
|
|
<TELL
|
|
"It's a small and delicately sculpted glass bottle, looking to be hundreds
|
|
of years old. The bottle is empty and has no lid." CR>)
|
|
(<VERB? THROW MUNG KILL KICK>
|
|
<REMOVE ,OLD-BOTTLE>
|
|
<TELL "The fragile bottle is smashed into smithereens." CR>)
|
|
(<AND <EQUAL? ,HERE ,ID-ROOM>
|
|
<OR <VERB? DROP>
|
|
<AND <VERB? PUT PUT-ON>
|
|
<EQUAL? ,PRSO ,OLD-BOTTLE>
|
|
;<NOT <EQUAL? ,PRSI? ,MANTEL>>>>>
|
|
<COND (<AND <VERB? PUT-ON>
|
|
<PRSI? ,MANTEL>>
|
|
<FSET ,OLD-BOTTLE ,HEARDBIT>
|
|
;<MOVE ,OLD-BOTTLE ,MANTEL>)>
|
|
<SETG AWAITING-REPLY 1>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL
|
|
"Umm... Do you really think it makes the right statement there?" CR>)>>
|
|
|
|
<OBJECT MAT
|
|
(LOC PHARMACY)
|
|
(DESC "rubber mat")
|
|
(SYNONYM MAT)
|
|
(ADJECTIVE RUBBER RUBBERIZED NO-SLIP)
|
|
(FLAGS TRYTAKEBIT DESC-IN-ROOMBIT)
|
|
(ACTION MAT-F)>
|
|
|
|
<ROUTINE MAT-F ()
|
|
<COND (<VERB? TAKE>
|
|
<TELL
|
|
"Oh, oh, my back! The old discs are slipping again, and the strain is
|
|
taking its toll. I'm going to have to
|
|
rifle the cabinet again in search of that old rheumatoid nostrum. Forget
|
|
the mat. It'd be as dangerous as a ski slope to walk in here without
|
|
it on the floor." CR>)
|
|
(<VERB? SIT CLIMB-ON>
|
|
<WASTES>)>>
|
|
|
|
<ROOM ATTIC
|
|
(LOC ROOMS)
|
|
(DESC "Attic")
|
|
(UP PER ATTIC-EXIT)
|
|
(DOWN PER ATTIC-EXIT)
|
|
(FLAGS INDOORSBIT)
|
|
(GLOBAL MANOR DUELING STAIRS)
|
|
(ACTION ATTIC-F)>
|
|
|
|
;"ATTIC phrasebit = turned around to right-side-up"
|
|
|
|
<ROUTINE ATTIC-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"The attic is where the oxymoron is rumored to have been locked up
|
|
recently for years and years. There doesn't seem to be even a shred of
|
|
hard evidence, though, for such a secret rumor.">
|
|
<COND (<FSET? ,ATTIC ,PHRASEBIT>
|
|
<TELL
|
|
" But the attic, once upside-down, has been set right by your turning
|
|
it around.">)
|
|
(T
|
|
<TELL
|
|
" A funny thing though -- the place is upside-down: You're standing on
|
|
the ceiling with the floor above as the roof over your head.">)>
|
|
<TELL CR CR "A sturdy, rickety stairway leads ">
|
|
<COND (<FSET? ,ATTIC ,PHRASEBIT>
|
|
<TELL "down">)
|
|
(T
|
|
<TELL "up">)>
|
|
<TELL " from here.">)>>
|
|
|
|
<ROUTINE ATTIC-EXIT ()
|
|
<COND (<OR <AND <EQUAL? ,P-WALK-DIR ,P?DOWN>
|
|
<NOT <FSET? ,ATTIC ,PHRASEBIT>>>
|
|
<AND <EQUAL? ,P-WALK-DIR ,P?UP>
|
|
<FSET? ,ATTIC ,PHRASEBIT>>>
|
|
<TELL "But the stairs lead ">
|
|
<COND (<FSET? ,ATTIC ,PHRASEBIT>
|
|
<TELL "down">)
|
|
(T
|
|
<TELL "up">)>
|
|
<TELL ,PERIOD>
|
|
<RFALSE>)
|
|
(<EQUAL? ,P-WALK-DIR ,P?UP>
|
|
<RETURN ,ID-ROOM>)
|
|
(T
|
|
<RETURN ,KREMLIN>)>>
|
|
|
|
<ROUTINE ATTIC-ENTER ()
|
|
<COND (<AND <EQUAL? ,HERE ,ID-ROOM>
|
|
<FSET? ,ATTIC ,PHRASEBIT>>
|
|
<TELL "The " D ,STAIRS "s have seemed to vanish." CR>
|
|
<RFALSE>)
|
|
(<AND <EQUAL? ,HERE ,KREMLIN>
|
|
<NOT <FSET? ,ATTIC ,PHRASEBIT>>>
|
|
<CANT-SEE <> "stairs">
|
|
<RFALSE>)>
|
|
<TELL "You walk ">
|
|
<COND (<EQUAL? ,HERE ,ID-ROOM>
|
|
<TELL "down">)
|
|
(T
|
|
<TELL "up">)>
|
|
<TELL " the staircase." CR CR>
|
|
<RETURN ,ATTIC>>
|
|
|