582 lines
17 KiB
Plaintext
582 lines
17 KiB
Plaintext
|
"STAIR for
|
|||
|
ENCHANTER
|
|||
|
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
|
|||
|
"
|
|||
|
|
|||
|
<ROOM LANDING
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Landing")
|
|||
|
(LDESC
|
|||
|
"The wall is cylindrical here, with exits east and west. The eastern one
|
|||
|
opens into a dark, enclosed space. The air is thick with acrid smoke, and
|
|||
|
black, greasy ashes mar the floor. The mortar and stones of the walls
|
|||
|
are stained and crumbly.")
|
|||
|
(EAST PER LANDING-EXIT-F)
|
|||
|
(WEST TO JUNCTION)
|
|||
|
(FLAGS ONBIT RLANDBIT RMUNGBIT)
|
|||
|
(PSEUDO "ASHES" ASHES-PSEUDO)>
|
|||
|
|
|||
|
<GLOBAL STAIR-SOLVED? <>>
|
|||
|
|
|||
|
<ROUTINE LANDING-EXIT-F ()
|
|||
|
<COND (,STAIR-SOLVED?
|
|||
|
<TELL
|
|||
|
"There is no floor there, and the pit beneath you is of great, if not
|
|||
|
infinite, depth. You fall forever.">
|
|||
|
<FINISH>)
|
|||
|
(ELSE ,ENDLESS-STAIR)>>
|
|||
|
|
|||
|
<ROOM ENDLESS-STAIR
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Winding Stair")
|
|||
|
(UP PER ENDLESS-UP)
|
|||
|
(DOWN PER ENDLESS-DOWN)
|
|||
|
(WEST PER ENDLESS-EXIT-F)
|
|||
|
(ACTION ENDLESS-STAIR-F)
|
|||
|
(ADVFCN ADVENTURER-DROPS-OUT)
|
|||
|
(FLAGS RLANDBIT)
|
|||
|
(GLOBAL STAIRS)>
|
|||
|
|
|||
|
<ROUTINE ADVENTURER-DROPS-OUT ()
|
|||
|
<TELL
|
|||
|
"The adventurer seems to have dropped out of existence. In a voice that seems
|
|||
|
to recede into the void, you hear his final word: \"Restore....\" You muse
|
|||
|
about how a mere adventurer might come to possess a spell of such power." CR>
|
|||
|
<REMOVE ,ADVENTURER>
|
|||
|
<QUEUE I-ADVENTURER 0>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<OBJECT STAIRS
|
|||
|
(IN LOCAL-GLOBALS)
|
|||
|
(SYNONYM STAIRS STEPS STAIR STAIRWAY)
|
|||
|
(ADJECTIVE SPIRAL WINDING)
|
|||
|
(DESC "stairs")
|
|||
|
(FLAGS NDESCBIT CLIMBBIT TOUCHBIT)
|
|||
|
(ACTION STAIRS-F)>
|
|||
|
|
|||
|
<ROUTINE STAIRS-F ()
|
|||
|
<COND (<EQUAL? ,HERE ,JUNCTION>
|
|||
|
<TELL
|
|||
|
"The stairs are to the east. You'll have to go there to get a look." CR>)
|
|||
|
(<AND <EQUAL? ,HERE ,ENDLESS-STAIR>
|
|||
|
<VERB? KULCAD>>
|
|||
|
<STAIR-DISPEL>)>>
|
|||
|
|
|||
|
<GLOBAL DROPPED-SOME? <>>
|
|||
|
|
|||
|
<ROUTINE STAIR-DISPEL ()
|
|||
|
<QUEUE I-HUNGER 0>
|
|||
|
<QUEUE I-THIRST 0>
|
|||
|
<QUEUE I-TIRED 0>
|
|||
|
<QUEUE I-TURTLE 0>
|
|||
|
;"Stop hunger and thirst. The loser has enough on his mind now..."
|
|||
|
<SETG STAIR-SOLVED? T>
|
|||
|
<SETG SCORE <+ ,SCORE ,STAIR-POINT>>
|
|||
|
<SETG STAIR-POINT 0>
|
|||
|
<SETG DROPPED-SOME? <DESTROY-ALL ,WINNER ,REAL-STAIR>>
|
|||
|
<MOVE ,FLY-SCROLL ,WINNER>
|
|||
|
<TELL
|
|||
|
"The stairway begins to dissolve before your eyes, leaving a circular area
|
|||
|
with exits east and west, but remarkable mainly for its absence of a floor.
|
|||
|
Indeed, you find yourself standing in midair above a deep pit with the
|
|||
|
sort of comical look which is found mainly among duped cartoon characters.
|
|||
|
Frantically, you grab for the solid bannister">
|
|||
|
<COND (,DROPPED-SOME? <TELL ", dropping your heavier possessions
|
|||
|
in your desire to save yourself">)>
|
|||
|
<TELL "! But the bannister shifts and dissolves
|
|||
|
as well, leaving you grasping what appears to be an ornate scroll." CR>
|
|||
|
<THIS-IS-IT ,FLY-SCROLL>
|
|||
|
<ENABLE <QUEUE I-FALL-FOREVER 5>>
|
|||
|
<ENABLE <QUEUE I-FALL -1>>
|
|||
|
<DISABLE <INT I-TIRED>>
|
|||
|
<GOTO ,REAL-STAIR <>>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<ROUTINE ENDLESS-UP ()
|
|||
|
<ENDLESS-UP-DOWN T>
|
|||
|
,ENDLESS-STAIR>
|
|||
|
|
|||
|
<ROUTINE ENDLESS-DOWN ()
|
|||
|
<ENDLESS-UP-DOWN <>>
|
|||
|
,ENDLESS-STAIR>
|
|||
|
|
|||
|
<ROUTINE ENDLESS-UP-DOWN (UP?)
|
|||
|
<FCLEAR ,ENDLESS-STAIR ,TOUCHBIT>
|
|||
|
<STAIR-TO-TABLE ,STAIR-LOC>
|
|||
|
<TELL "You ">
|
|||
|
<COND (.UP?
|
|||
|
<TELL "climb">
|
|||
|
<SETG STAIR-LOC <+ ,STAIR-LOC 1>>)
|
|||
|
(T
|
|||
|
<TELL "descend">
|
|||
|
<SETG STAIR-LOC <- ,STAIR-LOC 1>>)>
|
|||
|
<TELL " the stairs, making one circuit of the tower." CR>
|
|||
|
<TABLE-TO-STAIR ,STAIR-LOC>>
|
|||
|
|
|||
|
<ROUTINE ENDLESS-STAIR-F (RARG)
|
|||
|
<COND (<==? .RARG ,M-LOOK>
|
|||
|
<TELL
|
|||
|
"This is a winding stair, stretching up and down out of sight. The walls are
|
|||
|
mossy and damp.">
|
|||
|
<COND (<==? ,STAIR-LOC ,STAIR-START>
|
|||
|
<TELL " An exit leads west to a landing.">)>
|
|||
|
<CRLF>)
|
|||
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|||
|
<NOT <EQUAL? ,WINNER ,PLAYER>>
|
|||
|
<NOT <IN? ,WINNER <LOC ,PLAYER>>>>
|
|||
|
<REMOVE ,WINNER>
|
|||
|
<SETG P-CONT <>>
|
|||
|
<SETG QUOTE-FLAG <>>
|
|||
|
<RFALSE>)>>
|
|||
|
|
|||
|
<ROUTINE ENDLESS-EXIT-F ()
|
|||
|
<COND (<==? ,STAIR-LOC ,STAIR-START> ,LANDING)
|
|||
|
(T
|
|||
|
<TELL "You can't go that way." CR>
|
|||
|
<RFALSE>)>>
|
|||
|
|
|||
|
<ROUTINE STAIR-TO-TABLE (SLOC
|
|||
|
"AUX" TBL (CNT 0)
|
|||
|
(F <FIRST? ,ENDLESS-STAIR>) N)
|
|||
|
<SET TBL ,STAIR-TABLE>
|
|||
|
<REPEAT ()
|
|||
|
<COND (.F <SET N <NEXT? .F>>)
|
|||
|
(ELSE <RETURN>)>
|
|||
|
<COND (<EQUAL? .F ,WINNER>)
|
|||
|
(<FSET? .F ,TAKEBIT>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<==? <GET .TBL .CNT> 0>
|
|||
|
<PUT .TBL .CNT .SLOC>
|
|||
|
<PUT .TBL <+ .CNT 1> .F>
|
|||
|
<SET CNT <+ .CNT 2>>
|
|||
|
<REMOVE .F>
|
|||
|
<RETURN>)
|
|||
|
(ELSE
|
|||
|
<SET CNT <+ .CNT 2>>)>>)>
|
|||
|
<SET F .N>>>
|
|||
|
|
|||
|
<ROUTINE TABLE-TO-STAIR (SLOC
|
|||
|
"AUX" TBL (CNT 0))
|
|||
|
<SET TBL ,STAIR-TABLE>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<NOT <L? .CNT ,STAIR-TABLE-LENGTH>>
|
|||
|
<RETURN>)
|
|||
|
(<==? <GET .TBL .CNT> .SLOC>
|
|||
|
<PUT .TBL .CNT 0>
|
|||
|
<MOVE <GET .TBL <+ .CNT 1>> ,ENDLESS-STAIR>)>
|
|||
|
<SET CNT <+ .CNT 2>>>>
|
|||
|
|
|||
|
<GLOBAL STAIR-LOC 10000>
|
|||
|
<CONSTANT STAIR-START 10000>
|
|||
|
|
|||
|
<CONSTANT STAIR-TABLE-LENGTH 70> ;"currently 33 takeable objects"
|
|||
|
|
|||
|
<GLOBAL STAIR-TABLE ;"length should be 2*number of takeable objects"
|
|||
|
<TABLE 0 0 0 0 0 0 0 0 0 0
|
|||
|
0 0 0 0 0 0 0 0 0 0
|
|||
|
0 0 0 0 0 0 0 0 0 0
|
|||
|
0 0 0 0 0 0 0 0 0 0
|
|||
|
0 0 0 0 0 0 0 0 0 0
|
|||
|
0 0 0 0 0 0 0 0 0 0
|
|||
|
0 0 0 0 0 0 0 0 0 0>>
|
|||
|
|
|||
|
\
|
|||
|
|
|||
|
<ROOM REAL-STAIR
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Winding Stair")
|
|||
|
(LDESC
|
|||
|
"This is a circular room with no floor. There are exits east and west.
|
|||
|
A crude drawing of stairsteps graces the ceiling. Downward is only
|
|||
|
darkness.")
|
|||
|
(WEST PER REAL-STAIR-EXIT-F) ;"LANDING"
|
|||
|
(EAST PER REAL-STAIR-EXIT-F) ;"WARLOCK-TOWER"
|
|||
|
(DOWN PER REAL-STAIR-EXIT-F) ;"PIT"
|
|||
|
(FLAGS RLANDBIT)
|
|||
|
(ACTION PIT-F)
|
|||
|
(GLOBAL STAIRS)>
|
|||
|
|
|||
|
<ROUTINE REAL-STAIR-EXIT-F ()
|
|||
|
<SETG FALL-COUNT 0>
|
|||
|
<COND (,FLYING?
|
|||
|
<TELL "Effortlessly, you float ">
|
|||
|
<COND (<==? ,PRSO ,P?DOWN>
|
|||
|
<SETG FALL-COUNT 1>
|
|||
|
<TELL "downward." CR>
|
|||
|
<DESTROY-ALL ,HERE ,PIT>
|
|||
|
,PIT)
|
|||
|
(<==? ,PRSO ,P?EAST>
|
|||
|
<SETG SCORE <+ ,SCORE ,FLY-POINT>>
|
|||
|
<SETG FLY-POINT 0>
|
|||
|
<STOP-FLYING>
|
|||
|
<TELL "eastward and settle to the ground." CR>
|
|||
|
,WARLOCK-TOWER)
|
|||
|
(<==? ,PRSO ,P?WEST>
|
|||
|
<STOP-FLYING>
|
|||
|
<TELL "westward and settle to the ground." CR>
|
|||
|
,LANDING)>)
|
|||
|
(ELSE ;"I'm not sure this can happen"
|
|||
|
<TELL
|
|||
|
"You must think you can fly." CR>
|
|||
|
<RFALSE>)>>
|
|||
|
|
|||
|
<ROOM PIT
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Bottomless Pit")
|
|||
|
(LDESC
|
|||
|
"This is a circular pit of apparently infinite depth. The walls are of
|
|||
|
crudely dressed stone. No floor is visible.")
|
|||
|
(UP PER PIT-EXIT-F)
|
|||
|
(DOWN PER PIT-EXIT-F)
|
|||
|
(ACTION PIT-F)
|
|||
|
(FLAGS RLANDBIT ONBIT)>
|
|||
|
|
|||
|
<ROUTINE PIT-EXIT-F ()
|
|||
|
<COND (,FLYING?
|
|||
|
<TELL "Effortlessly, you float ">
|
|||
|
<COND (<==? ,PRSO ,P?DOWN>
|
|||
|
<SETG FALL-COUNT <+ ,FALL-COUNT 1>>
|
|||
|
<TELL "downward." CR>)
|
|||
|
(T
|
|||
|
<SETG FALL-COUNT <- ,FALL-COUNT 1>>
|
|||
|
<TELL "upward." CR>)>
|
|||
|
<COND (<==? ,FALL-COUNT 0>
|
|||
|
<DESTROY-ALL ,HERE ,REAL-STAIR>
|
|||
|
,REAL-STAIR)
|
|||
|
(ELSE
|
|||
|
<DESTROY-ALL ,HERE ,PIT>
|
|||
|
<FCLEAR ,PIT ,TOUCHBIT>
|
|||
|
,PIT)>)
|
|||
|
(ELSE
|
|||
|
<TELL
|
|||
|
"You must think you can fly." CR>
|
|||
|
<RFALSE>)>>
|
|||
|
|
|||
|
<ROUTINE PIT-F ("OPTIONAL" RARG)
|
|||
|
<COND (<==? .RARG ,M-BEG>
|
|||
|
<COND (<AND <VERB? DROP> <HELD? ,PRSO>>
|
|||
|
<FSET ,PRSO ,NDESCBIT>
|
|||
|
<FCLEAR ,PRSO ,TAKEBIT>
|
|||
|
<TELL
|
|||
|
"The " D ,PRSO " falls out of sight below you." CR>)
|
|||
|
(<AND <VERB? TAKE EXAMINE> <NOT <HELD? ,PRSO>>>
|
|||
|
<TELL
|
|||
|
"The " D ,PRSO " is out of reach below you." CR>)>)>>
|
|||
|
|
|||
|
<GLOBAL FALL-COUNT 0>
|
|||
|
|
|||
|
<ROUTINE STOP-FLYING ()
|
|||
|
<SETG FLYING? <>>
|
|||
|
<QUEUE I-FALL 0>
|
|||
|
<QUEUE I-FALL-FOREVER 0>
|
|||
|
<QUEUE I-FLY 0>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<ROUTINE I-FALL ()
|
|||
|
<COND (,FLYING? <RTRUE>)>
|
|||
|
<SETG FALL-COUNT <+ ,FALL-COUNT 1>>
|
|||
|
<TELL
|
|||
|
"You plummet downward, deeper into the pit, but the bottom is still not
|
|||
|
visible.">
|
|||
|
<COND (,DROPPED-SOME?
|
|||
|
<TELL " Far ahead of you fall your former possessions." CR>)>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<ROUTINE I-FALL-FOREVER ()
|
|||
|
<TELL
|
|||
|
"You plummet deeper and deeper into the pit! Oddly enough, you never
|
|||
|
seem to hit bottom. After many years, only tattered remnants of you
|
|||
|
remain, still falling." CR>
|
|||
|
<FINISH>>
|
|||
|
|
|||
|
<ROUTINE DESTROY-ALL (WHO WHERE "AUX" N X (DEST? <>))
|
|||
|
<SET X <FIRST? .WHO>>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<NOT .X> <RETURN .DEST?>)>
|
|||
|
<SET N <NEXT? .X>>
|
|||
|
<COND (<AND <NOT <EQUAL? .X ,WINNER>>
|
|||
|
<G? <GETP .X ,P?SIZE> 4>>
|
|||
|
<REMOVE-ALL .X>
|
|||
|
<MOVE .X .WHERE>
|
|||
|
<FSET .X ,NDESCBIT>
|
|||
|
<FCLEAR .X ,TAKEBIT>
|
|||
|
<SET DEST? T>)>
|
|||
|
<SET X .N>>>
|
|||
|
|
|||
|
<ROUTINE REMOVE-ALL (WHAT "AUX" N X)
|
|||
|
<SET X <FIRST? .WHAT>>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<NOT .X> <RETURN>)>
|
|||
|
<SET N <NEXT? .X>>
|
|||
|
<REMOVE .X>
|
|||
|
<SET X .N>>>
|
|||
|
|
|||
|
\
|
|||
|
|
|||
|
<ROOM WARLOCK-TOWER
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Warlock's Tower")
|
|||
|
(LDESC
|
|||
|
"This is a room carved out of black basalt, eerily lit by flickering
|
|||
|
fires and the dim glow of magic.")
|
|||
|
(DOWN "The pit yawns before you, and the izyuk spell has worn off!")
|
|||
|
(WEST "The pit yawns before you, and the izyuk spell has worn off!")
|
|||
|
(FLAGS RLANDBIT ONBIT)
|
|||
|
(ACTION WARLOCK-TOWER-F)>
|
|||
|
|
|||
|
<ROUTINE WARLOCK-TOWER-F (RARG)
|
|||
|
<COND (<EQUAL? .RARG ,M-ENTER>
|
|||
|
<FSET ,WARLOCK-TOWER ,TOUCHBIT>
|
|||
|
<TELL
|
|||
|
"As you enter, you realize that this is Krill's secret chamber,
|
|||
|
protected by powerful illusions now broken by your skills. Before you
|
|||
|
stands Krill, engaged in the casting of some complex and horrific magic.
|
|||
|
Krill turns to face you, surprised and annoyed by your intrusion. You
|
|||
|
have seen him before: cloaked in black, he sacrificed you at the Altar
|
|||
|
before his hoard. His yellow eyes glisten and he breathes deeply. In a
|
|||
|
voice as deep as the great caverns of the earth, he speaks: \"Fool!
|
|||
|
Parlor magician! You dare to defile my chamber with your worm-like
|
|||
|
presence. I shall not waste words with you. Goodbye, spell-monger!\"">
|
|||
|
<COND (<EQUAL? ,HASTED? ,PLAYER>
|
|||
|
<TELL "
|
|||
|
He pauses. \"Ah! You seem to be in a hurry, campfire-conjurer! Slow down
|
|||
|
and enjoy the show!\" He waves his hand, and you are robbed of your energy.">)>
|
|||
|
<TELL "
|
|||
|
Krill snaps his fingers loudly, and a giant dragon appears, breathing gouts
|
|||
|
of flame. He moves ever closer, red eyes bulging with malice!" CR CR>
|
|||
|
<MOVE ,DRAGON ,HERE>
|
|||
|
<ENABLE <QUEUE I-DRAGON 2>>)>>
|
|||
|
|
|||
|
<OBJECT KRILL
|
|||
|
(IN WARLOCK-TOWER)
|
|||
|
(DESC "warlock Krill")
|
|||
|
(LDESC
|
|||
|
"The warlock Krill, robed in black, stands before you, in eager anticipation
|
|||
|
of your death.")
|
|||
|
(SYNONYM KRILL WARLOCK)
|
|||
|
(FLAGS VICBIT)
|
|||
|
(ACTION KRILL-F)>
|
|||
|
|
|||
|
<OBJECT GLOBAL-KRILL
|
|||
|
(IN GLOBAL-OBJECTS)
|
|||
|
(DESC "warlock Krill")
|
|||
|
(SYNONYM KRILL WARLOCK)
|
|||
|
(ACTION GLOBAL-KRILL-F)>
|
|||
|
|
|||
|
<ROUTINE GLOBAL-KRILL-F ()
|
|||
|
<COND (<VERB? GUNCHO HELLO>
|
|||
|
<TELL
|
|||
|
"Krill is not here, and lucky for you." CR>)
|
|||
|
(<VERB? ZIFMIA>
|
|||
|
<JIGS-UP
|
|||
|
"The warlock Krill appears before you, staring in astonishment. \"Who is
|
|||
|
it that disturbs my slumber? Oh, it is only you, secondary-school sorcerer!\"
|
|||
|
He points a finger and chants a spell. You are cast into the endless void!"
|
|||
|
<>>)
|
|||
|
(<VERB? EXAMINE WHO>
|
|||
|
<TELL
|
|||
|
"Krill is an evil warlock who was banished from the Circle of Enchanters.
|
|||
|
His malice was thought to be forever ended, his reign of terror a dim and
|
|||
|
frightful memory. But he has returned, and his power must be destroyed lest
|
|||
|
the Circle's great works be overthrown." CR>)
|
|||
|
(T
|
|||
|
<GLOBAL-NOT-HERE-PRINT ,GLOBAL-KRILL>
|
|||
|
<RTRUE>)>>
|
|||
|
|
|||
|
<OBJECT DRAGON
|
|||
|
(DESC "dragon")
|
|||
|
(SYNONYM DRAGON FLAME FLAMES)
|
|||
|
(LDESC
|
|||
|
"A dragon, spouting flame, approaches!")
|
|||
|
(FLAGS VICTIM)
|
|||
|
(ACTION DRAGON-F)>
|
|||
|
|
|||
|
<ROUTINE DRAGON-F ()
|
|||
|
<COND (<VERB? GONDAR>
|
|||
|
<TELL
|
|||
|
"The dragon's flame is doused in a torrent of water as you cast the
|
|||
|
gondar spell! He disappears with a torturous scream.">
|
|||
|
<REMOVE ,DRAGON>
|
|||
|
<SECOND-ACT>)
|
|||
|
(<VERB? VAXUM NITFOL>
|
|||
|
<TELL
|
|||
|
"The dragon pauses and roars out a benevolent greeting, which, to your
|
|||
|
chagrin, fries you to a delicate crisp." CR>
|
|||
|
<FINISH>)
|
|||
|
(<VERB? GUNCHO>
|
|||
|
<TELL
|
|||
|
"Unfortunately, the dragon is practically on top of you, and before you
|
|||
|
can finish saying the guncho spell he blasts you to beyond well-done." CR>
|
|||
|
<FINISH>)
|
|||
|
(<VERB? CLEESH>
|
|||
|
<TELL
|
|||
|
"The dragon, being reptilian himself, is unaffected." CR>)
|
|||
|
(<VERB? KILL ATTACK MUNG>
|
|||
|
<TELL
|
|||
|
"Your strength isn't nearly enough to best the dragon!" CR>)>>
|
|||
|
|
|||
|
<ROUTINE SECOND-ACT ("OPTIONAL" (GUNCH <>))
|
|||
|
<TELL CR
|
|||
|
"Krill ">
|
|||
|
<COND (.GUNCH <TELL "seems shaken, but regains his composure.">)
|
|||
|
(T <TELL "seems to be somewhat amused.">)>
|
|||
|
<TELL CR CR
|
|||
|
"\"A fine spell, wizard-worm, but your luck has ended!\" With another snap
|
|||
|
of his fingers, he summons a being whose essence is evil. It has a shape which
|
|||
|
is masked by its blackness and exudes a foul, fetid odor. In its hand
|
|||
|
is a large battle axe. At a signal from Krill, it advances!" CR>
|
|||
|
<ENABLE <QUEUE I-SHAPE 2>>
|
|||
|
<MOVE ,SHAPE ,HERE>>
|
|||
|
|
|||
|
<GLOBAL NO-LONGER-PROTECTED
|
|||
|
"Krill looks your way and spits: \"You were fortunate, wizard-worm, to have
|
|||
|
survived our last encounter. But your trivial spells of protection will not
|
|||
|
save you now!\"">
|
|||
|
|
|||
|
<ROUTINE I-DRAGON ()
|
|||
|
<COND (<IN? ,DRAGON ,HERE>
|
|||
|
<COND (<OR <==? ,DEATH-CHEATED ,ME>
|
|||
|
,PROTECTED-FROM-EVIL>
|
|||
|
<TELL ,NO-LONGER-PROTECTED CR>)>
|
|||
|
<TELL
|
|||
|
"The dragon engulfs you in flame. As you perish, you can hear Krill's
|
|||
|
mocking laughter." CR>
|
|||
|
<FINISH>)>
|
|||
|
<QUEUE I-DRAGON 0>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<OBJECT SHAPE
|
|||
|
(DESC "monster")
|
|||
|
(SYNONYM MONSTER SHAPE BEING)
|
|||
|
(ACTION SHAPE-F)>
|
|||
|
|
|||
|
<ROUTINE SHAPE-F ()
|
|||
|
<COND (<VERB? VAXUM>
|
|||
|
<TELL
|
|||
|
"The monster hesitates, stops, smiles, and disappears." CR>
|
|||
|
<THIRD-ACT>)
|
|||
|
(<VERB? CLEESH>
|
|||
|
<TELL
|
|||
|
"The monster hesitates, trembles, then turns into a newt. Poor monster. Its
|
|||
|
battle axe, now unsupported, falls on it, slicing it neatly in half." CR>
|
|||
|
<THIRD-ACT>)
|
|||
|
(<VERB? NITFOL>
|
|||
|
<TELL
|
|||
|
"\"Yum, yum!\" are the last words you hear." CR>
|
|||
|
<FINISH>)
|
|||
|
(<VERB? GUNCHO>
|
|||
|
<TELL
|
|||
|
"The monster pauses for a moment as you begin the guncho spell, then swiftly
|
|||
|
cleaves you with its axe before you can finish!" CR>
|
|||
|
<FINISH>)
|
|||
|
(<VERB? KILL ATTACK MUNG>
|
|||
|
<TELL
|
|||
|
"Your effort is useless. It is still coming closer!" CR>)>>
|
|||
|
|
|||
|
<ROUTINE THIRD-ACT ()
|
|||
|
<REMOVE ,SHAPE>
|
|||
|
<TELL CR
|
|||
|
"Krill seems to be losing patience.|
|
|||
|
|
|
|||
|
\"I am through playing games, carnival-clown! You shall return to your
|
|||
|
Circle, but I am afraid that all the little pieces will prove hard to
|
|||
|
reassemble!\" He laughs hideously and starts a guttural chant which
|
|||
|
shakes the very tower." CR>
|
|||
|
<SETG KRILL-KILL T>
|
|||
|
<ENABLE <QUEUE I-BYE 2>>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<GLOBAL KRILL-KILL <>>
|
|||
|
|
|||
|
<ROUTINE I-SHAPE ()
|
|||
|
<COND (<IN? ,SHAPE ,HERE>
|
|||
|
<COND (<OR <==? ,DEATH-CHEATED ,ME>
|
|||
|
,PROTECTED-FROM-EVIL>
|
|||
|
<TELL ,NO-LONGER-PROTECTED CR>)>
|
|||
|
<TELL
|
|||
|
"The monster hits you with its battle axe! You fall, dead, as the
|
|||
|
laughter of Krill reaches a crescendo!" CR>
|
|||
|
<FINISH>)>
|
|||
|
<QUEUE I-SHAPE 0>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<ROUTINE I-BYE ()
|
|||
|
<COND (<EQUAL? ,HERE ,WARLOCK-TOWER>
|
|||
|
<TELL CR
|
|||
|
"Krill finishes his spell and his harsh laughter is all that remains!
|
|||
|
You are in a void, without sight, sound, or sensation. You scream at the
|
|||
|
top of your lungs, but nothing happens. You break into a cold sweat as you
|
|||
|
ponder the infinite, beyond all help and hope!" CR>
|
|||
|
<FINISH>)>>
|
|||
|
|
|||
|
<ROUTINE KRILL-F ()
|
|||
|
<COND (<VERB? EXAMINE>
|
|||
|
<TELL
|
|||
|
"Krill is not a pretty sight! Enough said." CR>)
|
|||
|
(<AND <VERB? GUNCHO> ,KRILL-KILL>
|
|||
|
<TELL
|
|||
|
"Krill recoils as he hears the first words of the guncho spell. For a few
|
|||
|
seconds he continues with the spell he was casting, trying to finish before
|
|||
|
you. He fumbles some syllables! Then he steps
|
|||
|
back and, with his hands outstretched toward you, lets out a blood-curdling
|
|||
|
scream. His face twisted, and his body vibrating with the effort of resisting
|
|||
|
the enchantment, he utters a spell
|
|||
|
of power, and is gone! After a quiet moment, a rumble begins deep in the
|
|||
|
earth. It strengthens as the tower starts to sway. The floor gives way
|
|||
|
beneath you and you tumble down towards the sea ... then you are surrounded
|
|||
|
by a burst of light.|
|
|||
|
|
|
|||
|
You realize that you are with the Circle. The Eldest of the Circle, Belboz,
|
|||
|
rises and speaks: \"The evil of Krill is ended this day. From beyond hope,
|
|||
|
you have proved yourself great and worthy. Our hearts are gladdened at your
|
|||
|
return.\" A chair appears at his right hand and he motions for you to
|
|||
|
sit beside him. He smiles warmly. \"Join with us,\" he says, \"and tell us
|
|||
|
of your quest!\"|
|
|||
|
|
|
|||
|
Here ends the first chapter of the Enchanter saga, in which, by virtue of your
|
|||
|
skills, you have joined the Circle of Enchanters. Further adventures await you
|
|||
|
as the Enchanter series continues." CR CR>
|
|||
|
<SETG SCORE <+ ,SCORE ,WARLOCK-POINT>>
|
|||
|
<USL>
|
|||
|
<FINISH>)
|
|||
|
(<VERB? CLEESH>
|
|||
|
<TELL
|
|||
|
"Krill shimmers for a moment, then laughs heartily. The laugh sounds
|
|||
|
vaguely like a croak, but perhaps it is only your imagination." CR>)
|
|||
|
(<VERB? VAXUM>
|
|||
|
<TELL
|
|||
|
"The spell seems to have no influence over Krill. You wouldn't much
|
|||
|
like to see him smile, anyway." CR>)
|
|||
|
(<VERB? GUNCHO>
|
|||
|
<TELL
|
|||
|
"The look of surprise on Krill's face as you recite the first few
|
|||
|
syllables of the guncho spell is exceeded only by your look of disappointment
|
|||
|
as you are "
|
|||
|
<COND (<IN? ,SHAPE ,HERE> "sliced into bits by the monster!")
|
|||
|
(T "incinerated by the dragon!")>
|
|||
|
CR>
|
|||
|
<FINISH>)
|
|||
|
(<VERB? HELLO>
|
|||
|
<TELL "Krill grins and the sight is ghastly." CR>)>>
|
|||
|
|
|||
|
<ROUTINE I-MUNG-ROOM ("OPTIONAL" (TELL? T) "AUX" RM TBL)
|
|||
|
<ENABLE <QUEUE I-MUNG-ROOM 20>>
|
|||
|
<SET TBL ,MUNG-ROOM-TABLE>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<SET RM <GET .TBL 0>>
|
|||
|
<COND (<NOT <FSET? .RM ,RMUNGBIT>>
|
|||
|
<RETURN>)>
|
|||
|
<SET TBL <REST .TBL 2>>)
|
|||
|
(T <RETURN>)>>
|
|||
|
<COND (.RM
|
|||
|
<FSET .RM ,RMUNGBIT>
|
|||
|
<FCLEAR .RM ,TOUCHBIT>
|
|||
|
<COND (<AND .TELL? <==? .RM ,HERE>>
|
|||
|
<TELL
|
|||
|
"Suddenly, you sense a great wind of evil magic blowing around you. You
|
|||
|
are weighed down by its power, and only your sorcerous training permits
|
|||
|
you to withstand it. When you regain your composure, your surroundings
|
|||
|
have changed." CR>)>)>
|
|||
|
.RM>
|
|||
|
|