beyondzork/monsters.zap

1118 lines
26 KiB
Plaintext

.FUNCT CRAB-F,CONTEXT,X
ZERO? CONTEXT /?CCL3
EQUAL? CONTEXT,M-CONT \FALSE
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \FALSE
ICALL2 CTHE-PRINT,CRAB
PRINTR " snaps at your fingers. Yow!"
?CCL3: EQUAL? PRSA,V?HIT,V?MUNG /?CCL9
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \?CCL9
ICALL1 SHY-CRAB
RTRUE
?CCL9: ZERO? NOW-PRSI? /?CCL13
EQUAL? PRSA,V?THROW,V?THROW-OVER \?CCL16
ICALL1 MONSTER-THROW
RTRUE
?CCL16: EQUAL? PRSA,V?PUT-ON,V?EMPTY-INTO \FALSE
ICALL1 PRSO-SLIDES-OFF-PRSI
RTRUE
?CCL13: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \?CCL19
ICALL1 CTHE-PRINT
PRINTI " adjusts the crown on its head, and glares at you defiantly. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
?CCL19: EQUAL? PRSA,V?WHAT,V?WHO \FALSE
ICALL1 REFER-TO-PACKAGE
RETURN 2
.FUNCT SHY-CRAB
ICALL2 CTHE-PRINT,CRAB
PRINTR " sidesteps out of your reach."
.FUNCT RAT-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTI " glares back at you, snarling. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT DESCRIBE-HEAP,OBJ
PRINTI "heap of bones"
RTRUE
.FUNCT SKELETON-F,CONTEXT
EQUAL? CONTEXT,M-OBJDESC \?CCL3
ICALL2 PRINTCA,SKELETON
ZERO? CHOKE /?CCL6
PRINTI " is clutching your throat."
JUMP ?CND4
?CCL6: PRINT STR?507
FSET? AMULET,TOUCHED /?CND7
FSET AMULET,NODESC
?CND7: CALL2 SEE-ANYTHING-IN?,SKELETON
ZERO? STACK /?CND9
PRINTI " On it you see "
ICALL2 CONTENTS,SKELETON
PRINTC PER
?CND9: FCLEAR AMULET,NODESC
?CND4: FSET? AMULET,TOUCHED /TRUE
PRINTI " An amulet dangles from its neck."
RTRUE
?CCL3: CALL2 STRANGLE?,SKELETON
ZERO? STACK /?CCL14
RETURN 2
?CCL14: ZERO? NOW-PRSI? \FALSE
EQUAL? PRSA,V?TAKE,V?KICK,V?HIT /?CTR19
EQUAL? PRSA,V?SHAKE,V?MOVE,V?PUSH /?CTR19
EQUAL? PRSA,V?PULL,V?ADJUST \?CCL20
?CTR19: FSET? PRSO,MUNGED \?CND24
ICALL1 WASTE-OF-TIME
RTRUE
?CND24: BOR NEW-DBOX,SHOWING-ROOM >NEW-DBOX
FSET PRSO,MUNGED
FSET PRSO,SEEN
PUTP PRSO,P?SDESC,DESCRIBE-HEAP
FSET AMULET,TOUCHED
ICALL REPLACE-SYN?,PRSO,W?BODY,W?PILE
ICALL REPLACE-SYN?,PRSO,W?CORPSE,W?HEAP
ICALL REPLACE-SYN?,PRSO,W?NECK,W?ZZZP
ICALL REPLACE-ADJ?,PRSO,W?SKELETON,W?ZZZP
PRINTI "With a sigh of exhaustion, "
ICALL1 THE-PRINT
ZERO? CHOKE /?CND26
SET 'CHOKE,0
ICALL2 DEQUEUE,I-STRANGLE
PRINTI " releases its strangle hold and"
?CND26: PRINTI " crumbles into a useless "
ICALL2 DPRINT,PRSO
PRINT PERIOD
GETP SKELETON,P?VALUE
ICALL UPDATE-STAT,STACK,EXPERIENCE
RTRUE
?CCL20: EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?SEARCH /?CTR28
EQUAL? PRSA,V?LOOK-UNDER,V?DIG,V?DIG-UNDER \?CCL29
?CTR28: PRINTI "You find "
FSET? AMULET,TOUCHED /?CND32
FSET AMULET,NODESC
?CND32: ICALL1 CONTENTS
FCLEAR AMULET,NODESC
PRINT PERIOD
RTRUE
?CCL29: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \FALSE
FSET? PRSO,MUNGED /FALSE
PRINTI "It grins at you horribly. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT SNIPE-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTI "'s beak is almost a foot long, and sharp as a needle. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT VAPOR-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: INTBL? PRSA,TALKVERBS,NTVERBS >X \?CCL9
ICALL1 PCLEAR
ICALL1 CTHE-PRINT
PRINTI " murmurs vaguely in response."
CRLF
RETURN 2
?CCL9: EQUAL? PRSA,V?EXAMINE \?CCL13
ICALL1 DIAGNOSE-MONSTER
FSET? PRSO,TOUCHED /TRUE
FSET PRSO,TOUCHED
PRINT TAB
ICALL1 REFER-TO-PACKAGE
RTRUE
?CCL13: EQUAL? PRSA,V?WHAT,V?WHO \FALSE
ICALL1 REFER-TO-PACKAGE
RETURN 2
.FUNCT SPIDER-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTI " looks alarmingly well-fed. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT SLUG-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER,V?PUT-ON /?CCL7
EQUAL? PRSA,V?PUT,V?TOUCH-TO \FALSE
?CCL7: ICALL2 TOUCH-SLUG-WITH,PRSO
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \FALSE
ICALL1 CTHE-PRINT
PRINTI " is about as long as you are tall. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT TOUCH-SLUG-WITH,OBJ
ICALL2 ITALICIZE,STR?664
PRINTI "! "
EQUAL? OBJ,CUBE /?CND1
BOR NEW-DBOX,SHOWING-ALL >NEW-DBOX
MOVE OBJ,HERE
ICALL2 CTHE-PRINT,OBJ
PRINTI " slips off "
ICALL2 THE-PRINT,SLUG
PRINTR "'s oozing body with no effect."
?CND1: REMOVE CUBE
ICALL2 VANISH,SLUG
ICALL2 CTHE-PRINT,SLUG
PRINTI " emits a shriek of agony as "
ICALL2 THE-PRINT,OBJ
PRINTI " slides across its body. You leap out of its path of retreat, and listen as its repulsive squeals "
PRINT STR?593
ICALL2 KILL-MONSTER,SLUG
RTRUE
.FUNCT DESCRIBE-DUST,OBJ
PRINTI "dust bunny"
RTRUE
.FUNCT DUST-F,CONTEXT,X
EQUAL? CONTEXT,M-OBJDESC \?CCL3
LESS? BUNNIES,5 \?CCL6
PRINT XA
EQUAL? BUNNIES,1 \?CCL9
PRINTI "dust bunny is "
JUMP ?CND7
?CCL9: EQUAL? BUNNIES,2 \?CCL12
PRINTI "pair"
JUMP ?CND10
?CCL12: PRINTI "trio"
?CND10: PRINTI " of "
PRINTD DUST
PRINTI " are "
?CND7: PRINTI "lurking in "
ICALL2 THE-PRINT,GCORNER
PRINTC PER
RTRUE
?CCL6: EQUAL? BUNNIES,8 \?CCL14
PRINTI "Eight"
JUMP ?CND4
?CCL14: EQUAL? BUNNIES,13 \?CCL16
PRINTI "Thirteen"
JUMP ?CND4
?CCL16: GRTR? BUNNIES,BMAX \?CCL18
PRINTI "Countless"
JUMP ?CND4
?CCL18: GRTR? BUNNIES,999 \?CCL20
DIV BUNNIES,1000
PRINTN STACK
PRINTC COMMA
MOD BUNNIES,1000
PRINTN STACK
JUMP ?CND4
?CCL20: PRINTN BUNNIES
?CND4: PRINTC SP
PRINTD DUST
PRINTI " hover in the air."
RTRUE
?CCL3: ZERO? CONTEXT \FALSE
FSET? DUST,TOUCHED /?CND1
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \?CND1
ICALL1 START-DUST
?CND1: ZERO? NOW-PRSI? /?CCL27
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
MOVE PRSO,HERE
BOR NEW-DBOX,SHOWING-ALL >NEW-DBOX
ICALL1 CTHEI-PRINT
PRINTI " easily avoid "
ICALL1 THE-PRINT
PRINT PERIOD
RTRUE
?CCL27: EQUAL? PRSA,V?HIT,V?MUNG,V?CUT /?CTR30
EQUAL? PRSA,V?TOUCH,V?KICK,V?TAKE /?CTR30
EQUAL? PRSA,V?SHAKE \?CCL31
?CTR30: ICALL1 HIT-BUNNIES
RTRUE
?CCL31: EQUAL? PRSA,V?EXAMINE,V?COUNT \FALSE
FCLEAR PRSO,SEEN
EQUAL? BUNNIES,1 \?CCL39
ICALL1 ONLY-ONE
RTRUE
?CCL39: GRTR? BUNNIES,BMAX \?CND37
ICALL1 CTHE-PRINT
PRINTR " number in the countless thousands."
?CND37: PRINTI "A quick count turns up "
GRTR? BUNNIES,999 \?CCL43
DIV BUNNIES,1000
PRINTN STACK
PRINTC COMMA
MOD BUNNIES,1000
PRINTN STACK
JUMP ?CND41
?CCL43: PRINTN BUNNIES
?CND41: PRINTC SP
PRINTD PRSO
PRINT PERIOD
RTRUE
.FUNCT HIT-BUNNIES
ICALL1 WHOOSH
ZERO? PRSI \?CND1
SET 'PRSI,HANDS
?CND1: ICALL1 YOUR-OBJ
PRINTI " swipes through "
ICALL1 THE-PRINT
PRINT PTAB
CALL SPARK-TO?,PRSI,PRSO
ZERO? STACK \TRUE
ICALL2 I-DUST,FALSE-VALUE
RFALSE
.FUNCT START-DUST
FSET DUST,TOUCHED
FCLEAR DUST,SEEN
ICALL2 QUEUE,I-DUST
RFALSE
.FUNCT DORN-F,CONTEXT
EQUAL? CONTEXT,M-OBJDESC \?CCL3
ICALL2 PRINTCA,DORN
PRINT SIS
FSET? DORN,MUNGED \?CCL6
PRINTI "thrashing about, bawling helplessly."
RTRUE
?CCL6: FSET? DORN,SURPRISED \?CND4
PRINTI "waiting for you."
RTRUE
?CND4: PRINTI "sweeping its gaze around the room."
RTRUE
?CCL3: EQUAL? CONTEXT,M-WINNER \?CCL9
FSET DORN,SEEN
PRINTI """Hurumph."""
CRLF
RETURN 2
?CCL9: ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL15
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL15: EQUAL? PRSA,V?TELL \?CCL19
ICALL2 SEE-CHARACTER,PRSO
FSET? PRSO,MUNGED \?CCL22
ICALL2 CTHE-PRINT,DORN
PRINTI " is too busy bawling to respond."
CRLF
RETURN 2
?CCL22: ZERO? P-CONT /?CND20
SET 'WINNER,PRSO
RTRUE
?CND20: ICALL1 CTHE-PRINT
PRINTI " ""Hurumphs"" expectantly."
CRLF
RETURN 2
?CCL19: EQUAL? PRSA,V?EXAMINE \?CCL29
FSET? PRSO,MUNGED \?CND30
ICALL1 CTHE-PRINT
PRINTI " is bawling like a baby. "
?CND30: ICALL1 DIAGNOSE-MONSTER
FSET? PRSO,TOUCHED /TRUE
FSET PRSO,TOUCHED
PRINT TAB
ICALL1 REFER-TO-PACKAGE
RTRUE
?CCL29: EQUAL? PRSA,V?WHAT,V?WHO \FALSE
ICALL1 REFER-TO-PACKAGE
RETURN 2
.FUNCT DESCRIBE-WORM,OBJ
PRINTI "mossy rock"
RTRUE
.FUNCT WORM-F,CONTEXT,X
ZERO? CONTEXT /?CCL3
EQUAL? CONTEXT,M-OBJDESC \FALSE
FSET? WORM,MONSTER /?CND6
PRINTI "The underbrush almost conceals "
ICALL2 PRINTA,WORM
PRINTC PER
RTRUE
?CND6: ICALL1 VIEW-MONSTER
RTRUE
?CCL3: FSET? WORM,MONSTER /?CND1
EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND,V?SEARCH /?CCL9
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \?CND1
?CCL9: ICALL2 START-WORM,STR?666
RTRUE
?CND1: ZERO? NOW-PRSI? /?CCL14
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL14: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
FSET? PRSO,MONSTER \?CND19
PRINTI " no longer looks like a mossy rock. It's equipped with three-foot fangs, and seems eager to plunge one or both of them into your chest. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
?CND19: ICALL1 HELMLOOK
RTRUE
.FUNCT HELMLOOK
CALL2 WEARING-MAGIC?,HELM
ZERO? STACK /?CND1
PRINTR " looks vaguely suspicious."
?CND1: PRINT STR?667
RTRUE
.FUNCT START-WORM,STR,X
FSET WORM,MONSTER
FCLEAR WORM,SLEEPING
FSET WORM,NOALL
FCLEAR WORM,SURFACE
ICALL REPLACE-SYN?,WORM,W?ROCK,W?MONSTER
ICALL REPLACE-SYN?,WORM,W?STONE,W?ZZZP
ICALL REPLACE-ADJ?,WORM,W?MOSSY,W?ZZZP
ICALL REPLACE-ADJ?,WORM,W?MOSS,W?ZZZP
ICALL2 QUEUE,I-WORM
BOR NEW-DBOX,SHOWING-ROOM >NEW-DBOX
SET 'LAST-MONSTER,WORM
SET 'LAST-MONSTER-DIR,P-WALK-DIR
SET 'P-IT-OBJECT,WORM
PUTP WORM,P?SDESC,DESCRIBE-MONSTERS
PRINTI "As you "
PRINT STR
PRINTI " the rock, a three-foot set of fangs leaps "
PRINT STR?668
RTRUE
.FUNCT CROC-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTI " looks hungry. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT HOUND-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTI " is deciding how best to eat you. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT PUPP-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL9
ICALL1 CTHE-PRINT
PRINTI " twists its face to look just like you. Eeek! "
ICALL1 DIAGNOSE-MONSTER
RTRUE
?CCL9: EQUAL? PRSA,V?LAUGH \FALSE
EQUAL? P-PRSA-WORD,W?INSULT,W?OFFEND \FALSE
GETP PRSO,P?EMAX >X
GETP PRSO,P?ENDURANCE
LESS? STACK,X \?CCL16
PUTP PRSO,P?ENDURANCE,X
JUMP ?CND14
?CCL16: LESS? X,32762 \?CND14
ADD X,5 >X
PUTP PRSO,P?EMAX,X
PUTP PRSO,P?ENDURANCE,X
?CND14: PRINTI "You instantly regret your words, for "
ICALL1 THE-PRINT
PRINTI " grins with renewed vitality. It apparently "
ICALL2 ITALICIZE,STR?672
PRINTR " off insults like that!"
.FUNCT DEAD-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER,V?TOUCH-TO \FALSE
ICALL2 TOUCH-DEAD-WITH,PRSO
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL9
ICALL1 CTHE-PRINT
PRINTI " shimmers like a wave of heat. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
?CCL9: EQUAL? PRSA,V?HIT,V?MUNG,V?CUT /?CTR10
EQUAL? PRSA,V?RIP,V?CUT,V?OPEN /?CTR10
EQUAL? PRSA,V?OPEN-WITH,V?KICK,V?STOUCH-TO \?CCL11
?CTR10: ICALL2 TOUCH-DEAD-WITH,PRSI
RTRUE
?CCL11: INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \FALSE
ICALL2 TOUCH-DEAD-WITH,HANDS
RTRUE
.FUNCT TOUCH-DEAD-WITH,OBJ
EQUAL? OBJ,VIAL /?CND1
ICALL PASSES-THROUGH,OBJ,DEAD
RTRUE
?CND1: ICALL2 VANISH,VIAL
PRINT YOU-HEAR
PRINTI "a sharp "
ICALL2 ITALICIZE,STR?674
PRINTI " as "
ICALL2 THE-PRINT,VIAL
PRINTI " shatters, splashing your target with a shower of droplets that burst into fire on contact! The blasphemous creature opens its jaws in a silent scream as a purifying flame engulfs its ghostly form.
Moments later, the last few cinders scatter in the breeze."
CRLF
ICALL2 KILL-MONSTER,DEAD
RTRUE
.FUNCT GHOUL-F,CONTEXT,X
ZERO? CONTEXT /?CCL3
EQUAL? CONTEXT,M-CONT \FALSE
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \FALSE
PRINTI "Laughing insanely, "
ICALL2 THE-PRINT,GHOUL
PRINTR " dodges out of reach."
?CCL3: ZERO? NOW-PRSI? /?CCL9
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL9: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTI " glares back at you. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
.FUNCT CORBIES-F,FEAR,X
ZERO? BADKEY /?CND1
LOC BADKEY
EQUAL? STACK,PLAYER,HERE \?CND1
INC 'FEAR
?CND1: ZERO? NOW-PRSI? /?CCL7
EQUAL? PRSA,V?THROW,V?THROW-OVER,V?GIVE /?CTR9
EQUAL? PRSA,V?FEED,V?SHOW \?CCL10
?CTR9: FSET PRSI,SEEN
EQUAL? PRSA,V?SHOW /?CND13
MOVE PRSO,HERE
BOR NEW-DBOX,SHOWING-ALL >NEW-DBOX
?CND13: ICALL1 CTHEI-PRINT
EQUAL? PRSO,BADKEY \?CND15
PRINTR " screech with fear!"
?CND15: PRINTI " snatch "
ICALL1 THE-PRINT
PRINTI " out of the air, aim carefully and drop it"
RANDOM 100
LESS? 50,STACK /?CND17
PRINTI " on your skull. Ouch!"
CRLF
GETP PRSO,P?SIZE
SUB 0,STACK
ICALL2 UPDATE-STAT,STACK
RTRUE
?CND17: PRINTR ", narrowly missing your skull."
?CCL10: INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \FALSE
ICALL1 CORBIES-STAY-AWAY
RTRUE
?CCL7: INTBL? PRSA,TALKVERBS,NTVERBS >X \?CCL21
ICALL2 CTHE-PRINT,CORBIES
PRINTI " shriek back obscenities."
CRLF
RETURN 2
?CCL21: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \?CCL25
PRINTI "The flock of "
PRINTD PRSO
PRINTI " soars overhead in "
ZERO? FEAR /?CCL28
PRINTI "high, frightened "
JUMP ?CND26
?CCL28: PRINTI "low, menacing "
?CND26: PRINTI "circles."
CRLF
FSET? PRSO,IDENTIFIED /TRUE
FSET PRSO,IDENTIFIED
PRINT TAB
ICALL1 REFER-TO-PACKAGE
RTRUE
?CCL25: EQUAL? PRSA,V?WHAT,V?WHO \?CCL32
ICALL1 REFER-TO-PACKAGE
RETURN 2
?CCL32: ZERO? FEAR \?CND5
EQUAL? PRSA,V?HIT,V?MUNG,V?CUT /?CCL36
EQUAL? PRSA,V?KICK \?CND5
?CCL36: FCLEAR CORBIES,SEEN
ICALL1 CTHE-PRINT
PRINTR " flutter out of your reach."
?CND5: INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \FALSE
ICALL1 CORBIES-STAY-AWAY
RTRUE
.FUNCT CORBIES-STAY-AWAY
ICALL2 CTHE-PRINT,CORBIES
ZERO? BADKEY /?CND1
LOC BADKEY
EQUAL? STACK,PLAYER,HERE \?CND1
FSET CORBIES,SEEN
PRINT STR?619
RTRUE
?CND1: FCLEAR CORBIES,SEEN
PRINTR " easily swoop out of reach."
.FUNCT GRINDER-F,CONTEXT,X
EQUAL? CONTEXT,M-OBJDESC \?CCL3
SET 'P-HIM-OBJECT,GRINDER
ICALL2 PRINTCA,GRINDER
PRINT SIS
FSET? GRINDER,SURPRISED \?CND4
PRINTI "loafing nearby."
RTRUE
?CND4: PRINTI "attacking you with his "
PRINTD GURDY
PRINTC 33
RTRUE
?CCL3: EQUAL? CONTEXT,M-CONT \?CCL7
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \FALSE
ICALL2 CTHE-PRINT,GRINDER
PRINTI " slaps your hand away."
RANDOM 100
LESS? 50,STACK /?CND10
PRINTR " ""Touchy, touchy."""
?CND10: CRLF
RTRUE
?CCL7: ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL15
EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL18
ICALL2 GIVE-TO-GRINDER,PRSO
RTRUE
?CCL18: EQUAL? PRSA,V?SHOW \FALSE
ICALL2 SHOW-TO-GRINDER,PRSO
RTRUE
?CCL15: EQUAL? PRSA,V?HELLO,V?WAVE-AT \?CCL21
FSET GRINDER,SEEN
PRINTR """Hello, victim."""
?CCL21: EQUAL? PRSA,V?GOODBYE \?CCL23
PRINTR """Heh heh heh."""
?CCL23: INTBL? PRSA,TALKVERBS,NTVERBS >X \?CCL25
ICALL2 PERPLEXED,GRINDER
PRINTI "You babble of "
ZERO? PRSI /?CCL28
FSET? PRSI,LIVING /?CTR27
FSET? PRSI,MONSTER \?CCL28
?CTR27: PRINTI "be"
JUMP ?CND26
?CCL28: PRINTI "th"
?CND26: PRINTI "ings of no significance to me!"""
CRLF
RETURN 2
?CCL25: EQUAL? PRSA,V?EXAMINE \?CCL36
ICALL1 DIAGNOSE-MONSTER
FSET? PRSO,TOUCHED /TRUE
FSET PRSO,TOUCHED
PRINT TAB
ICALL1 REFER-TO-PACKAGE
RTRUE
?CCL36: EQUAL? PRSA,V?HIT,V?MUNG \?CCL40
ICALL1 CTHE-PRINT
PRINTI " easily avoids "
EQUAL? PRSI,FALSE-VALUE,HANDS,FEET /?CCL42
FSET? PRSI,NOARTICLE /?CND41
?CCL42: PRINTI "your "
?CND41: EQUAL? PRSA,V?KICK /?CTR46
EQUAL? PRSI,FEET \?CCL47
?CTR46: PRINTB W?FOOT
JUMP ?CND45
?CCL47: EQUAL? PRSI,FALSE-VALUE,HANDS \?CCL51
PRINTB W?BLOW
JUMP ?CND45
?CCL51: ICALL2 DPRINT,PRSI
?CND45: PRINT PERIOD
RTRUE
?CCL40: EQUAL? PRSA,V?WHAT,V?WHO \FALSE
ICALL1 REFER-TO-PACKAGE
RETURN 2
.FUNCT SOME,OBJ
FSET? OBJ,PLURAL \?CND1
PRINTI "some"
RTRUE
?CND1: PRINTI "one"
RTRUE
.FUNCT GIVE-TO-GRINDER,OBJ
FSET GRINDER,SEEN
CALL GIVING-LOOT?,OBJ,GRINDER
ZERO? STACK \TRUE
EQUAL? OBJ,CHEST \?CND1
ICALL1 GRINDERS-BANE
RTRUE
?CND1: PRINTI """If I wanted "
ICALL2 PRINTA,OBJ
PRINTI ", I'd steal "
ICALL2 SOME,OBJ
PRINT PERQ
RTRUE
.FUNCT SHOW-TO-GRINDER,OBJ
FSET GRINDER,SEEN
EQUAL? OBJ,CHEST \?CND1
ICALL2 GRINDERS-BANE,TRUE-VALUE
RTRUE
?CND1: ICALL2 CTHE-PRINT,GRINDER
PRINT GLANCES-AT
ICALL2 THE-PRINT,OBJ
PRINTR " and yawns conspicuously."
.FUNCT EXIT-GRINDER
MOVE GURDY,HERE
SET 'GRTIMER,0
ICALL2 KILL-MONSTER,GRINDER
SET 'P-IT-OBJECT,GURDY
BOR NEW-DBOX,SHOWING-ALL >NEW-DBOX
RFALSE
.FUNCT GRINDERS-BANE,TAKIT,L
LOC CHEST >L
MOVE CHEST,AT-GATE
PRINTI """A treasure chest!"" crows "
ICALL2 THE-PRINT,GRINDER
PRINTI ", snatching it "
EQUAL? L,PLAYER \?CCL3
PRINTI "rudely away from you"
JUMP ?CND1
?CCL3: ICALL2 OUT-OF-LOC,L
?CND1: PRINTI ". ""I just "
ICALL2 ITALICIZE,STR?676
PRINTI " surprises.""
You wince as he taps on the outside of the chest, shakes it, then turns it upside down. Nothing happens. Then he places it on the ground, stares without comprehension at the brass plate, and cracks his knuckles"
PRINT PTAB
ICALL2 DESCRIBE-GATE,GRINDER
ICALL1 EXIT-GRINDER
RTRUE
.FUNCT DESCRIBE-URGRUE,OBJ
ZERO? LIT? \?CCL2
CALL2 WEARING-MAGIC?,HELM
ZERO? STACK /?CND1
?CCL2: PRINTD OBJ
RTRUE
?CND1: PRINTI "voice"
RTRUE
.FUNCT URGRUE-F,CONTEXT,X
ZERO? CONTEXT \FALSE
CALL NOUN-USED?,W?URGRUE,W?UR-GRUE
ZERO? STACK /?CCL5
ICALL1 PCLEAR
PRINTI "It is unwise to speak of such things."
CRLF
ICALL UPDATE-STAT,-1,LUCK,TRUE-VALUE
RETURN 2
?CCL5: ZERO? NOW-PRSI? /?CCL9
INTBL? PRSA,PUTVERBS,NUMPUTS >X \?CCL12
ICALL1 HOPELESS
RTRUE
?CCL12: EQUAL? PRSA,V?GIVE,V?SHOW,V?FEED \FALSE
ICALL1 NO-INTS
RTRUE
?CCL9: INTBL? PRSA,TALKVERBS,NTVERBS >X \?CCL15
ICALL1 NO-INTS
RTRUE
?CCL15: EQUAL? PRSA,V?HIT,V?MUNG,V?CUT \?CCL17
ICALL1 HOPELESS
RTRUE
?CCL17: EQUAL? PRSA,V?EXAMINE,V?WHAT,V?WHO \FALSE
ICALL1 REFER-TO-PACKAGE
RETURN 2
.FUNCT HOPELESS
PRINTR "A feeling of utter hopelessness stays your hand."
.FUNCT NO-INTS
ICALL1 PCLEAR
PRINTI """Please don't interrupt my monologue,"" scolds the "
ZERO? LIT? \?CCL2
CALL2 WEARING-MAGIC?,HELM
ZERO? STACK /?CND1
?CCL2: PRINTD URGRUE
PRINT PERIOD
RTRUE
?CND1: PRINTR "voice in the darkness."
.FUNCT XTREES-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \?CCL8
ICALL1 V-THROW
EQUAL? PRSO,BFLY \TRUE
IN? PRSO,HERE \TRUE
PRINT TAB
ICALL1 SHOW-XTREES-BFLY?
RTRUE
?CCL8: EQUAL? PRSA,V?SHOW,V?GIVE,V?GET-FOR \?CCL14
EQUAL? PRSO,BFLY \?CND15
ICALL1 SHOW-XTREES-BFLY?
RTRUE
?CND15: ICALL2 CTHE-PRINT,XTREES
PRINTI " show no interest in "
ICALL1 THE-PRINT
PRINT PERIOD
RTRUE
?CCL14: INTBL? PRSA,PUTVERBS,NUMPUTS >X \FALSE
ICALL1 CTHEI-PRINT
PRINTR " edge away from you."
?CCL5: EQUAL? PRSA,V?WAVE-AT,V?HELLO /?CTR18
INTBL? PRSA,TALKVERBS,NTVERBS >X \?CCL19
?CTR18: ICALL1 PCLEAR
ICALL2 CTHE-PRINT,XTREES
PRINTI " are too busy singing"
PRINT STR?657
RETURN 2
?CCL19: EQUAL? PRSA,V?EXAMINE \?CCL25
ICALL1 REFER-TO-PACKAGE
RTRUE
?CCL25: EQUAL? PRSA,V?LISTEN \?CCL27
PRINTR "Still singing."
?CCL27: EQUAL? PRSA,V?SMELL \?CCL29
PRINTI "The scent of pine"
PRINT STR?596
PRINT PERIOD
RTRUE
?CCL29: EQUAL? PRSA,V?HIT,V?MUNG,V?KICK \?CCL31
PRINTR "Sure. And even if you hit one tree, what about the thousands of others?"
?CCL31: EQUAL? PRSA,V?COUNT \?CCL33
PRINTI "A quick count reveals 69,105 "
PRINTD PRSO
PRINT PERIOD
RTRUE
?CCL33: EQUAL? PRSA,V?WHAT,V?WHO \?CCL35
ICALL1 REFER-TO-PACKAGE
RETURN 2
?CCL35: EQUAL? PRSA,V?LAMP-OFF \FALSE
ICALL1 HOW?
RTRUE
.FUNCT SHOW-XTREES-BFLY?,INDENT
FSET? BFLY,MUNGED \?CTR2
CALL2 VISIBLE?,BFLY
ZERO? STACK \?CCL3
?CTR2: FSET XTREES,SEEN
ZERO? INDENT /?CND6
PRINT TAB
?CND6: ICALL2 CTHE-PRINT,XTREES
PRINTR " murmur with vague concern."
?CCL3: FSET? BFLY,LIVING /?CND1
FSET XTREES,SEEN
ZERO? INDENT /?CND9
PRINT TAB
?CND9: ICALL2 CTHE-PRINT,XTREES
PRINTI " hesitate for a moment when they spot "
ICALL2 THE-PRINT,BFLY
PRINTR ". But as it isn't moving, they soon resume their song."
?CND1: ZERO? INDENT /?CND11
PRINT TAB
?CND11: FSET XTREES,SEEN
ICALL2 CTHE-PRINT,XTREES
FSET? XTREES,NEUTRALIZED \?CND13
PRINTR " seem to have gotten over their initial shock. Their carolling proceeds with renewed joy and determination."
?CND13: FSET XTREES,NEUTRALIZED
PRINTI " stop dead in their tracks when they spot "
ICALL2 THE-PRINT,BFLY
PRINTI ". Youngsters take root behind their mothers, and the leaders sing an emergency verse of """
CALL2 PICK-NEXT,CAROLS
PRINT STACK
PRINT PERQ
RTRUE
.FUNCT GRUE-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL5: EQUAL? PRSA,V?WHAT,V?WHO \?CCL9
ICALL1 REFER-TO-PACKAGE
RETURN 2
?CCL9: IN? GRUE,HERE /FALSE
EQUAL? PRSA,V?FIND,V?WHERE \?CCL15
PRINTI "There's probably one"
PRINT STR?677
RTRUE
?CCL15: EQUAL? PRSA,V?LISTEN \FALSE
PRINTI "Grues make no sound, but are always"
PRINT STR?677
RTRUE
.FUNCT ASUCKER-F,CONTEXT
CALL2 HANDLE-SUCKERS?,ASUCKER
RSTACK
.FUNCT BSUCKER-F,CONTEXT
CALL2 HANDLE-SUCKERS?,BSUCKER
RSTACK
.FUNCT CSUCKER-F,CONTEXT
CALL2 HANDLE-SUCKERS?,CSUCKER
RSTACK
.FUNCT DESCRIBE-SUCKERS,OBJ
GET SUCKER-NAMES,THIS-SUCKER
PRINT STACK
RTRUE
.FUNCT HANDLE-SUCKERS?,OBJ,X
CALL2 NOUN-USED?,W?INTNUM
ZERO? STACK /?CCL3
EQUAL? P-NUMBER,13 /?CCL3
PRINT CANT
PRINTI "see that number here."
CRLF
RETURN 2
?CCL3: ZERO? NOW-PRSI? /?CCL9
EQUAL? PRSA,V?SHOW \?CCL12
ICALL1 CTHEI-PRINT
PRINTI " seems "
EQUAL? PRSO,RFOOT,CLOVER,SHOE /?CND13
PRINTI "indifferent to "
ICALL2 SAY-YOUR,PRSO
PRINT PERIOD
RTRUE
?CND13: PRINTR "to hesitate for a moment."
?CCL12: EQUAL? PRSA,V?THROW,V?THROW-OVER,V?TOUCH-TO \FALSE
ICALL TOUCH-SUCKER-WITH,OBJ,PRSO
RTRUE
?CCL9: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \?CCL17
ICALL1 CTHE-PRINT
PRINTR " returns your stare."
?CCL17: EQUAL? PRSA,V?HIT,V?MUNG,V?CUT /?CTR18
EQUAL? PRSA,V?RIP,V?CUT,V?OPEN /?CTR18
EQUAL? PRSA,V?OPEN-WITH,V?KICK,V?STOUCH-TO \?CCL19
?CTR18: ICALL TOUCH-SUCKER-WITH,OBJ,PRSI
RTRUE
?CCL19: INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \?CCL24
ICALL TOUCH-SUCKER-WITH,OBJ,HANDS
RTRUE
?CCL24: EQUAL? PRSA,V?WHAT,V?WHO \FALSE
ICALL1 REFER-TO-PACKAGE
RETURN 2
.FUNCT TOUCH-SUCKER-WITH,SUCKER,OBJ
EQUAL? OBJ,RFOOT,CLOVER,SHOE /?CND1
EQUAL? PRSA,V?THROW,V?THROW-OVER \?CND3
MOVE OBJ,HERE
BOR NEW-DBOX,SHOWING-ALL >NEW-DBOX
?CND3: ICALL PASSES-THROUGH,OBJ,SUCKER
RTRUE
?CND1: ICALL2 VANISH,OBJ
ICALL1 KERBLAM
ICALL2 CTHE-PRINT,OBJ
ICALL2 BLAST-SUCKER,SUCKER
RTRUE
.FUNCT BLAST-SUCKER,OBJ
PUTP OBJ,P?ENDURANCE,0
PRINTR " explodes in a shower of green sparks!"
.FUNCT DESCRIBE-WIGHT,OBJ
PRINTB W?SNOWDRIFT
RTRUE
.FUNCT START-WIGHT,X
FSET WIGHT,MONSTER
FSET WIGHT,LIVING
FCLEAR WIGHT,SURFACE
FCLEAR WIGHT,CONTAINER
FCLEAR WIGHT,OPENED
ICALL REPLACE-SYN?,WIGHT,W?DRIFT,W?MONSTER
ICALL REPLACE-SYN?,WIGHT,W?SNOWDRIFT,W?WIGHT
ICALL2 QUEUE,I-WIGHT
BOR NEW-DBOX,SHOWING-ROOM >NEW-DBOX
SET 'LAST-MONSTER,WIGHT
SET 'LAST-MONSTER-DIR,P?SOUTH
SET 'P-IT-OBJECT,WIGHT
ICALL2 AS-YOU-APPROACH,WIGHT
PUTP WIGHT,P?SDESC,0
PRINTI "a pair of bloodstained claws swipes "
PRINT STR?668
RTRUE
.FUNCT WIGHT-F,CONTEXT,X
ZERO? CONTEXT /?CCL3
EQUAL? CONTEXT,M-OBJDESC \FALSE
FSET? WIGHT,MONSTER /?CND6
ICALL2 PRINTCA,WIGHT
PRINTI " is blocking the uphill trail."
RTRUE
?CND6: ICALL1 VIEW-MONSTER
RTRUE
?CCL3: FSET? WIGHT,MONSTER /?CND1
INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \?CND1
ICALL1 START-WIGHT
RTRUE
?CND1: ZERO? NOW-PRSI? /?CCL12
EQUAL? PRSA,V?THROW,V?THROW-OVER \FALSE
ICALL1 MONSTER-THROW
RTRUE
?CCL12: EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
FSET? PRSO,MONSTER \?CND17
PRINTI " is equipped with long, sharp teeth and claws, stained with the blood of its last encounter. "
ICALL1 DIAGNOSE-MONSTER
RTRUE
?CND17: ICALL1 HELMLOOK
RTRUE
.FUNCT SHAPE-F,CONTEXT,TBL,X
ZERO? CONTEXT /?CCL3
EQUAL? CONTEXT,M-OBJDESC \FALSE
SET 'X,P?NW
?PRG6: GETP HERE,X >TBL
ZERO? TBL /?CND8
GET TBL,XDATA
EQUAL? STACK,OPLAIN /?REP7
?CND8: IGRTR? 'X,P?NORTH \?PRG6
RTRUE
?REP7: ICALL2 PRINTCA,SHAPE
PRINTI " is stretched across the "
SUB X,P?NORTH
SUB 0,STACK
GET DIR-NAMES,STACK
PRINTB STACK
PRINTI " plane."
RTRUE
?CCL3: ZERO? NOW-PRSI? /?CCL14
EQUAL? PRSA,V?TOUCH-TO \?CCL17
ICALL2 TOUCH-SHAPE-WITH,PRSO
RTRUE
?CCL17: INTBL? PRSA,PUTVERBS,NUMPUTS >X \?CCL19
EQUAL? PRSO,PHASE \?CND20
ICALL1 CTHEI-PRINT
PRINTI " flexes away from "
ICALL1 THE-PRINT
PRINT PERIOD
RTRUE
?CND20: ICALL1 PRSO-SLIDES-OFF-PRSI
RTRUE
?CCL19: EQUAL? PRSA,V?LOOK-THRU \FALSE
ICALL1 DISTORTED
RTRUE
?CCL14: INTBL? PRSA,E-VERBS,CLIMB-ON-VERBS >X \?CCL24
ICALL1 CTHE-PRINT
PRINTR " flexes backwards and sideways, thwarting your best efforts."
?CCL24: EQUAL? PRSA,V?HIT,V?MUNG,V?CUT /?CTR25
EQUAL? PRSA,V?RIP,V?CUT,V?OPEN /?CTR25
EQUAL? PRSA,V?OPEN-WITH,V?KICK,V?STOUCH-TO \?CCL26
?CTR25: ICALL2 TOUCH-SHAPE-WITH,PRSI
RTRUE
?CCL26: INTBL? PRSA,TOUCHVERBS,NTOUCHES >X \?CCL31
ICALL2 TOUCH-SHAPE-WITH,HANDS
RTRUE
?CCL31: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \?CCL33
PRINTI "Looking directly at "
ICALL1 THE-PRINT
PRINTR " makes your head ache."
?CCL33: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND \FALSE
ICALL1 DISTORTED
RTRUE
.FUNCT DISTORTED
PRINTI "The space beyond "
ICALL2 THE-PRINT,SHAPE
PRINTR " appears hopelessly distorted."
.FUNCT TOUCH-SHAPE-WITH,OBJ
EQUAL? OBJ,PHASE /?CCL3
ICALL PASSES-THROUGH,OBJ,SHAPE
RTRUE
?CCL3: IN? OBJ,PLAYER /?CND1
ICALL YOUD-HAVE-TO,STR?680,OBJ
RTRUE
?CND1: ICALL2 VANISH,SHAPE
FCLEAR SHAPE,LIVING
SET 'LAST-MONSTER,FALSE-VALUE
SET 'LAST-MONSTER-DIR,FALSE-VALUE
ICALL1 HUMS
PRINTI "slashes effortlessly through "
ICALL2 THE-PRINT,SHAPE
PRINTI ". The torn edges recoil in agony, twist inside out and vanish in a toroid of collapsing geometry, leaving you with a clear path and a headache."
CRLF
GETP SHAPE,P?VALUE
ICALL UPDATE-STAT,STACK,EXPERIENCE
RTRUE
.ENDI