journey/spells.zap
historicalsource 689e06b55f Final Revision
2019-04-14 16:35:30 -04:00

1046 lines
31 KiB
Plaintext

.SEGMENT "0"
.FUNCT PRAXIX-TOO-DANGEROUS-TO-CAST:ANY:0:0
ICALL1 UNUSE-ESSENCES
PRINTI "Praxix thought to cast the """
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI """ spell, but we agreed that the situation was far too serious to use such a seemingly irrelevant spell."
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT CHECK-CAST-LIMIT:ANY:0:0,CL
GETP HERE,P?CAST-LIMIT >CL
FSET ACTION-OBJECT,TRIED
FSET? HERE,SINGLE-CAST /?CTR2
EQUAL? CL,1 \?CCL3
?CTR2: ICALL UPDATE-FSET,HERE,DONT-CAST
SET 'DONT-CAST-FLAG,TRUE-VALUE
RTRUE
?CCL3: GRTR? CL,1 \TRUE
SUB CL,1
PUTP HERE,P?CAST-LIMIT,STACK
RTRUE
.FUNCT DISSIPATION-CHECK:ANY:0:0
ZERO? DISSIPATION-WARNING \FALSE
ZERO? SUBGROUP-MODE \FALSE
SET 'DISSIPATION-WARNING,TRUE-VALUE
CRLF
CRLF
PRINTI """Actually,"" Praxix revealed, ""I do not have magical essences in any vast supply. These experiments may, one day, prove costly, but for now they seem harmless enough."""
RTRUE
.FUNCT PRAXIX-NO-CAST:ANY:0:0
ICALL1 UNUSE-ESSENCES
ZERO? SUBGROUP-MODE \?CCL3
PRINTI "Praxix suggested using the """
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI """ spell, but "
CALL2 I/WE,2
PRINT STACK
PRINTI " convinced him"
JUMP ?CND1
?CCL3: PRINTI "Praxix' mind, working rapidly, thought of using the """
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI """ spell, but he soon convinced himself"
?CND1: PRINTI " that it would be a waste of time under the circumstances."
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT ADD-ESSENCE:ANY:2:2,OFF,AMT
GET ESSENCE-TBL,OFF
ADD STACK,AMT
PUT ESSENCE-TBL,OFF,STACK
RTRUE
.FUNCT FIND-ESSENCE:ANY:2:2,ESS,AMT,OFF
GETP ESS,P?EOFF >OFF
ICALL UPDATE-MOVE,ESS,ESSENCES
ICALL ADD-ESSENCE,OFF,AMT
SET 'FOUND-ESSENCE,TRUE-VALUE
CALL QUEUE,I-FOUND-ESSENCE,1
RSTACK
.FUNCT ANONF-24:ANY:0:0
SET 'FOUND-ESSENCE,FALSE-VALUE
RETURN FOUND-ESSENCE
.FUNCT CHECK-USED-UP-ESSENCES:ANY:0:0,OFF,FST?,ESS
SET 'OFF,1
?PRG1: GRTR? OFF,EMAX \?CCL5
ZERO? FST? /TRUE
PRINTI ". ""Let us hope we shall "
EQUAL? PARTY-MODE,FIGHT-MODE \?CCL10
PRINTI "get some good use out of "
JUMP ?CND8
?CCL10: PRINTI "not be needing "
?CND8: GRTR? FST?,1 \?CCL13
PRINTI "them"
JUMP ?CND11
?CCL13: PRINTI "it"
?CND11: PRINTI ","" he said, resignedly."
RTRUE
?CCL5: GET ESSENCE-OBJECT-TBL,OFF >ESS
ZERO? ESS /?CND3
FSET? ESS,USED-UP \?CND3
ZERO? SUBGROUP-MODE /?PRD18
FSET? PRAXIX,SUBGROUP \?CND3
?PRD18: FSET? PRAXIX,BUSY /?CND3
FCLEAR ESS,USED-UP
ZERO? FST? \?CCL23
SET 'FST?,1
CRLF
CRLF
PRINTI "Praxix now turned his thoughts to his magical powders, since his last spell had used up all of his "
ICALL2 WPRINTD,ESS
?CND3: INC 'OFF
JUMP ?PRG1
?CCL23: INC 'FST?
PRINTI " and "
ICALL2 WPRINTD,ESS
PRINTC 46
RTRUE
.FUNCT ANONF-25:ANY:0:0
EQUAL? ACTION,EXAMINE-COMMAND \FALSE
CALL QSET?,POUCH,EXAMINED
ZERO? STACK \?CCL6
PRINTI "The key to Praxix' wizardly powers lay within the badly worn, brown leather pouch that he carried inside his cloak. This pouch contained his entire stock of magical essences, with whose help it was possible to conjure up a variety of magical spells. But these essences were in very limited supply, and one cannot be too harsh on Praxix for the frequency with which he would assess the quantities of those in his possession."
CRLF
CRLF
PRINTI "He did so now, taking out his pouch and finding"
JUMP ?CND4
?CCL6: ICALL2 WPRINTD,PRAXIX
PRINTI ", "
ZERO? FOUND-ESSENCE /?CCL9
PRINTI "having just added to his stock of magical essences, took inventory"
JUMP ?CND7
?CCL9: PRINTI "ever concerned about his magical resources, took out his pouch"
?CND7: PRINTI " and found"
?CND4: FIRST? ESSENCES /?CCL12
PRINTI " not a single speck of magical essence."
JUMP ?CND10
?CCL12: ICALL2 TELL-AMOUNTS,ESSENCES
?CND10: FIRST? REAGENTS \TRUE
PRINTI " In addition, he found"
ICALL2 TELL-AMOUNTS,REAGENTS
RTRUE
.FUNCT TELL-AMOUNTS:ANY:1:1,OBJ,F,AMT
FIRST? OBJ >F /?PRG2
?PRG2: ZERO? F \?CCL6
PRINTC 46
RTRUE
?CCL6: PRINTI " a "
GETP F,P?EOFF
GET ESSENCE-TBL,STACK >AMT
GET ESSENCE-AMT-TBL,AMT
PRINT STACK
PRINTI " amount of "
ICALL2 WPRINTD,F
LESS? SCREEN-WIDTH,12-WIDTH \?CND7
EQUAL? OBJ,REAGENTS /?CND7
PRINTI " essence"
?CND7: PRINTI " (enough for "
GET ESSENCE-AMT-TBL-X,AMT
PRINT STACK
PRINTI " spell"
EQUAL? AMT,1 /?CND11
PRINTC 115
?CND11: PRINTC 41
NEXT? F >F \?PRG2
NEXT? F \?CCL17
PRINTC 44
JUMP ?PRG2
?CCL17: PRINTI ", and"
JUMP ?PRG2
.FUNCT CHECK-ESSENCES:ANY:1:2,SPL,AMT,OFF,EBITS
ASSIGNED? 'AMT /?CND1
SET 'AMT,1
?CND1: SET 'OFF,1
GETP SPL,P?EBITS >EBITS
?PRG3: EQUAL? OFF,EMAX /TRUE
BTST EBITS,1 \?CCL9
GET ESSENCE-TBL,OFF
LESS? STACK,AMT /FALSE
?CCL9: INC 'OFF
SHIFT EBITS,-1 >EBITS
JUMP ?PRG3
.FUNCT UNUSE-ESSENCES:ANY:0:1,SPL
ASSIGNED? 'SPL /?CND1
SET 'SPL,ACTION-OBJECT
?CND1: CALL USE-ESSENCES,SPL,FALSE-VALUE
RSTACK
.FUNCT USE-ESSENCE:ANY:1:2,ESS,DEC?,OFF,TMP
ASSIGNED? 'DEC? /?CND1
SET 'DEC?,TRUE-VALUE
?CND1: GETP ESS,P?EOFF >OFF
GET ESSENCE-TBL,OFF >TMP
ZERO? DEC? /?CCL5
EQUAL? TMP,1 \?CND6
FSET ESS,USED-UP
ICALL2 UPDATE-REMOVE,ESS
?CND6: SUB TMP,1
PUT ESSENCE-TBL,OFF,STACK
RTRUE
?CCL5: ZERO? TMP \?CND8
FCLEAR ESS,USED-UP
GET ESSENCE-CONT-TBL,OFF
ICALL UPDATE-MOVE,ESS,STACK
?CND8: ADD TMP,1
PUT ESSENCE-TBL,OFF,STACK
RTRUE
.FUNCT USE-ESSENCES:ANY:1:2,SPL,DEC?,OFF,EBITS
ASSIGNED? 'DEC? /?CND1
SET 'DEC?,TRUE-VALUE
?CND1: SET 'OFF,1
GETP SPL,P?EBITS >EBITS
?PRG3: EQUAL? OFF,EMAX /TRUE
BTST EBITS,1 \?CND5
GET ESSENCE-OBJECT-TBL,OFF
ICALL USE-ESSENCE,STACK,DEC?
?CND5: INC 'OFF
SHIFT EBITS,-1 >EBITS
JUMP ?PRG3
.FUNCT ANONF-26:ANY:0:0
CALL1 PRE-SPELL
ZERO? STACK \TRUE
PRINTI "Praxix reached into his cloak and took out the red invisibility powder; there was enough left for at most "
GET INT-STR,RED-ROCK-COUNT
PRINT STACK
PRINTI " use"
EQUAL? RED-ROCK-COUNT,1 /?CND4
PRINTC 115
?CND4: PRINTI ", and this did not seem like the best situation to waste the precious material."
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT CAST-INVISIBLE:ANY:0:1,ZT
DEC 'RED-ROCK-COUNT
ZERO? RED-ROCK-COUNT \TRUE
ICALL2 UPDATE-REMOVE,INVISIBLE-SPELL
ZERO? ZT /TRUE
CRLF
CRLF
PRINTI "That was the last of the invisibility powder, and we were all sorry to see it go."
RTRUE
.FUNCT ANONF-27:ANY:0:0
CALL1 PRE-SPELL
ZERO? STACK \TRUE
PRINTI "Praxix reached into his cloak and brought forth some air essence. As he tossed it into the air, a great wind came up, almost knocking us off our feet. When the wind subsided, "
ICALL2 WPRINTD,LEADER
PRINTI " quite reasonably asked, ""What was that for?"""
CRLF
CRLF
PRINTI """What, the wind?"" Praxix replied. ""Oh! Just testing, just testing."""
ICALL1 DISSIPATION-CHECK
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT UNDERGROUND-CHECK:ANY:0:0
FSET? HERE,UNDERGROUND /?CCL3
FSET? HERE,INDOORS \FALSE
?CCL3: ICALL1 UNUSE-ESSENCES
PRINTI "Praxix mused about using his '"
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI "' spell, but, upon "
ZERO? SUBGROUP-MODE /?CCL8
PRINTI "further consideration, he realized"
JUMP ?CND6
?CCL8: PRINTI "careful questioning, he admitted"
?CND6: PRINTI " that it could not possibly work "
FSET? HERE,UNDERGROUND \?CCL11
PRINTI "underground."
RTRUE
?CCL11: PRINTI "indoors."
RTRUE
.FUNCT ANONF-28:ANY:0:0
CALL1 UNDERGROUND-CHECK
ZERO? STACK \TRUE
CALL1 PRE-SPELL
ZERO? STACK \TRUE
PRINTI "Praxix reached into his cloak and brought forth a little bit of water essence. He cast it into the air, and soon clouds gathered and a light rain fell on us. It lasted only a minute, but it was refreshing nonetheless."
ICALL1 DISSIPATION-CHECK
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT PRE-SPELL:ANY:0:0
FSET? HERE,DANGEROUS /?CTR2
FSET? SCENE-OBJECT,DANGEROUS \?CCL3
?CTR2: ICALL1 PRAXIX-TOO-DANGEROUS-TO-CAST
RTRUE
?CCL3: ZERO? SUBGROUP-MODE \?CCL7
EQUAL? PRAXIX,LEADER /?CCL7
FSET? ACTION-OBJECT,TRIED \FALSE
?CCL7: ICALL1 PRAXIX-NO-CAST
RTRUE
.FUNCT ANONF-29:ANY:0:0
CALL1 PRE-SPELL
ZERO? STACK \TRUE
PRINTI "Praxix reached into his cloak and brought forth some earth essence. "
FSET? HERE,UNDERGROUND /?CTR5
FSET? HERE,ENCLOSED \?CCL6
?CTR5: PRINTI "But then, fearing for the safety of the party, he replaced it."
ICALL1 UNUSE-ESSENCES
JUMP ?CND4
?CCL6: PRINTI "As he tossed it onto the ground, there was a violent shaking from within the earth. Fortunately, nobody was hurt by this display of magical heroics."
ICALL1 DISSIPATION-CHECK
?CND4: CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT ANONF-30:ANY:0:0,TMP
EQUAL? HERE,STAIR-CHASM \?CCL3
FSET? HERE,BLUE-MIX \?CCL3
ICALL2 FIND-OBJECT,FLOATER
JUMP ?CND1
?CCL3: ZERO? SUBGROUP-MODE /?CCL7
FSET? PRAXIX,SUBGROUP \?CCL7
ICALL2 FIND-OBJECT,HIMSELF-OBJECT
JUMP ?CND1
?CCL7: EQUAL? HERE,MINE-HOLE \?CCL11
GETP HERE,P?TEMP >TMP
ZERO? TMP /?CCL11
GETP TMP,P?ROBJ
ICALL2 FIND-OBJECT,STACK
JUMP ?CND1
?CCL11: EQUAL? HERE,STORMY-SEAS \?CCL15
ICALL2 FIND-OBJECT,TAG-OBJECT
JUMP ?CND1
?CCL15: EQUAL? HERE,IN-RIVER \?CCL17
ICALL2 FIND-OBJECT,RAFT
JUMP ?CND1
?CCL17: EQUAL? HERE,BOAT \?CCL19
ICALL2 FIND-OBJECT,HIMSELF-OBJECT
JUMP ?CND1
?CCL19: ICALL1 FIND-PARTY-OBJECTS
?CND1: EQUAL? HERE,GOLD-STREAM \?CND20
GETP HERE,P?TEMP
GRTR? STACK,0 \?CND20
ICALL2 FIND-OBJECT,TAG-OBJECT
?CND20: CALL2 PRSI-TBL,STR?281
RSTACK
.FUNCT ANONF-31:ANY:0:0
CALL1 PRE-SPELL
ZERO? STACK \TRUE
PRINTI "Perhaps as a joke, Praxix took some air essence and earth essence out of his cloak, mixed them in his hand, and flung them at "
ICALL2 WPRINTD,ACTION-PRSI
PRINTC 46
CRLF
CRLF
PRINTI "He scowled as he rose into the air, then (a long minute later) he slowly fell back to earth, amid a chorus of laughter from the rest of the party. ""Works like it should!"" Praxix said, proudly. ""Do not be cross! We may have need for such things!"""
ICALL1 DISSIPATION-CHECK
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT ANONF-32:ANY:0:0
CALL1 PRE-SPELL
ZERO? STACK \TRUE
FSET? HERE,ENCLOSED /?CCL5
CALL QSET?,MUD-SPELL,EXAMINED
ZERO? STACK \?CCL5
PRINTI "Praxix then decided to cast his mud spell, though none of us could quite fathom why. In any event, he took two powders from his pouch and cast them at the ground, which soon became a morass of thick, brown sludge."
CRLF
CRLF
PRINTI """A little used and much misunderstood spell,"" Praxix said, wiping the "
ICALL TELL-COLOR,ESSENCE-WATER,ESSENCE-EARTH
PRINTI " residue from his hands. ""Only occasionally useful, yet always a mess."""
CRLF
CRLF
PRINTI "We had no idea what he was talking about, of course, and it seemed best not to pursue the matter further."
RTRUE
?CCL5: PRINTI "Praxix then had the peculiar notion of casting his mud spell"
PRINTI ", but decided it was a terrible waste of time."
CALL1 UNUSE-ESSENCES
RSTACK
.FUNCT ANONF-33:ANY:0:0
ICALL FIND-OBJECTS,HERE,DONT-CAST
FSET? HERE,ENCLOSED /?CND1
FSET? HERE,INDOORS /?CND1
ICALL2 FIND-OBJECT,GROUND
?CND1: CALL2 PRSI-TBL,STR?281
RSTACK
.FUNCT ANONF-34:ANY:0:0
CALL1 UNDERGROUND-CHECK
ZERO? STACK \TRUE
CALL1 PRE-SPELL
ZERO? STACK \TRUE
EQUAL? ACTION-PRSI,GROUND \?CCL7
PRINTI "Praxix raised a finger to the wind, then took a quick glance at the sky. The rest of us looked on in bewilderment as Praxix removed some fire and water essences from his pouch and mixed them carefully in his hand. Finally, he added just the smallest amount of earth essence and cast the combination into the sky while aiming his staff at a nearby piece of earth."
CRLF
CRLF
PRINTI "A moment later, the sky was filled with clouds. A dull rumble of thunder preceded a single bolt of white lightning which smote the ground at which Praxix' staff was still pointing."
CALL QSET?,LIGHTNING-SPELL,INCAPACITATED
ZERO? STACK \?CND8
CRLF
CRLF
PRINTI "Praxix, proud of his accomplishment, turned to me and said, ""It's that tiny bit of earth essence that gives the lightning spell its extra punch!"" Then, he turned to the others and spoke."
?CND8: CRLF
CRLF
PRINTI """It's quite exciting to watch,"" he said, ""and sometimes it is even helpful!"""
FSET? ESHER,IN-PARTY \?CND10
CRLF
CRLF
PRINTI """I assume you'll let us know when that is,"" Esher said, derisively."
CRLF
CRLF
PRINTI "Praxix frowned and replied, ""I shall make it a point that you are the first to know."""
?CND10: ICALL1 DISSIPATION-CHECK
FSET LIGHTNING-SPELL,SEEN
CALL1 CHECK-CAST-LIMIT
RSTACK
?CCL7: CALL2 PECULIAR-NOTION,STR?285
RSTACK
.FUNCT PECULIAR-NOTION:ANY:1:1,STR
PRINTI "Praxix then had the peculiar notion of casting his "
PRINT STR
PRINTI " spell"
ZERO? ACTION-PRSI /?CND1
PRINTI " on the "
ICALL2 WPRINTD,ACTION-PRSI
?CND1: PRINTI ", but decided it "
EQUAL? ACTION-PRSI,MOAT-BRIDGE \?CCL5
PRINTI "would ruin any chance he might have of reaching the castle grounds"
JUMP ?CND3
?CCL5: PRINTI "was a terrible waste of time"
?CND3: PRINTC 46
CALL1 UNUSE-ESSENCES
RSTACK
.FUNCT PRAXIX-DEFAULT-CAST:ANY:0:0
FSET? HERE,DANGEROUS /?CTR2
FSET? SCENE-OBJECT,DANGEROUS \?CCL3
?CTR2: CALL1 PRAXIX-TOO-DANGEROUS-TO-CAST
RSTACK
?CCL3: CALL1 PRAXIX-NO-CAST
RSTACK
.FUNCT ANONF-35:ANY:0:0
ICALL FIND-OBJECTS,HERE,DONT-CAST
ICALL2 FIND-OBJECT,GROUND
CALL2 PRSI-TBL,STR?281
RSTACK
.FUNCT ANONF-36:ANY:0:0
CALL1 PRE-SPELL
ZERO? STACK \TRUE
EQUAL? ACTION-OBJECT,GROUND \?CCL5
PRINTI "Praxix took out his fire essence and cast it on the ground before our feet. The spot burst into a white-hot flame that died out only a few moments later."
CRLF
CRLF
PRINTI """Quite useful,"" Praxix said, mainly to himself. ""Keeping away dangerous beasts, cooking meals, warming up a cold campsite. One never knows when a good fire will be needed!"""
ICALL1 DISSIPATION-CHECK
CALL1 CHECK-CAST-LIMIT
RSTACK
?CCL5: CALL2 PECULIAR-NOTION,STR?288
RSTACK
.FUNCT ANONF-37:ANY:0:0
ICALL2 FIND-OBJECTS,PRAXIX-CAST-OBJECTS
ICALL FIND-OBJECTS,INVENTORY,DONT-CAST
ICALL FIND-OBJECTS,HERE,DONT-CAST
CALL2 PRSI-TBL,STR?17
RSTACK
.FUNCT ANONF-38:ANY:0:0
EQUAL? HERE,WEBBA-MAP-GLOW-LOC /FALSE
REMOVE I-CLEAR-WEBBA-MAP-EXAMINE
CALL UPDATE-FSET,WEBBA-MAP,DONT-EXAMINE
RSTACK
.FUNCT CAST-LIGHT:ANY:0:0
EQUAL? ACTION-PRSI,STAFF \?CCL3
FSET? HERE,UNDERGROUND /?CCL6
FSET? HERE,NEAR-DARK /?CCL6
FSET? PRAXIX,LIT \?CCL11
CALL1 DONT-WASTE-LIGHT
RSTACK
?CCL11: FSET? HERE,NEAR-DARK \?CCL13
SET 'DARKNESS-CAST?,FALSE-VALUE
FSET PRAXIX,LIT
PRINTI "Thinking light might be soon needed, Praxix removed his pouch of essences and, combining that of earth and fire, applied the mix to his staff, which started to glow a faint red color."
RTRUE
?CCL13: PRINTI "Presumably for practice, or perhaps out of boredom, Praxix removed his pouch of magical essences and, combining two of them, applied the resulting mixture to his staff which started to glow a faint red color."
SET 'DARKNESS-CAST?,FALSE-VALUE
ZERO? SUBGROUP-MODE \?CND14
CRLF
CRLF
PRINTI """Gotten me out of many a tight spot,"" he said without explanation."
?CND14: FSET PRAXIX,LIT
ICALL1 DISSIPATION-CHECK
CALL1 CHECK-CAST-LIMIT
RSTACK
?CCL6: FSET? PRAXIX,LIT /?CCL17
ZERO? SUBGROUP-MODE \?CCL17
FSET PRAXIX,LIT
FSET? HERE,NEAR-DARK \?CCL22
PRINTI "Praxix now withdrew some earth and fire essences and cast them at his staff, causing it"
JUMP ?CND20
?CCL22: PRINTI "You can imagine our surprise when, in this deepest gloom, Praxix' staff began"
?CND20: PRINTI " to glow with a brilliant red light. ""A good thing we found fire essence,"" Praxix said, blankly. ""I only hope I didn't use too much."""
FSET? ESHER,IN-PARTY \?CND23
CRLF
CRLF
PRINTI """Some Wizard!"" replied Esher. ""Heaven help us!"""
?CND23: ICALL1 CHECK-CAST-LIMIT
EQUAL? HERE,BERN-I-LAV,DWARF-MEETING-LOC \TRUE
ICALL1 CAVERN-GRAPHIC
RTRUE
?CCL17: CALL QSET?,PRAXIX,LIT
ZERO? STACK \?CCL28
PRINTI "Praxix now withdrew some earth and fire essences and cast them at his staff, causing it to glow with a brilliant red light."
CRLF
CRLF
PRINTI """Should do nicely,"" he said to himself. ""Very nicely indeed."""
RTRUE
?CCL28: ZERO? SUBGROUP-MODE /?CCL30
CALL1 DONT-WASTE-LIGHT
RSTACK
?CCL30: PRINTI "The light emanating from Praxix' staff appeared fine to us, but Praxix took more fire and earth essence from his pouch and applied it to the staff anyway. ""Can't be too sure,"" he said."
REMOVE HYE-GLOW
CALL1 CHECK-CAST-LIMIT
RSTACK
?CCL3: EQUAL? ACTION-PRSI,WEBBA-MAP \?CCL32
FCLEAR WEBBA-MAP,DEAD
FSET WEBBA-MAP,SOLVED
ICALL UPDATE-FCLEAR,WEBBA-MAP,DONT-EXAMINE
SET 'WEBBA-MAP-GLOW-LOC,HERE
ICALL QUEUE,I-CLEAR-WEBBA-MAP-EXAMINE,-1
FSET WEBBA-MAP,ENCHANTED
ICALL QUEUE,I-WEBBA-MAP-GLOW,1
FSET ACTION-PRSI,DONT-CAST
PRINTI "I suppose it was only a hunch, but Praxix decided to cast his glow spell on the map that Webba had given us. Much to our surprise, a chain of runes began to glow, pointing the way to some unknown place."
CRLF
CRLF
PRINTI """This solves the mystery of which runes were originally there,"" he said, proudly, ""though it says nothing of who put it there, and why"
EQUAL? HERE,ASTRIX-MAZE \?CND33
PRINTI ", though I would lay odds it was Astrix himself"
?CND33: PRINTI "."""
RTRUE
?CCL32: EQUAL? ACTION-PRSI,GATE-RUNES \?CCL36
FSET ACTION-PRSI,DONT-CAST
PRINTI "This sort of thing had worked before, so Praxix took out his magical powders and cast his glow enchantment on the strange ruins above the gate. The runes did, in fact, glow more brightly than they had before, yet no other change occurred - certainly none that we found useful in getting through the gate."
RTRUE
?CCL36: PRINTI "Praxix then had the most peculiar notion of casting his glow spell on the "
ICALL2 WPRINTD,ACTION-PRSI
PRINTI ", but decided it was a terrible waste of time."
CALL1 UNUSE-ESSENCES
RSTACK
.FUNCT ANONF-39:ANY:0:0
FCLEAR WEBBA-MAP,ENCHANTED
RTRUE
.FUNCT DONT-WASTE-LIGHT:ANY:0:0
PRINTI "Praxix checked his staff, but a usable light was already emanating from it. Figuring it best not to waste magical essences, he decided against recharging it with light."
ICALL1 UNUSE-ESSENCES
CALL1 CHECK-CAST-LIMIT
RSTACK
.FUNCT CAST-FAR-VISION:ANY:0:1,DFLT?
ASSIGNED? 'DFLT? /?CND1
SET 'DFLT?,TRUE-VALUE
?CND1: FSET? HERE,ENCLOSED /?CTR4
FSET? HERE,INDOORS \?CCL5
?CTR4: PRINTI "Praxix now considered using his flare spell, but felt it was too dangerous considering how enclosed our surroundings were."
ICALL1 UNUSE-ESSENCES
RTRUE
?CCL5: CALL QSET?,FAR-VISION-SPELL,SEEN
ZERO? STACK \?CCL9
PRINTI "Praxix raised his arm before him, and from his crooked forefinger shot a small ball of fire"
FSET? HERE,UNDERGROUND \?CCL12
PRINTI ", illuminating the cavern walls as it sped into the gloom."
JUMP ?CND3
?CCL12: PRINTI ", disappearing into the air before him."
ICALL1 CHECK-CAST-LIMIT
JUMP ?CND3
?CCL9: FSET? HERE,UNDERGROUND \?CCL14
PRINTI "Praxix, using his flare spell, illuminated the darkness before "
ZERO? SUBGROUP-MODE /?CCL17
PRINTI "him."
JUMP ?CND3
?CCL17: PRINTI "us."
JUMP ?CND3
?CCL14: PRINTI "Praxix, casting his flare spell, shot a ball of fire into the distance."
?CND3: ZERO? DFLT? /TRUE
PRINTI " Unfortunately, "
FSET? HERE,UNDERGROUND \?CCL22
PRINTI "nothing was revealed in the gloom."
RTRUE
?CCL22: PRINTI "there was no response, and nothing new was revealed."
RTRUE
.FUNCT V-MIX:ANY:0:0
PRINTI "Carefully, Praxix mixed the "
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI " with an equal amount of "
ICALL2 WPRINTD,ACTION-PRSI
PRINTI ", "
SET 'MIX-ESSENCE,ACTION-PRSI
SET 'MIX-REAGENT,ACTION-OBJECT
EQUAL? MIX-REAGENT,REAGENT,BLUE-REAGENT \?CCL3
EQUAL? MIX-ESSENCE,ESSENCE-FIRE \?CCL3
SET 'MIXTURE,SPECIAL-VISION-SPELL
JUMP ?CND1
?CCL3: EQUAL? MIX-REAGENT,REAGENT,BLUE-REAGENT \?CCL7
EQUAL? MIX-ESSENCE,ESSENCE-WATER \?CCL7
SET 'MIXTURE,ANIMATE-SPELL
JUMP ?CND1
?CCL7: EQUAL? MIX-REAGENT,GRAY-REAGENT \?CCL11
EQUAL? MIX-ESSENCE,ESSENCE-AIR \?CCL11
SET 'MIXTURE,FOREBODING-SPELL
JUMP ?CND1
?CCL11: EQUAL? MIX-REAGENT,GRAY-REAGENT \?CCL15
EQUAL? MIX-ESSENCE,ESSENCE-FIRE \?CCL15
SET 'MIXTURE,BEND-WILL-SPELL
JUMP ?CND1
?CCL15: EQUAL? MIX-REAGENT,BLACK-REAGENT \?CCL19
EQUAL? HERE,ZAN-CAVE \?CCL19
EQUAL? MIX-ESSENCE,ESSENCE-FIRE \?CCL24
SET 'MIXTURE,DARKNESS-SPELL
JUMP ?CND1
?CCL24: EQUAL? MIX-ESSENCE,ESSENCE-WATER \?CCL26
SET 'MIXTURE,ILLNESS-SPELL
JUMP ?CND1
?CCL26: EQUAL? MIX-ESSENCE,ESSENCE-EARTH \?CCL28
SET 'MIXTURE,COLD-SPELL
JUMP ?CND1
?CCL28: SET 'MIXTURE,DESPAIR-SPELL
JUMP ?CND1
?CCL19: SET 'MIXTURE,UNSTABLE-MIX
?CND1: EQUAL? MIX-REAGENT,BLACK-REAGENT \?CCL31
ZERO? MIXTURE \?CCL31
ICALL2 UPDATE-REMOVE,BLACK-REAGENT
PRINTI "but the strangest thing happened. The mixture itself, along with the remaining black reagent, simply vanished into the air."
CRLF
CRLF
GRTR? BLACK-COUNT,0 \TRUE
PRINTI """It would appear that without Umber, the mixtures are powerless,"" Praxix said. ""He possesses a great power, and his magic has harnessed the very essence of evil! But for what purpose?"""
RTRUE
?CCL31: ZERO? MIXTURE /?CCL37
FSET? MIXTURE,SEEN \?CCL37
PRINTI "and was soon ready to cast the mixture."
JUMP ?CND29
?CCL37: ZERO? MIXTURE /?CND40
FSET MIXTURE,SEEN
?CND40: PRINTI "and was now ready to cast the unknown mix to see what enchantment it would perform."
?CND29: SET 'MIX-DONE,TRUE-VALUE
ZERO? MIXTURE /?CCL44
ICALL2 USE-ESSENCES,MIXTURE
JUMP ?CND42
?CCL44: ICALL2 USE-ESSENCE,MIX-REAGENT
ICALL2 USE-ESSENCE,MIX-ESSENCE
?CND42: CALL1 FIXUP-PRAXIX-COMMANDS
RSTACK
.FUNCT FIXUP-PRAXIX-COMMANDS:ANY:0:0
ZERO? MIX-DONE \?CCL3
CALL TRAVEL-COMMANDS,PRAXIX,CAST-COMMAND,MIX-COMMAND,EXAMINE-COMMAND
RSTACK
?CCL3: CALL TRAVEL-COMMANDS,PRAXIX,CAST-COMMAND,USE-MIX-COMMAND,EXAMINE-COMMAND
RSTACK
.FUNCT V-USE-MIX:ANY:0:0
SET 'MIX-DONE,FALSE-VALUE
ICALL1 FIXUP-PRAXIX-COMMANDS
EQUAL? PARTY-MODE,FIGHT-MODE \?CND1
ICALL CHANGE-CIT,PRAXIX,2,NUL-COMMAND
?CND1: ZERO? MIXTURE \?CCL5
EQUAL? MIX-REAGENT,GRAY-REAGENT \?CCL8
FSET MIX-ESSENCE,GRAY-MIX
JUMP ?CND6
?CCL8: EQUAL? MIX-REAGENT,BLUE-REAGENT,REAGENT \?CCL10
FSET MIX-ESSENCE,BLUE-MIX
JUMP ?CND6
?CCL10: FSET MIX-ESSENCE,BLACK-MIX
?CND6: PRINTI "Even as Praxix cast this unknown mixture, it disintegrated into the air."
CRLF
CRLF
ZERO? SUBGROUP-MODE /?CCL13
PRINTI """Blasted powders,"" he said aloud."
RTRUE
?CCL13: CALL QSET?,MIX-REAGENT,TRAPPED
ZERO? STACK \?CCL15
PRINTI """Astrix warned us that some mixtures would be unstable,"" he said, ""It would appear that he was right."""
RTRUE
?CCL15: PRINTI """Another unstable mixture,"" Praxix said with a sigh."
RTRUE
?CCL5: PRINTI "Praxix cast his mixture at "
EQUAL? ACTION-OBJECT,BERGON-OBJECT,ESHER-OBJECT,MINAR-OBJECT /?CND16
PRINTI "the "
?CND16: ICALL2 WPRINTD,ACTION-OBJECT
PRINTI ", but nothing appeared to happen. ""It was worth a try,"" Praxix said, but he was clearly disappointed with the result."
RTRUE
.FUNCT O-CAST-MIX:ANY:0:0
ICALL FIND-OBJECTS,HERE,DONT-CAST
CALL2 FIND-OBJECTS,PRAXIX-CAST-OBJECTS
RSTACK
.FUNCT ANONF-40:ANY:0:0
EQUAL? ACTION,USE-MIX-COMMAND \FALSE
ZERO? MIXTURE /FALSE
EQUAL? MIXTURE,FOREBODING-SPELL \?CCL8
FSET FOREBODING-SPELL,ENCHANTED
PRINTI "Praxix cast this strange new mixture at his staff, and the oddest thing happened. Rather than the pale red glow of his ""glow"" spell, his staff now gave off a "
FSET? HERE,FORBIDDING \?CCL11
PRINTI "deep red glow"
JUMP ?CND9
?CCL11: PRINTI "dim green glow which was barely perceptible to the eye"
?CND9: PRINTC 46
ICALL QUEUE,RESET-FOREBODING-OBJ,5
CALL QSET?,STAFF,ENCHANTED
ZERO? STACK \?CND12
PRINTI " We waited a while longer, but nothing further happened."
REMOVE HYE-FOREBODING
CRLF
CRLF
PRINTI """Odd,"" Praxix said, ""Either the spell is useless, or it works in a manner that we have not yet discovered - I wonder which."""
?CND12: ICALL1 MIXTURE-CAST
RTRUE
?CCL8: PRINTI "Unsure of what to cast the mixture at, Praxix thought to try his staff. Sadly, though, nothing happened."
ICALL1 MIXTURE-CAST
RTRUE
.FUNCT FIND-PARTY-OBJECTS:ANY:0:0,CNT,CHR
?PRG1: IGRTR? 'CNT,PARTY-MAX /TRUE
GET PARTY,CNT >CHR
ZERO? CHR /?PRG1
FSET? CHR,IN-PARTY \?PRG1
EQUAL? CHR,PRAXIX /?PRG1
GETP CHR,P?ROBJ >CHR
ZERO? CHR /?PRG1
LOC CHR
ZERO? STACK /?PRG1
ICALL2 FIND-OBJECT,CHR
JUMP ?PRG1
.FUNCT PRSI-TBL:ANY:1:1,STR,OBJ1,OBJ2,OBJ3,OBJ4,CNT,?TMP1,?TMP2,?TMP3
GET O-TABLE,0 >CNT
ZERO? CNT \?CCL3
SET 'ACTION-PRSI,FALSE-VALUE
RTRUE
?CCL3: EQUAL? CNT,4 \?CCL5
GET O-TABLE,1 >?TMP3
GET O-TABLE,2 >?TMP2
GET O-TABLE,3 >?TMP1
GET O-TABLE,4
ICALL PRSI-SETUP,?TMP3,?TMP2,?TMP1,STACK
JUMP ?CND1
?CCL5: EQUAL? CNT,3 \?CCL7
GET O-TABLE,1 >?TMP2
GET O-TABLE,2 >?TMP1
GET O-TABLE,3
ICALL PRSI-SETUP,?TMP2,?TMP1,STACK
JUMP ?CND1
?CCL7: EQUAL? CNT,2 \?CCL9
GET O-TABLE,1 >?TMP1
GET O-TABLE,2
ICALL PRSI-SETUP,?TMP1,STACK
JUMP ?CND1
?CCL9: EQUAL? CNT,1 \?CND1
GET O-TABLE,1
ICALL2 PRSI-SETUP,STACK
?CND1: GRTR? CNT,4 \?CCL13
CALL PRSI-INPUT,STR,FALSE-VALUE
RSTACK
?CCL13: CALL PRSI-INPUT,STR,TRUE-VALUE
RSTACK
.FUNCT PRSI-SETUP:ANY:0:4,OBJ1,OBJ2,OBJ3,OBJ4,CNT
ASSIGNED? 'OBJ1 \?CND1
LOC OBJ1
ZERO? STACK /?CND1
INC 'CNT
ADD CNT,5
PUT O-TABLE,STACK,OBJ1
?CND1: ASSIGNED? 'OBJ2 \?CND5
LOC OBJ2
ZERO? STACK /?CND5
INC 'CNT
ADD CNT,5
PUT O-TABLE,STACK,OBJ2
?CND5: ASSIGNED? 'OBJ3 \?CND9
LOC OBJ3
ZERO? STACK /?CND9
INC 'CNT
ADD CNT,5
PUT O-TABLE,STACK,OBJ3
?CND9: ASSIGNED? 'OBJ4 \?CND13
LOC OBJ4
ZERO? STACK /?CND13
INC 'CNT
ADD CNT,5
PUT O-TABLE,STACK,OBJ4
?CND13: PUT O-TABLE,5,CNT
ADD 6,CNT
PUT O-TABLE,0,STACK
RTRUE
.FUNCT PRSI-ESSENCE:ANY:0:0
PUT O-TABLE,0,0
ICALL2 FIND-OBJECTS,ESSENCES
CALL2 PRSI-TBL,STR?304
RSTACK
.FUNCT ESSENCE-PRSI:ANY:0:0
EQUAL? ACTION-OBJECT,ESSENCE-EARTH \?CCL3
ICALL PRSI-SETUP,ESSENCE-AIR,ESSENCE-FIRE,ESSENCE-WATER
JUMP ?CND1
?CCL3: EQUAL? ACTION-OBJECT,ESSENCE-AIR \?CCL5
ICALL PRSI-SETUP,ESSENCE-EARTH,ESSENCE-FIRE,ESSENCE-WATER
JUMP ?CND1
?CCL5: EQUAL? ACTION-OBJECT,ESSENCE-FIRE \?CCL7
ICALL PRSI-SETUP,ESSENCE-EARTH,ESSENCE-AIR,ESSENCE-WATER
JUMP ?CND1
?CCL7: ICALL PRSI-SETUP,ESSENCE-EARTH,ESSENCE-AIR,ESSENCE-FIRE
?CND1: CALL PRSI-INPUT,STR?304,TRUE-VALUE
RSTACK
.FUNCT GET-SPELL:ANY:2:2,C1,C2,TBL,E1,E2
GETP C1,P?ESSENCE >E1
GETP C2,P?ESSENCE >E2
GETPT E1,P?MIX-SPELL
ZERO? STACK /?CTR2
GETPT E2,P?MIX-SPELL
ZERO? STACK \?CCL3
?CTR2: RETURN TAG-POWDERS
?CCL3: GETPT E1,P?MIX-SPELL >TBL
GETP E2,P?TEMP
GET TBL,STACK
RSTACK
.FUNCT TELL-COLOR:ANY:2:2,E1,E2,TBL,P1,P2
GETP E1,P?COLOR >P1
GETP E2,P?COLOR >P2
FSET? P1,COARSE \?CCL3
FSET? P2,COARSE \?CCL3
PRINTI "coarse "
JUMP ?CND1
?CCL3: FSET? P1,COARSE /?CCL7
FSET? P2,COARSE /?CCL7
PRINTI "fine "
JUMP ?CND1
?CCL7: PRINTI "medium textured "
?CND1: GETPT P1,P?MIX-COLOR >TBL
GETP P2,P?TEMP
GET TBL,STACK
PRINT STACK
RTRUE
.FUNCT REMOVE-MISSING-POWDERS:ANY:0:0
ICALL2 EP-CHECK,ESSENCE-FIRE
ICALL2 EP-CHECK,ESSENCE-WATER
ICALL2 EP-CHECK,ESSENCE-AIR
CALL2 EP-CHECK,ESSENCE-EARTH
RSTACK
.FUNCT EP-CHECK:ANY:1:1,ESS
IN? ESS,ESSENCES /FALSE
DEC 'NUM-POWDERS
GETP ESS,P?COLOR
REMOVE STACK
RTRUE
.FUNCT O-MIX:ANY:0:0
EQUAL? ACTOR,TAG \?CCL3
ICALL1 REMOVE-MISSING-POWDERS
CALL2 FIND-OBJECTS,TAG-POWDERS
RSTACK
?CCL3: EQUAL? HERE,ZAN-OUTSKIRTS \?CCL5
FSET? HERE,SEEN \?CCL5
CALL2 FIND-OBJECTS,ESSENCES
RSTACK
?CCL5: FIRST? ESSENCES \FALSE
CALL2 FIND-OBJECTS,REAGENTS
RSTACK
.FUNCT MIXTURE-CAST:ANY:0:0
SET 'MIX-DONE,FALSE-VALUE
ICALL1 FIXUP-PRAXIX-COMMANDS
RTRUE
.FUNCT SAVE-SPELL:ANY:0:1,SP
ASSIGNED? 'SP /?CND1
SET 'SP,ACTION-OBJECT
?CND1: GETPT SP,P?TEMP
ZERO? STACK \?CCL5
PRINTI "[Error: No Spell TEMP]"
RTRUE
?CCL5: LOC SP
PUTP SP,P?TEMP,STACK
CALL UPDATE-MOVE,SP,SAVED-SPELLS
RSTACK
.FUNCT RESTORE-SPELLS:ANY:0:0,F,N
FIRST? SAVED-SPELLS >F /?PRG2
?PRG2: ZERO? F /TRUE
NEXT? F >N /?BOGUS7
?BOGUS7: GETP F,P?TEMP
ICALL UPDATE-MOVE,F,STACK
SET 'F,N
JUMP ?PRG2
.FUNCT ANONF-41:ANY:0:0
EQUAL? ACTION,CAST-COMMAND \FALSE
EQUAL? TAG-SPELL,LIGHTNING-SPELL \?CCL6
EQUAL? TAG-PINCH,ESSENCE-EARTH \?CCL6
ICALL2 GRAPHIC,G-EVIL-ONE
PRINTI "The time seemed right, so I flung the mixture of essences at the Dread Lord and, as an added touch, I grabbed Praxix' staff and pointed it at him as well. The clouds approached, and before the demon could react, a single bolt of lightning was hurled from the sky, smiting him and the hideous creature that had borne him here. All that remained was his silver locket, which clattered to the ground at our feet."
CRLF
CRLF
PRINTI "But as the smoking remains of the Dread Lord rose into the sky, so did another shape, forming itself from the very ashes. Its face was a pale gray, its eyes a fiery red."
CRLF
CRLF
PRINTI """You are fortunate to have defeated me,"" it said in a dark whisper, ""but, after all, my form was merely flesh and blood, as was the miserable creature that carried me here."""
CRLF
CRLF
PRINTI "And then, his eyes turned to me, and his gaze burned my skin. ""I shall make it a point that we meet again; and then, we shall see..."" The smoke dissipated, and the voice trailed off into nothingness."
CRLF
CRLF
PRINTI "Praxix, having missed the whole thing, now regained consciousness, and I told him what had happened. Then, I bent down and picked up the demon's locket, placing it in my pack."
CRLF
CRLF
PRINTI """Well, well,"" he said, proudly. ""We shall be making a Wizard of you yet!"""
CALL1 END-DEMON
RSTACK
?CCL6: SET 'DEMON-COUNT,10
ICALL2 HINT,HINT-MAGIC
PRINTI "As soon as the mixture left my fingertips, I knew I had failed. For what happened was that "
EQUAL? TAG-SPELL,LIGHTNING-SPELL \?CCL11
PRINTI "the clouds gathered slowly, and a few small bolts of lightning appeared, though they did not nearly reach the earth."
RTRUE
?CCL11: EQUAL? TAG-SPELL,LEVITATE-SPELL \?CCL13
PRINTI "the demon rose into the air! I had cast a spell of elevation on him, and he merely laughed at my futile effort."
RTRUE
?CCL13: EQUAL? TAG-SPELL,MUD-SPELL \?CCL15
PRINTI "the ground before us turned soft and squishy; I had a mud producing spell, and the demon laughed hideously at my ridiculous effort."
RTRUE
?CCL15: EQUAL? TAG-SPELL,LIGHT-SPELL \?CCL17
PRINTI "the demon's cape started to glow faintly - I had cast the glow spell my mistake!"
RTRUE
?CCL17: EQUAL? TAG-SPELL,FOG-SPELL \?CCL19
PRINTI "a thick fog started to form around us; the demon blew it away with a powerful breath! I had prepared the wrong mixture!"
RTRUE
?CCL19: EQUAL? TAG-SPELL,FAR-VISION-SPELL \?CCL21
PRINTI "a fireball flew from my fingertips, passing the demon by harmlessly - in my haste, I had prepared the wrong mixture!"
RTRUE
?CCL21: PRINTI "nothing whatever happened."
RTRUE
.FUNCT TAG-POWDER-MIX:ANY:0:0,OFF
EQUAL? ACTION,MIX-COMMAND \FALSE
GETP ACTION-PRSI,P?TEMP >OFF
CALL GET-SPELL,ACTION-OBJECT,ACTION-PRSI >TAG-SPELL
REMOVE ACTION-OBJECT
REMOVE ACTION-PRSI
PRINTI "Trying not to attract the attention of the demon, I quietly mixed roughly equal amounts of the "
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI " powder and the "
ICALL2 WPRINTD,ACTION-PRSI
PRINTI " powder, hoping the resulting combination would create a powerful lightning spell. In any event, I would soon find out."
PUTP TAG-C-RED-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-C-BLUE-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-C-YELLOW-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-C-WHITE-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-RED-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-BLUE-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-YELLOW-POWDER,P?PRSI,FALSE-VALUE
PUTP TAG-WHITE-POWDER,P?PRSI,FALSE-VALUE
CALL TRAVEL-COMMANDS,TAG,CAST-COMMAND,ADD-PINCH-COMMAND
RSTACK
.FUNCT V-ADD-PINCH:ANY:0:0
GETP ACTION-OBJECT,P?ESSENCE >TAG-PINCH
ICALL TRAVEL-COMMANDS,TAG,CAST-COMMAND
PRINTI "Then, I added to the mixture just the smallest pinch of the "
ICALL2 WPRINTD,ACTION-OBJECT
PRINTI " powder."
RTRUE
.FUNCT O-ADD-PINCH:ANY:0:0,F
ICALL2 FIND-OBJECTS,TAG-POWDERS
RTRUE
.FUNCT PRSI-TAG-POWDERS:ANY:0:0
REMOVE ACTION-OBJECT
ICALL2 FIND-OBJECTS,TAG-POWDERS
MOVE ACTION-OBJECT,TAG-POWDERS
CALL2 PRSI-TBL,STR?304
RSTACK
.ENDSEG
.ENDI