minizork2-1988/wizard.zil

1220 lines
36 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.

"WIZARD for
Mini-Zork II: The Wizard of Frobozz
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
<OBJECT WIZARD
(DESC "Wizard of Frobozz")
(LDESC "The Wizard of Frobozz is here, eyeing you warily.")
(SYNONYM WIZARD MAN)
(ADJECTIVE LITTLE FROBOZZ OLD)
(FLAGS ACTORBIT CONTBIT OPENBIT)
(ACTION WIZARD-F)>
<ROUTINE WIZARD-F ("OPTIONAL" (RARG ,M-OBJECT))
<COND (<OR <EQUAL? ,WINNER ,WIZARD>
<HELLO? ,WIZARD>>
<TELL
"The Wizard seems surprised, much as you might be if a dog talked." CR>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,WIZARD>>
<REMOVE-CAREFULLY ,PRSO>
<COND (<BOMB? ,PRSO>
<COND (<IN? ,DEMON ,PENTAGRAM-ROOM>
<MOVE ,PRSO ,HERE>
<TELL
"The wizard accepts this final folly resignedly." CR>)
(T
<REMOVE ,WIZARD>
<TELL
,WAVES-WAND "and says, \"Flower!\" Indeed, the bomb becomes a lovely bouquet.
Both Wizard and flowers disappear." CR>)>)
(T
<TELL "He places the " D ,PRSO " under his robe." CR>
<NOW-DARK?>)>)
(<VERB? ATTACK MUNG>
<REMOVE ,WIZARD>
<COND (<IN? ,WAND ,WIZARD>
<TELL ,WAVES-WAND "and chants, \"Freeze!\"">)>
<COND (<NOT <FSET? ,DEMON ,INVISIBLE>>
<TELL
" Nothing happens! Terrified, the wizard dashes from the room." CR>)
(T
<SETG SPELL? ,S-FREEZE>
<PUTP ,ADVENTURER ,P?ACTION MAGIC-ACTOR>
<ENABLE <QUEUE I-WIZARD 10>>
<TELL " You suddenly cannot move." CR>)>)>>
<ROUTINE I-WIZARD ("AUX" CAST-PROB (PCNT 0) F (WLOC <LOC ,WINNER>))
<ENABLE <QUEUE I-WIZARD 4>>
<COND (,DEAD
<RFALSE>)
(,SPELL?
<COND (<EQUAL? ,SPELL? ,S-FLOAT>
<COND (<EQUAL? ,HERE ,TOP-OF-WELL>
<JIGS-UP "You plunge down the well.">
<RTRUE>)
(<AND <FSET? ,HERE ,NONLANDBIT>
<NOT <EQUAL? ,HERE ,CIRCULAR-ROOM
,VOLCANO-BOTTOM>>>
<JIGS-UP "You plunge down the volcano.">
<RTRUE>)>)
(<EQUAL? ,SPELL? ,S-FEEBLE>
<SETG LOAD-ALLOWED 100>)
(<EQUAL? ,SPELL? ,S-FUMBLE>
<SETG FUMBLE-NUMBER 7>
<SETG FUMBLE-PROB 8>)>
<COND (<GET ,SPELL-STOPS ,SPELL?>
<TELL <GET ,SPELL-STOPS ,SPELL?> CR>)>
<PUTP ,ADVENTURER ,P?ACTION 0>
<SETG SPELL? <>>
<RTRUE>)>
<COND (<IN? ,DEMON ,PENTAGRAM-ROOM>
<DISABLE <INT I-WIZARD>>
<COND (<NOT <IN? ,WIZARD ,PENTAGRAM-ROOM>>
<MOVE ,WIZARD ,PENTAGRAM-ROOM>
<COND (<IN? ,WINNER ,PENTAGRAM-ROOM>
<TELL
"The Wizard appears, astonished to see his servant conversing with a common
adventurer! He waves his wand frantically. \"Frobizz! Frobozzle! Frobnoid!\"
The demon guffaws. \"You no longer control the Black Crystal, hedge-wizard!
Your wand is powerless! Your doom is sealed!\" The demon turns to you,
expectantly." CR>)>)>
<RTRUE>)>
<COND (<AND <NOT ,LIT>
,LAMP-BURNED-OUT
<G? ,SCORE 200>>
<SETG ALWAYS-LIT T>
<SETG LIT T>
<TELL
"You hear the Wizard. \"Dear me, you're in a Fix.\" Chuckling, he incants,
\"Fluoresce!\" It is no longer dark." CR>
<RTRUE>)>
<COND (<AND <LOC ,WIZARD>
<PROB 80>>
<COND (<AND ,LIT <IN? ,WIZARD ,HERE>>
<TELL "The Wizard vanishes." CR>)>
<REMOVE ,WIZARD>
<RTRUE>)>
<COND (<AND <PROB 10>
<NOT <EQUAL? ,HERE ,POSTS-ROOM ,POOL-ROOM>>>
<COND (<NOT ,LIT>
<TELL ,MOVED-IN-DARK>)
(<FSET? ,HERE ,NONLANDBIT>
<TELL
"The Wizard appears, floating nonchalantly in the air beside you." CR>)
(T
<TELL
"An old, robed man appears suddenly. He is wearing a pointed hat with
astrological signs, and has a long, unkempt beard." CR>)>
<COND (<IN? ,PALANTIR-4 ,ADVENTURER>
<REMOVE ,WIZARD>
<COND (,LIT
<TELL
"The Wizard notices the Black Crystal, and hastily vanishes." CR>)
(T
<TELL ,MOVED-IN-DARK>)>
<RTRUE>)
(<PROB 20>
<REMOVE ,WIZARD>
<COND (,LIT
<TELL
"He mutters something (muffled by his beard) and disappears
as suddenly as he came." CR>)
(T
<TELL "You hear low, confused muttering." CR>)>
<RTRUE>)>
<COND (<IN? ,PALANTIR-1 ,ADVENTURER>
<SET PCNT <+ .PCNT 1>>)>
<COND (<IN? ,PALANTIR-2 ,ADVENTURER>
<SET PCNT <+ .PCNT 1>>)>
<COND (<IN? ,PALANTIR-3 ,ADVENTURER>
<SET PCNT <+ .PCNT 1>>)>
<SET CAST-PROB <- 80 <* .PCNT 20>>>
<COND (,LIT
<TELL
"The Wizard draws forth his wand and waves it in your direction. It
begins to glow with a faint blue glow." CR>)
(T
<TELL
"You spot the Wizard, illuminated by the faint blue glow of a magic wand,
pointed at you!" CR>)>
<COND (<PROB .CAST-PROB>
<MOVE ,WIZARD ,HERE>
<SETG SPELL? <RANDOM ,SPELLS>>
<PUTP ,ADVENTURER ,P?ACTION MAGIC-ACTOR>
<ENABLE
<QUEUE I-WIZARD <+ 5 <RANDOM <- 30 <* 5 .PCNT>>>>>>
<COND (<PROB 75>
<TELL
"The Wizard, in a deep and resonant voice, speaks the word \""
<GET ,SPELL-NAMES ,SPELL?> "!\" He then vanishes, cackling gleefully." CR>)
(T
<TELL
"The Wizard whispers a word beginning with \"F,\" and disappears." CR>)>
<REMOVE ,WIZARD>
<COND (<GET ,SPELL-HINTS ,SPELL?>
<TELL <GET ,SPELL-HINTS ,SPELL?> CR>)>
<COND (<EQUAL? ,SPELL? ,S-FALL>
<COND (<FSET? .WLOC ,VEHBIT>
<TELL
"You suddenly fall out of the " D .WLOC ,INVISIBLE-HAND>
<COND (<EQUAL? ,HERE ,TOP-OF-WELL>
<JIGS-UP
"You plunge down the well.">)
(<AND <FSET? ,HERE ,NONLANDBIT>
<NOT <EQUAL? ,HERE
,VOLCANO-BOTTOM
,CIRCULAR-ROOM>>>
<JIGS-UP
"You plunge down the volcano.">)
(T
<MOVE ,WINNER ,HERE>)>)>)
(<EQUAL? ,SPELL? ,S-FLOAT>
<TELL "You slowly rise into the air">
<COND (<FSET? .WLOC ,VEHBIT>
<MOVE ,WINNER ,HERE>
<TELL ", leaving the " D .WLOC>)>
<TELL ", stopping about five feet up." CR>)
(<EQUAL? ,SPELL? ,S-FEEBLE>
<SETG LOAD-ALLOWED 50>
<COND (<SET F <FIRST? ,WINNER>>
<TELL
"You feel so weak, you drop the " D .F ,PERIOD-CR>
<MOVE .F .WLOC>)>)
(<EQUAL? ,SPELL? ,S-FUMBLE>
<SETG FUMBLE-NUMBER 3>
<SETG FUMBLE-PROB 25>
<COND (<SET F <FIRST? ,ADVENTURER>>
<TELL
"Oops! You dropped the " D .F ,PERIOD-CR>
<MOVE .F .WLOC>)>)>
<RTRUE>)
(<PROB 50>
<REMOVE ,WIZARD>
<TELL
"There is a crackling noise. Blue smoke curls from the Wizard's
sleeve. He sighs and disappears." CR>)
(<PROB 50>
<REMOVE ,WIZARD>
<TELL
"The Wizard incants \"" <RANDOM-ELEMENT ,SPELL-NAMES> "!\" but nothing
happens. With an embarrassed glance in your direction, he vanishes." CR>)
(T
<MOVE ,WIZARD ,HERE>
<TELL
"The Wizard seems about to say something, but thinks better of it,
and peers at you from under his bushy eyebrows." CR>)>)>>
<ROUTINE MAGIC-ACTOR ("AUX" V)
<COND (,SPELL?
<COND (<EQUAL? ,SPELL? ,S-FALL>
<COND (<OR <VERB? CLIMB CLIMB-DOWN>
<AND <VERB? WALK>
<GETPT ,HERE ,P?DOWN>>>
<SET V <GETPT ,HERE ,P?GLOBAL>>
<COND (<ZMEMQB ,BRIDGE .V <PTSIZE .V>>
<JIGS-UP
"You trip on something and fall over the edge of the bridge.">)
(T
<TELL "You trip on your own feet, ">
<COND (<PROB 25>
<JIGS-UP
"and the resulting fall does you in.">)
(T
<TELL
"but regain your balance and avoid a fatal fall." CR>)>)>)
(<VERB? ENTER>
<TELL
"You get in the " D ,PRSO " but you fall out again" ,INVISIBLE-HAND>)>)
(<EQUAL? ,SPELL? ,S-FLOAT>
<COND (<VERB? DIAGNOSE WAIT>
<RFALSE>)
(<VERB? WALK>
<TELL
"Your feet are nowhere near the ground." CR>)
(<VERB? DROP>
<MOVE ,PRSO ,HERE>
<TELL "The " D ,PRSO " drops to the ground." CR>)
(<AND <VERB? TAKE>
<IN? ,PRSO ,HERE>>
<TELL
"You're floating and can't reach it." CR>)>)
(<EQUAL? ,SPELL? ,S-FREEZE>
<COND (<VERB? DIAGNOSE WAIT>
<RFALSE>)
(T
<TELL
"You are frozen solid. You might as well wait it out, because you
can't do anything else in this state." CR>)>)
(<AND <EQUAL? ,SPELL? ,S-FENCE>
<VERB? WALK>>
<TELL "An invisible force bars your way." CR>
<RTRUE>)
(<AND <EQUAL? ,SPELL? ,S-FERMENT>
<VERB? WALK>
<IN? ,WINNER ,HERE>>
<TELL
"Oops, you seem a little unsteady... I'm not sure you got where
you intended going." CR CR>
<RANDOM-WALK>)>)>>
<ROUTINE RANDOM-WALK ("AUX" P TX L S (D <>))
<SET P 0>
<REPEAT ()
<COND (<L? <SET P <NEXTP ,HERE .P>> ,LOW-DIRECTION>
<COND (.D
<SET S ,SPELL?>
<SETG SPELL? <>>
<SETG WINNER ,ADVENTURER>
<MOVE ,WINNER ,HERE>
<DO-WALK .D>
<SETG SPELL? .S>)>
<RETURN>)
(T
<SET TX <GETPT ,HERE .P>>
<SET L <PTSIZE .TX>>
<COND (<OR <EQUAL? .L ,UEXIT>
<AND <EQUAL? .L ,CEXIT>
<VALUE <GETB .TX ,CEXITFLAG>>>
<AND <EQUAL? .L ,DEXIT>
<FSET? <GETB .TX ,DEXITOBJ> ,OPENBIT>>>
<COND (<NOT .D>
<SET D .P>)
(<PROB 50>
<SET D .P>)>)>)>>>
<GLOBAL SPELL-HANDLED? <>> ;"T if handled before I-SPELL runs"
<GLOBAL WAND-ON <>>
<GLOBAL SPELL-USED <>>
<GLOBAL SPELL-VICTIM <>>
<GLOBAL SPELL? <>>
<CONSTANT SPELLS 9>
<CONSTANT S-FEEBLE 1>
<CONSTANT S-FUMBLE 2>
<CONSTANT S-FREEZE 3>
<CONSTANT S-FALL 4>
<CONSTANT S-FERMENT 5>
<CONSTANT S-FLOAT 6>
<CONSTANT S-FIREPROOF 7>
<CONSTANT S-FENCE 8>
<CONSTANT S-FANTASIZE 9>
<GLOBAL SPELL-NAMES
<LTABLE
"Feeble" "Fumble" "Freeze" "Fall" "Ferment" "Float" "Fireproof" "Fence"
"Fantasize">>
<GLOBAL SPELL-HINTS
<LTABLE
"All at once you feel very tired."
<>
"Your limbs suddenly feel like stone. You can't move a muscle."
<>
"You begin to feel lightheaded."
<>
<>
<>
<>>>
<GLOBAL SPELL-STOPS
<LTABLE
"You feel more energetic now."
<>
"Your little finger begins to twitch, and then your whole body is free
again."
<>
"Your head is clearer now."
"You sink quietly down again."
<>
<>
<>>>
<GLOBAL FANTASIES
<LTABLE "pile of jewels" "gold ingot" "basilisk"
"bulging chest" "yellow sphere" "grue"
"convention of wizards" "copy of ZORK I">>
<OBJECT WAND
(IN WIZARD)
(DESC "magic wand")
(SYNONYM WAND)
(ADJECTIVE MAGIC)
(VALUE 30)
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT)
(ACTION WAND-F)>
<ROUTINE WAND-F ()
<COND (<AND <VERB? TAKE PUT GIVE>
<IN? ,WAND ,WIZARD>>
<TELL "The Wizard snatches it away." CR>)
(<AND <VERB? WAVE>
<EQUAL? ,PRSI ,GRUE>>
<TELL "A gurgling hiss issues from the darkness." CR>)
(<VERB? WAVE RUB RAISE>
<COND (<AND <EQUAL? ,PRSO ,WAND>
<NOT <IN? ,WAND ,WINNER>>>
<TELL "You don't have the wand!" CR>
<RTRUE>)
(<OR ,WAND-ON ,SPELL-USED ,SPELL-VICTIM>
<TELL "A magic wand must recharge after use!" CR>
<RTRUE>)
(<VERB? WAVE>
<COND (<AND <EQUAL? ,PRSO ,WAND> ,PRSI>
<SETG WAND-ON ,PRSI>
<SETG WAND-ON-LOC ,HERE>)
(T
<TELL "At what?" CR>
<RTRUE>)>)
(<VERB? RUB>
<COND (<EQUAL? ,PRSI ,WAND>
<SETG WAND-ON ,PRSO>)
(T
<TELL "Touch what?" CR>
<RTRUE>)>)
(<VERB? RAISE>
<TELL "The wand grows warm and seems to vibrate." CR>
<RTRUE>)>
<COND (,WAND-ON
<SETG SPELL-USED <>>
<SETG SPELL-VICTIM <>>
<COND (<EQUAL? ,WAND-ON ,ME ,WAND>
<SETG WAND-ON <>>
<TELL "A safety interlock prevents this." CR>)
(T
<TELL
"The wand grows warm, the " D ,WAND-ON " glows with magical essences,
and you feel suffused with power." CR>)>
<ENABLE <QUEUE I-WAND 2>>)>
T)>>
<GLOBAL WAND-ON-LOC <>>
<ROUTINE I-WAND ()
<COND (<AND ,WAND-ON
<OR <EQUAL? ,WAND-ON-LOC ,HERE>
<IN? ,WAND-ON ,WINNER>>>
<SETG WAND-ON <>>
<TELL
"The " D ,WAND-ON " stops glowing and the power within you weakens." CR>)
(T
<SETG WAND-ON <>>
<RFALSE>)>>
<ROOM GUARDED-ROOM
(IN ROOMS)
(DESC "Guarded Room")
(NORTH TO ICE-ROOM)
(SOUTH TO TROPHY-ROOM IF WIZ-DOOR IS OPEN)
(IN TO TROPHY-ROOM IF WIZ-DOOR IS OPEN)
(FLAGS RLANDBIT)
(GLOBAL WIZ-DOOR)
(ACTION GUARDED-ROOM-F)>
<ROUTINE GUARDED-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This room is cobwebby and musty, but tracks in the dust indicate recent
visitors. To the south is a">
<COND (<FSET? ,WIZ-DOOR ,OPENBIT>
<TELL "n open">)
(T
<TELL "battered (but very strong-looking)">)>
<TELL " door. Mounted on the door is a ">
<COND (<NOT ,GUARDIAN-FED>
<TELL "nast">)
(T
<TELL "sleep">)>
<TELL
"y-looking lizard head, with sharp teeth and beady eyes. ">
<COND (<IN? ,CANDY ,WINNER>
<TELL "The lizard is sniffing at you. ">)
(<NOT ,GUARDIAN-FED>
<TELL "The eyes follow your approach. ">)>
<TELL "To the north and northeast, corridors exit." CR>)>>
<OBJECT WIZ-DOOR
(IN LOCAL-GLOBALS)
(DESC "door")
(SYNONYM DOOR)
(ADJECTIVE BATTERED)
(FLAGS DOORBIT CONTBIT)
(ACTION WIZ-DOOR-F)>
<ROUTINE WIZ-DOOR-F ()
<COND (<AND <NOT ,GUARDIAN-FED>
<VERB? OPEN UNLOCK>>
<TELL "The lizard snaps at you as you reach for the door." CR>)
(<VERB? UNLOCK>
<COND (,WIZ-DOOR-FLAG
<TELL ,ALREADY>)
(<EQUAL? ,PRSI ,GOLD-KEY>
<SETG WIZ-DOOR-FLAG T>
<TELL "The door is unlocked." CR>)
(T
<TELL ,DOESNT-FIT-LOCK>)>)
(<VERB? LOCK>
<COND (<NOT ,WIZ-DOOR-FLAG>
<TELL ,ALREADY>)
(<EQUAL? ,PRSI ,GOLD-KEY>
<SETG WIZ-DOOR-FLAG <>>
<TELL "The door is now locked." CR>)
(T
<TELL ,DOESNT-FIT-LOCK>)>)
(<VERB? OPEN CLOSE>
<COND (,WIZ-DOOR-FLAG
<OPEN-CLOSE>)
(<VERB? OPEN>
<TELL "The door is locked!" CR>)>)>>
<GLOBAL WIZ-DOOR-FLAG <>>
<GLOBAL GUARDIAN-FED <>>
<OBJECT DOOR-KEEPER
(IN GUARDED-ROOM)
(DESC "lizard")
(SYNONYM GUARDIAN LIZARD HEAD)
(ADJECTIVE NASTY)
(FLAGS NDESCBIT)
(ACTION DOOR-KEEPER-F)>
<ROUTINE DOOR-KEEPER-F ()
<COND (<AND <VERB? ALARM>
,GUARDIAN-FED>
<TELL "You can't wake it." CR>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,DOOR-KEEPER>>
<COND (,GUARDIAN-FED
<TELL "You can't wake it." CR>)
(<EQUAL? ,PRSO ,CANDY>
<SETG GUARDIAN-FED T>
<REMOVE ,CANDY>
<TELL
,GREEDILY-DEVOURS "the candy, package and all, and then its eyes close.
(Lizards are known to sleep a long time while digesting meals.)" CR>)
(<BOMB? ,PRSO>
<REMOVE ,PRSO>
<TELL
,GREEDILY-DEVOURS "it. After a while, you hear a pop and the guardian's
eyes bulge out. It hisses angrily." CR>)
(<EQUAL? ,PRSO ,PALANTIR-1 ,PALANTIR-2 ,PALANTIR-3>
<MOVE ,PRSO ,HERE>
<TELL
,GREEDILY-DEVOURS "the sphere but then spits it out." CR>)
(T
<REMOVE ,PRSO>
<TELL
,GREEDILY-DEVOURS "the " D ,PRSO ,PERIOD-CR>)>)
(<VERB? ATTACK MUNG>
<TELL "The guardian seems impervious." CR>)>>
<ROOM TROPHY-ROOM
(IN ROOMS)
(DESC "Trophy Room")
(FLAGS RLANDBIT)
(NORTH TO GUARDED-ROOM IF WIZ-DOOR IS OPEN)
(OUT TO GUARDED-ROOM IF WIZ-DOOR IS OPEN)
(WEST TO AQUARIUM-ROOM)
(EAST TO WIZARDS-WORKSHOP)
(VALUE 10)
(GLOBAL WIZ-DOOR)
(PSEUDO "OWL" TROPHY-PSEUDO)
(ACTION TROPHY-ROOM-F)>
<ROUTINE TROPHY-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The Wizard's trophy room is filled with various memorabilia. On one wall is
the Wizard's D. T. (Doctor of Thaumaturgy) degree from GUE Tech. Several old
magic wands are mounted on a wand rack. There is a stuffed owl on a perch.
Corridors lead east and west; a door to the north is ">
<COND (<FSET? ,WIZ-DOOR ,OPENBIT>
<TELL "open">)
(T
<TELL "closed">)>
<TELL ,PERIOD-CR>)>>
<ROUTINE TROPHY-PSEUDO ()
<COND (<VERB? TAKE RUB>
<TELL
"As you near it, you get a nasty (but fortunately unfatal) shock." CR>)>>
<OBJECT DEGREE
(IN TROPHY-ROOM)
(DESC "degree")
(SYNONYM DEGREE DIPLOMA)
(FLAGS NDESCBIT TRYTAKEBIT READBIT)
(TEXT "The text is in an obscure tongue.")
(ACTION TROPHY-PSEUDO)>
<OBJECT WANDS
(IN TROPHY-ROOM)
(DESC "set of used wands")
(SYNONYM WANDS WAND RACK SET)
(ADJECTIVE WORN USED)
(FLAGS NDESCBIT TRYTAKEBIT)
(ACTION TROPHY-PSEUDO)>
<ROOM WIZARDS-WORKSHOP
(IN ROOMS)
(DESC "Wizard's Workshop")
(LDESC
"Halls lead west and south. The Wizard's workbench dominates the room. It is
stained from years of use, and is deeply gouged as though some huge clawed
animal was imprisoned on it. In the center of the bench, three stands - ruby,
sapphire, and diamond - form a triangle.")
(WEST TO TROPHY-ROOM)
(SOUTH TO PENTAGRAM-ROOM)
(FLAGS RLANDBIT ONBIT)>
<OBJECT WORKBENCH
(IN WIZARDS-WORKSHOP)
(DESC "Wizard's workbench")
(SYNONYM WORKBENCH BENCH TABLE)
(ADJECTIVE WORK WIZARD)
(CAPACITY 200)
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT)>
<OBJECT STAND-1
(IN WORKBENCH)
(DESC "ruby stand")
(SYNONYM STAND STANDS)
(ADJECTIVE CRYSTAL RUBY)
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT)
(CAPACITY 10)
(ACTION STAND-F)>
<OBJECT STAND-2
(IN WORKBENCH)
(DESC "sapphire stand")
(SYNONYM STAND STANDS)
(ADJECTIVE CRYSTAL SAPPHIRE)
(FLAGS NDESCBIT SURFACEBIT OPENBIT CONTBIT)
(CAPACITY 10)
(ACTION STAND-F)>
<OBJECT STAND-3
(IN WORKBENCH)
(DESC "diamond stand")
(SYNONYM STAND STANDS)
(ADJECTIVE DIAMOND CRYSTAL)
(FLAGS NDESCBIT SURFACEBIT OPENBIT CONTBIT)
(CAPACITY 10)
(ACTION STAND-F)>
<OBJECT STAND-4
(DESC "black obsidian stand")
(SYNONYM STAND STANDS)
(ADJECTIVE OBSIDIAN BLACK CRYSTAL STRANGE)
(FLAGS SURFACEBIT CONTBIT OPENBIT)
(SIZE 5)
(CAPACITY 10)
(ACTION STAND-F)>
<ROUTINE STAND-F ()
<COND (<VERB? TAKE>
<TELL "The " D ,PRSO " is firmly attached to the bench." CR>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSO ,PALANTIR-1 ,PALANTIR-2 ,PALANTIR-3>
<EQUAL? ,PRSI ,STAND-1 ,STAND-2 ,STAND-3>>
<V-PUT>
<COND (<AND <IN? ,PALANTIR-1 ,STAND-1>
<IN? ,PALANTIR-2 ,STAND-2>
<IN? ,PALANTIR-3 ,STAND-3>>
<REMOVE ,PALANTIR-1>
<REMOVE ,PALANTIR-2>
<REMOVE ,PALANTIR-3>
<MOVE ,STAND-4 ,WORKBENCH>
<TELL
"Instantly, a hum begins, and the hairs on the back of your neck stand up.
Suddenly, the spheres are gone! But amidst the three empty stands, there is
now a black stand of obsidian in which rests a strange black sphere." CR>)>
<RTRUE>)>>
<OBJECT PALANTIR-4
(IN STAND-4)
(DESC "black crystal sphere")
(LDESC "There is a strange black sphere here.")
(SYNONYM SPHERE)
(ADJECTIVE CRYSTAL STRANGE BLACK)
(FLAGS TAKEBIT TRANSBIT)
(VALUE 30)
(SIZE 10)
(ACTION SPHERE-F)>
<ROOM PENTAGRAM-ROOM
(IN ROOMS)
(DESC "Pentagram Room")
(LDESC
"Inscribed on the floor is a great pentagram drawn with black chalk.
In its center is a black circle.")
(NORTH TO WIZARDS-WORKSHOP)
(FLAGS RLANDBIT ONBIT)
(GLOBAL GLOBAL-MENHIR GLOBAL-CERBERUS)>
<OBJECT PENTAGRAM
(IN PENTAGRAM-ROOM)
(DESC "pentagram")
(SYNONYM PENTAGRAM STAR CIRCLE)
(ADJECTIVE GREAT BLACK)
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT)
(CAPACITY 200)
(ACTION PENTAGRAM-F)>
<ROUTINE PENTAGRAM-F ("OPTIONAL" (RARG ,M-BEG))
<COND (<EQUAL? .RARG ,M-BEG>
<COND (<VERB? ENTER>
<TELL "You are forced back by an invisible power." CR>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSO ,PALANTIR-4>>
<REMOVE ,PALANTIR-4>
<FCLEAR ,DEMON ,INVISIBLE>
<MOVE ,DEMON ,PENTAGRAM-ROOM>
<TELL
"A chill wind blasts from the pentagram as a dim shape appears and resolves
into a formidable-looking demon. He tests the walls of the pentagram
experimentally, then sees you! \"Greetings, oh new master! Wouldst desire a
service? For a pittance of wealth, I will gratify thy desires to the utmost
limit of my powers!\" He grins vilely." CR>)>)>>
<OBJECT DEMON
(SYNONYM DEVIL DEMON GENIE)
(DESC "demon")
(LDESC "There is a demon floating in midair here.")
(FLAGS ACTORBIT INVISIBLE)
(ACTION DEMON-F)>
<ROUTINE DEMON-F ("OPTIONAL" (RARG ,M-OBJECT) "AUX" V)
<COND (<VERB? HELLO>
<TELL "The genie grins demonically." CR>)
(<EQUAL? ,WINNER ,DEMON>
<COND (<NOT ,DEMON-PAID>
<TELL
"\"My fee is not paid! I perform no tasks for free! We demons have a
strong union these days.\"" CR>
<RFATAL>)
(<VERB? SGIVE>
<RFALSE>)
(<OR <G? <GET ,P-PRSO 0> 1>
<G? <GET ,P-PRSI 0> 1>>
<TELL "\"I will do one thing only, master!\"" CR>
<RFATAL>)
(<AND <VERB? MOVE>
<EQUAL? ,PRSO ,GLOBAL-MENHIR>>
<SETG MENHIR-POSITION 1>
<TELL
,DEMON-GONE "\"A trifle... My little finger alone was enough.\"" CR>
<DEMON-LEAVES>)
(<VERB? TAKE>
<COND (<EQUAL? ,PRSO ,GLOBAL-MENHIR>
<REMOVE ,MENHIR>
<SETG MENHIR-POSITION 2>
<TELL
,DEMON-GONE "\"Perhaps I can use it as a toothpick...\"" CR>
<DEMON-LEAVES>)
(<EQUAL? ,PRSO ,WAND>
<REMOVE ,WAND>
<TELL
"\"Gladly, oh fool!\" Cackling, the demon snatches the wand and points it at
himself. \"Free!\" he commands, as the demon and wand vanish forever." CR>
<DEMON-LEAVES <>>)
(<FSET? ,PRSO ,TAKEBIT>
<DEMON-LEAVES <>>
<REMOVE ,PRSO>
<TELL
"The demon snaps his fingers; the " D ,PRSO " and he both depart." CR>)
(T
<TELL "\"I fear that I cannot take that.\"" CR>)>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,ME>>
<COND (<EQUAL? ,PRSO ,WAND>
<REMOVE ,WIZARD>
<DEMON-LEAVES <>>
<FCLEAR ,WAND ,NDESCBIT>
<MOVE ,WAND ,HERE>
<TELL
"\"I hear and obey!\" says the demon. The Wizard cries \"Fudge!\" but aside
from a strong odor of chocolate, there is no effect. The demon plucks the
wand out of his hand and lays it before you. He vanishes as the wizard runs
from the room in terror." CR>)
(<EQUAL? ,PRSO ,GLOBAL-MENHIR>
<MOVE ,MENHIR ,PENTAGRAM-ROOM>
<FCLEAR ,MENHIR ,NDESCBIT>
<FCLEAR ,MENHIR ,TAKEBIT>
<SETG MENHIR-POSITION 3>
<TELL
"He gestures, and the menhir appears at your feet." CR>
<DEMON-LEAVES>)
(<FSET? ,PRSO ,TAKEBIT>
<MOVE ,PRSO ,PENTAGRAM-ROOM>
<TELL
"The " D ,PRSO " appears before you and settles to the ground." CR>
<DEMON-LEAVES>)
(T
<TELL "\"If only it were possible...\"" CR>)>)
(<VERB? ATTACK>
<COND (<EQUAL? ,PRSO ,GLOBAL-CERBERUS>
<TELL
"\"This may prove taxing...\" " ,DEMON-GONE "He looks rather gnawed
and scratched. He winces. \"Never did like dogs anyway... Any other
orders, oh beneficent one?\"" CR>)
(<EQUAL? ,PRSO ,WIZARD>
<REMOVE ,WIZARD>
<FCLEAR ,WAND ,NDESCBIT>
<MOVE ,WAND ,HERE>
<TELL
"The demon grins hideously. \"This has been my desire e'er since this charlatan
bent me to his service!\" " ,WAVES-WAND "fruitlessly as the demon forms himself
into a smoky cloud which envelops the Wizard. A horrible scream is heard, and
the smoke clears, leaving no trace of the Wizard but his wand." CR>
<DEMON-LEAVES>)
(<EQUAL? ,PRSO ,ME>
<DEMON-LEAVES <>>
<SETG WINNER ,ADVENTURER>
<JIGS-UP
"The demon crushes you with his enormous hand.">)
(T
<TELL
"\"I know no way to kill a " D ,PRSO ".\"" CR>)>)
(<VERB? FIND EXAMINE>
<TELL "\"I am not permitted to ">
<COND (<VERB? FIND>
<TELL "answer questions">)
(T
<TELL "perform such menial tasks">)>
<TELL
". The terms of my contract are explicit, and the penalty clauses are ...
hmm ... devilish.\"" CR>)
(T
<TELL
"\"Apologies, oh master, but even for such a one as I this is not possible.\"
He seems chagrined to have to admit this." CR>
<RTRUE>)>)
(<VERB? ATTACK MUNG>
<TELL "The demon laughs uproariously." CR>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,DEMON>>
<COND (<AND <GETPT ,PRSO ,P?VALUE>
<NOT <EQUAL? ,PRSO ,SWORD>>>
<REMOVE-CAREFULLY ,PRSO>
<SETG DEMON-HOARD <+ ,DEMON-HOARD 1>>
<SETG SCORE <+ ,SCORE 2>>
<COND (<NOT <L? ,DEMON-HOARD ,TREASURES-MAX>>
<SETG DEMON-PAID T>
<PUTP ,WIZARD ,P?LDESC
"A dejected and fearful Wizard watches from the corner.">
<TELL
"\"This paltry hoard will suffice for my fee.\"" CR>)
(T
<TELL
"\"" <GET ,DEMON-THANKS ,DEMON-HOARD> "\"" CR>
<COND (<EQUAL? ,DEMON-HOARD 8>
<TELL
"The Wizard tears his bears and looks at you as if you are a madman." CR>)>
<RTRUE>)>)
(<BOMB? ,PRSO>
<DEMON-LEAVES <>>
<TELL
"\"This violates my contract, oh fool. Thus, I am free to depart.\"" CR>)
(T
<REMOVE-CAREFULLY ,PRSO>
<TELL
"The demon takes the " D ,PRSO " and smiles balefully, revealing
enormous fangs." CR>)>)>>
<ROUTINE DEMON-LEAVES ("OPTIONAL" (NOISY? T))
<FSET ,DEMON ,INVISIBLE>
<COND (.NOISY?
<TELL "The genie departs, his agreement fulfilled." CR>)>
<SETG P-CONT <>>
<RFATAL>>
<GLOBAL DEMON-PAID <>>
<GLOBAL DEMON-HOARD 0>
<CONSTANT TREASURES-MAX 10>
<GLOBAL DEMON-THANKS
<LTABLE
"Most fine, master! But 'tis not enough. I will do a great service,
and are not great services bought at great price?"
"Very nice, but not enough!"
"Ah, truly magnificent! Keep them coming."
"Almost halfway there, oh worthy one!"
"Your generosity overwhelms me!"
"Very nice, but not enough!"
"Ah, truly magnificent! Keep them coming."
"Your generosity overwhelms me!"
"Wondrous fine, master! But one treasure is yet to be given!">>
<ROOM AQUARIUM-ROOM
(IN ROOMS)
(DESC "Aquarium Room")
(LDESC
"Here a dark hallway turns a corner. To the south is a dark room, to
the east is fitful light.")
(EAST TO TROPHY-ROOM)
(IN TO MURKY-ROOM)
(SOUTH TO WIZARDS-QUARTERS)
(FLAGS RLANDBIT ONBIT)>
<OBJECT AQUARIUM
(IN AQUARIUM-ROOM)
(DESC "aquarium")
(LDESC "Filling the northern half of the room is a huge aquarium.")
(SYNONYM AQUARIUM GLASS)
(ADJECTIVE HUGE)
(FLAGS OPENBIT CONTBIT)
(CAPACITY 200)
(ACTION AQUARIUM-F)>
<ROUTINE AQUARIUM-F ("AUX" OBJ)
<COND (<VERB? ENTER>
<DO-WALK ,P?IN>)
(<AND <VERB? LOOK-INSIDE>
<IN? ,SERPENT ,AQUARIUM>>
<TELL
"A baby serpent in the aquarium eyes you suspiciously." CR>)
(<OR <AND <VERB? MUNG ATTACK>
<EQUAL? ,PRSO ,AQUARIUM>>
<AND <VERB? THROW>
<EQUAL? ,PRSI ,AQUARIUM>>>
<COND (<EQUAL? ,PRSO ,AQUARIUM>
<COND (<NOT ,PRSI>
<RFALSE>)
(T
<SET OBJ ,PRSI>)>)
(T
<SET OBJ ,PRSO>)>
<MOVE .OBJ ,HERE>
<COND (<IN? ,DEAD-SERPENT ,HERE>
<TELL "The aquarium is already broken!" CR>)
(<BOMB? .OBJ>
<DISABLE <INT I-FUSE>>)
(<OR <FSET? .OBJ ,WEAPONBIT>
<G? <GETP .OBJ ,P?SIZE> 10>>
<REMOVE ,SERPENT>
<MOVE ,DEAD-SERPENT ,HERE>
<MOVE ,PALANTIR-3 ,AQUARIUM>
<FCLEAR ,PALANTIR-3 ,NDESCBIT>
<PUTP ,AQUARIUM ,P?LDESC
"A shattered aquarium fills the northern half of the room.">
<TELL
"The " D .OBJ " shatters the aquarium, spilling salt water, wet sand, and
an extremely annoyed sea serpent. He is having difficulty breathing, and he
seems to hold you responsible. He ">
<COND (<VERB? MUNG>
<JIGS-UP
"rends you limb from limb before he drowns in the air.">)
(T
<TELL
"slithers toward you, but expires mere inches away. A clear crystal sphere
sits amid the sand and broken glass in the aquarium." CR>)>)
(T
<TELL
"The " D .OBJ " bounces harmlessly off the glass." CR>)>)>>
<OBJECT SERPENT
(IN AQUARIUM)
(DESC "baby sea serpent")
(LDESC "There is a baby sea serpent swimming in the aquarium.")
(SYNONYM SERPENT SNAKE)
(ADJECTIVE BABY SEA)
(FLAGS ACTORBIT)
(ACTION SERPENT-F)>
<ROUTINE SERPENT-F ()
<COND (<EQUAL? ,SERPENT ,WINNER>
<TELL "The serpent only stares hungrily at you." CR>)
(<VERB? ATTACK MUNG>
<TELL
"He swims towards you, his dagger-like teeth dripping. Fortunately, he
doesn't want to crash into the aquarium wall, and contents himself with
splashing you with water." CR>)
(<AND <VERB? PUT>
<EQUAL? ,PRSO ,SERPENT>>
<TELL "Impossible!" CR>)
(<VERB? TAKE GIVE>
<JIGS-UP "He takes you instead. \"Uurrp!\"">)>>
<OBJECT DEAD-SERPENT
(DESC "dead sea serpent")
(SYNONYM SERPENT SNAKE)
(ADJECTIVE DEAD BABY SEA)
(FLAGS TAKEBIT)
(SIZE 400)
(ACTION DEAD-SERPENT-F)>
<ROUTINE DEAD-SERPENT-F ()
<COND (<VERB? TAKE>
<TELL "This may be a baby, but it's as big as a whale." CR>)>>
<ROOM MURKY-ROOM
(IN ROOMS)
(DESC "Murky Room")
;(LDESC
"The floor is made of sand, but it is hard to see anything else.")
(OUT TO AQUARIUM-ROOM)
(FLAGS RLANDBIT ONBIT)
(ACTION MURKY-ROOM-F)>
<ROUTINE MURKY-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL " The floor is sandy, and your vision seems blurred.">
<COND (<AND <IN? ,SERPENT ,AQUARIUM>
<PROB 20>>
<TELL " A shadow seems to swim by overhead.">)>
<CRLF>)
(<EQUAL? .RARG ,M-ENTER>
<COND (<IN? ,SERPENT ,AQUARIUM>
<JIGS-UP
"You drop into the aquarium with a splash, which attracts the serpent. Being
a hungry baby, he greedily eats you.">)
(T
<JIGS-UP
"You cut yourself severely on the broken glass.">)>)>>
<ROOM WIZARDS-QUARTERS
(IN ROOMS)
(DESC "Wizard's Quarters")
(NORTH TO AQUARIUM-ROOM)
(FLAGS RLANDBIT)
(ACTION WIZARD-QUARTERS-F)>
<ROUTINE WIZARD-QUARTERS-F (RARG "AUX" PICK L)
<COND (<EQUAL? .RARG ,M-LOOK ,M-FLASH>
<TELL
"This is where the Wizard of Frobozz lives. The room is "
<PICK-ONE ,WIZQDESCS> ,PERIOD-CR>)>>
<GLOBAL WIZQDESCS
<LTABLE
"almost monkish in its austerity"
"an opulently furnished seraglio out of an Arabian folktale"
"decorated in the Louis XIV style"
"overhung with palm-trees and lianas. The only furniture is a hammock"
"a suburban bedroom out of the 1950's, complete with bunk beds"
"a dim cave, its floor piled with furs and old bones">>
\
;"the palantirs"
<OBJECT PALANTIR-1
(IN DINGY-CLOSET)
(DESC "red crystal sphere")
(SYNONYM SPHERE)
(ADJECTIVE CRYSTAL RED)
(SIZE 10)
(VALUE 20)
(FLAGS TAKEBIT TRANSBIT TRYTAKEBIT)
(ACTION SPHERE-F)>
<OBJECT PALANTIR-2
(IN DREARY-ROOM)
(DESC "blue crystal sphere")
(FDESC "On the table sits a blue crystal sphere.")
(SYNONYM SPHERE)
(ADJECTIVE CRYSTAL BLUE)
(VALUE 20)
(FLAGS TAKEBIT TRANSBIT)
(ACTION SPHERE-F)>
<OBJECT PALANTIR-3
(IN MURKY-ROOM)
(DESC "clear crystal sphere")
(FDESC "There is a clear crystal sphere lying in the sand.")
(SYNONYM SPHERE)
(ADJECTIVE CRYSTAL WHITE CLEAR)
(FLAGS TAKEBIT NDESCBIT TRANSBIT)
(VALUE 20)
(ACTION SPHERE-F)>
<ROUTINE SPHERE-F ()
<COND (<AND <VERB? TAKE MOVE PUT>
<PRSO? ,PALANTIR-1>
<NOT ,CAGE-SOLVE-FLAG>>
<COND (<EQUAL? ,ADVENTURER ,WINNER>
<TELL
"As you reach for the sphere, a solid steel cage falls to entrap you. Worse,
poisonous gas begins seeping in." CR CR>
<COND (<IN? ,ROBOT ,HERE>
<MOVE ,ROBOT ,CAGE>
<FSET ,ROBOT ,NDESCBIT>)>
<GOTO ,CAGE>
<FSET ,CAGE-OBJECT ,NDESCBIT>
<FCLEAR ,CAGE-OBJECT ,INVISIBLE>
<ENABLE <QUEUE I-CAGE-DEATH 6>>
<MOVE ,CAGE-OBJECT ,HERE>)
(T
<FSET ,PALANTIR-1 ,INVISIBLE>
<REMOVE ,ROBOT>
<FSET ,PRSO ,INVISIBLE>
<MOVE ,CAGE-OBJECT ,DINGY-CLOSET>
<FCLEAR ,CAGE-OBJECT ,INVISIBLE>
<TELL
"As the robot touches the sphere, a solid steel cage falls from the ceiling,
trapping him. You can faintly hear his last words: " ,B-W-C>
<JIGS-UP "\"">)>)
(<VERB? LOOK-INSIDE>
<PALANTIR-LOOK <COND (<EQUAL? ,PRSO ,PALANTIR-1> ,PALANTIR-2)
(<EQUAL? ,PRSO ,PALANTIR-2> ,PALANTIR-3)
(<EQUAL? ,PRSO ,PALANTIR-3> ,PALANTIR-1)
(T ,PALANTIR-4)>>)
(<VERB? EXAMINE>
<TELL
"There is something misty in the sphere. Perhaps if you were to
look into it..." CR>)>>
<ROUTINE PALANTIR-LOOK (OBJ "AUX" RM L)
<COND (<EQUAL? .OBJ ,PALANTIR-4>
<TELL
,STRANGE-VISION " a huge and fearful face which peers at you expectantly." CR>
<RTRUE>)>
<SET RM <META-LOC .OBJ>>
<SET L <LOC .OBJ>>
<COND (<OR <NOT .L>
<NOT <LIT? .RM>>>
<TELL ,ONLY-DARKNESS>)
(<NOT <IN? .L ,ROOMS>>
<COND (<FSET? .L ,OPENBIT>
<TELL "You see the inside of a " D .L ,PERIOD-CR>)
(T
<TELL ,ONLY-DARKNESS>)>)
(T
<COND (,DEAD
<TELL
"As you peer through the mist, a strangely colored vision of
a huge room takes shape">)
(T
<TELL
,STRANGE-VISION " of a distant room, which can be described clearly">)>
<TELL "..." CR CR>
<FSET .OBJ ,INVISIBLE>
<GO&LOOK .RM>
<COND (<EQUAL? ,HERE .RM>
<TELL
"An astonished adventurer is staring into a crystal sphere." CR>)>
<FCLEAR .OBJ ,INVISIBLE>
<COND (<NOT ,DEAD>
<TELL
"The vision fades, revealing only an ordinary crystal sphere." CR>)>)>
<RTRUE>>
<ROUTINE GO&LOOK (RM "AUX" OHERE OLIT (OSEEN <>))
<SET OHERE ,HERE>
<COND (<FSET? .OHERE ,TOUCHBIT>
<SET OSEEN T>)>
<SET OLIT ,LIT>
<SETG HERE .RM>
<SETG LIT <LIT? .RM>>
<V-LOOK>
<COND (<NOT .OSEEN>
<FCLEAR .OHERE ,TOUCHBIT>)>
<SETG HERE .OHERE>
<SETG LIT .OLIT>>
<ROOM DEAD-PALANTIR-1
(IN ROOMS)
(DESC "Room of Red Mist")
(WEST TO DEAD-PALANTIR-2)
(FLAGS RLANDBIT ONBIT)
(GLOBAL GLOBAL-PALANTIR)
(ACTION DEAD-PALANTIR-F)>
<ROOM DEAD-PALANTIR-2
(IN ROOMS)
(DESC "Room of Blue Mist")
(WEST TO DEAD-PALANTIR-3)
(FLAGS RLANDBIT ONBIT)
(GLOBAL GLOBAL-PALANTIR)
(ACTION DEAD-PALANTIR-F)>
<ROOM DEAD-PALANTIR-3
(IN ROOMS)
(DESC "Room of White Mist")
(WEST TO DEAD-PALANTIR-4)
(FLAGS RLANDBIT ONBIT)
(GLOBAL GLOBAL-PALANTIR)
(ACTION DEAD-PALANTIR-F)>
<ROOM DEAD-PALANTIR-4
(IN ROOMS)
(DESC "Room of Black Mist")
(FLAGS RLANDBIT ONBIT)
(ACTION DEAD-PALANTIR-F)>
<ROUTINE DEAD-PALANTIR-F (RARG "AUX" P)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "You are in a huge crystalline sphere filled with thin ">
<COND (<EQUAL? ,HERE ,DEAD-PALANTIR-1>
<SET P ,PALANTIR-1>
<TELL "red">)
(<EQUAL? ,HERE ,DEAD-PALANTIR-2>
<SET P ,PALANTIR-2>
<TELL "blue">)
(T
<SET P ,PALANTIR-3>
<TELL "white">)>
<TELL " mist. The mist becomes ">
<COND (<EQUAL? ,HERE ,DEAD-PALANTIR-1>
<TELL "blue">)
(<EQUAL? ,HERE ,DEAD-PALANTIR-2>
<TELL "white">)
(T
<TELL "black">)>
<TELL
" to the west. You strain to look out through the mist..." CR CR>
<COND (<FSET? .P ,TOUCHBIT>
<PALANTIR-LOOK .P>)
(<EQUAL? .P ,PALANTIR-1>
<TELL
"You see a small room with a sign, too blurry to read.">)
(<EQUAL? .P ,PALANTIR-2>
<TELL
"You see a dreary room with an oak door and a huge table. There
is an odd glow to the mist.">)
(<EQUAL? .P ,PALANTIR-3>
<TELL "A watery room is barely visible.">
<COND (<AND <IN? ,SERPENT ,AQUARIUM>
<PROB 25>>
<TELL " A shadow swims by as you look.">)>)>
<CRLF>)
(<AND <EQUAL? .RARG ,M-ENTER>
<EQUAL? ,HERE ,DEAD-PALANTIR-4>>
<COND (<IN? ,DEMON ,PENTAGRAM-ROOM>
<TELL
"The room is empty. A huge face looks down from outside and laughs
sardonically. It doesn't look like you're getting out of this predicament!" CR>
<FINISH>)>
<TELL
"A huge and horrible face materializes out of the mist. \"">
<COND (<NOT <L? ,DEATHS 3>>
<TELL
"You again! You'll obviously be no help to me.\" The face disappears
and everything goes black." CR>
<FINISH>)>
<TELL
"Perhaps you may be of use in gaining my freedom from this place. I return
you to your foolish quest! Mayhap you will repay this favor in kind someday.\"
The mist swirls, and you are returned to the world of life." CR>
<SETG DEAD <>>
<GOTO ,INSIDE-THE-BARROW>)>>
<OBJECT GLOBAL-PALANTIR
(IN LOCAL-GLOBALS)
(DESC "sphere")
(SYNONYM SPHERE)
(ADJECTIVE RED BLUE WHITE CRYSTAL)
(FLAGS NDESCBIT)
(ACTION GLOBAL-PALANTIR-F)>
<ROUTINE GLOBAL-PALANTIR-F ()
<COND (<VERB? LOOK-INSIDE EXAMINE>
<DEAD-PALANTIR-F ,M-LOOK>)
(<VERB? MUNG>
<TELL "The sphere is unbreakable." CR>)>>