sorcerer/fort.zap
historicalsource 9be53d703b Final Revision
2019-04-13 21:15:11 -04:00

234 lines
6.3 KiB
Plaintext

.FUNCT FORT-F
EQUAL? PRSA,V?THROUGH \?ELS5
EQUAL? HERE,PARADE-GROUND,GUN-EMPLACEMENT /?THN11
EQUAL? HERE,BARRACKS,ARMORY \?ELS10
?THN11: CALL LOOK-AROUND-YOU
RSTACK
?ELS10: EQUAL? HERE,FORT-ENTRANCE \?ELS14
CALL DO-WALK,P?EAST
RSTACK
?ELS14: CALL CANT-ENTER,FORT
RSTACK
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \?ELS18
EQUAL? HERE,PARADE-GROUND \?ELS23
CALL DO-WALK,P?WEST
RSTACK
?ELS23: EQUAL? HERE,GUN-EMPLACEMENT,BARRACKS,ARMORY \?ELS25
CALL CANT-ENTER,FORT,TRUE-VALUE
RSTACK
?ELS25: CALL LOOK-AROUND-YOU
RSTACK
?ELS18: EQUAL? PRSA,V?RESEARCH \FALSE
PRINTR "Fort Griffspotter once guarded the lands near Egreth Castle from attack by sea."
.FUNCT PARADE-GROUND-F,RARG
EQUAL? RARG,M-ENTER \?ELS5
PUT VEZZAS,2,0
RFALSE
?ELS5: EQUAL? RARG,M-END \FALSE
ZERO? SLEEPING /FALSE
CALL INT,I-WAKE-UP
PUT STACK,0,0
CALL I-WAKE-UP
RSTACK
.FUNCT ROPE-PSEUDO
EQUAL? PRSA,V?MOVE \?ELS5
CALL PERFORM,V?LOWER,FLAG
RTRUE
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
PRINTR "The rope is attached to the pole and can't possibly be removed."
.FUNCT FLAG-POLE-F
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO,V?CLIMB-ON \?ELS5
PRINTR "That sort of thing went out of fashion years ago."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "A rope runs up the side of the pole."
.FUNCT FLAG-DESCFCN,RARG
ZERO? FLAG-RAISED /?ELS5
PRINTR "A tattered flag, apparently that of ancient Quendor, still flies atop a mighty flagpole in the center of the field."
?ELS5: PRINTR "A flag displaying the brown and gold of ancient Quendor is lying here."
.FUNCT FLAG-F
EQUAL? PRSA,V?FLY \?CND1
CALL PERFORM,V?RAISE,FLAG
RTRUE
?CND1: ZERO? FLAG-RAISED /?ELS8
EQUAL? PRSA,V?RAISE \?ELS14
PRINTR "It's already at the top of the pole."
?ELS14: EQUAL? PRSA,V?LOWER \?ELS18
SET 'FLAG-RAISED,FALSE-VALUE
FCLEAR FLAG,TRYTAKEBIT
FCLEAR FLAG-POLE,NDESCBIT
PRINTR "The flag is lowered to the ground."
?ELS18: EQUAL? PRSA,V?EXAMINE \?ELS22
PRINTR "You can't see it very well from here -- the flagpole is very tall."
?ELS22: EQUAL? PRSA,V?TAKE,V?WAVE,V?SHAKE /?THN27
EQUAL? PRSA,V?EAT,V?RUB,V?MOVE /?THN27
EQUAL? PRSA,V?LOOK-INSIDE,V?DRINK \?ELS26
?THN27: PRINTI "The flag is "
ZERO? FLYING /?CND31
PRINTI "still "
?CND31: PRINTR "way above you at the top of the flagpole!"
?ELS26: EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL PERFORM,V?EXAMINE,FLAG-POLE
RTRUE
?ELS8: EQUAL? PRSA,V?RAISE \?ELS47
EQUAL? HERE,PARADE-GROUND \?ELS52
FSET FLAG,TRYTAKEBIT
MOVE FLAG,HERE
FSET FLAG-POLE,NDESCBIT
SET 'FLAG-RAISED,TRUE-VALUE
PRINTR "The flag is raised to the top of the pole."
?ELS52: PRINTR "There's no flagpole in sight."
?ELS47: EQUAL? PRSA,V?LOWER \?ELS60
PRINTR "You've already done that."
?ELS60: EQUAL? PRSA,V?WAVE \?ELS64
PRINTR "How patriotic!"
?ELS64: EQUAL? PRSA,V?WEAR \?ELS68
PRINTR "Who do you think you are, Abbie Hoffman?"
?ELS68: EQUAL? PRSA,V?SHAKE,V?LOOK-INSIDE,V?EXAMINE /?THN75
EQUAL? PRSA,V?SEARCH,V?RUB \?ELS72
?THN75: ZERO? FOOBLE-FOUND \?ELS72
SET 'FOOBLE-FOUND,TRUE-VALUE
MOVE FOOBLE-VIAL,HERE
CALL THIS-IS-IT,FOOBLE-VIAL
PRINTR "As you fiddle with the flag, an aqua vial drops from a hidden pocket and falls to the ground."
?ELS72: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The tattered flag displays the brown and gold of ancient Quendor."
.FUNCT FOOBLE-VIAL-F
EQUAL? PRSA,V?READ \FALSE
CALL FIXED-FONT-ON
PRINTI "
""FOOBLE POTION
(increase muscular coordination)"""
CRLF
CALL FIXED-FONT-OFF
RSTACK
.FUNCT FOOBLE-POTION-F
EQUAL? PRSA,V?DRINK,V?EAT \?ELS5
CALL HELD?,FOOBLE-VIAL
ZERO? STACK \?ELS5
CALL POTION-POUR,FOOBLE-VIAL
RSTACK
?ELS5: EQUAL? PRSA,V?RESEARCH \?ELS9
CALL READ-ABOUT-POTIONS,2
RSTACK
?ELS9: EQUAL? PRSA,V?DRINK,V?EAT \?ELS11
MOVE FOOBLE-POTION,DIAL
ZERO? UNDER-INFLUENCE /?CND12
CALL TWO-POTIONS
RTRUE
?CND12: SET 'UNDER-INFLUENCE,FOOBLE-POTION
CALL QUEUE,I-UNFOOBLE,17
PUT STACK,0,1
SET 'FOOBLED,TRUE-VALUE
PRINTR "The aqua potion tasted like lime jelly, and sent vibrations through your muscles."
?ELS11: EQUAL? PRSA,V?DROP \?ELS19
CALL PERFORM,V?POUR,PRSO,PRSI
RTRUE
?ELS19: EQUAL? PRSA,V?POUR \FALSE
EQUAL? PRSO,FOOBLE-POTION \FALSE
CALL POTION-POUR,FOOBLE-VIAL
RSTACK
.FUNCT I-UNFOOBLE
SET 'FOOBLED,FALSE-VALUE
EQUAL? UNDER-INFLUENCE,FOOBLE-POTION \?CND1
SET 'UNDER-INFLUENCE,FALSE-VALUE
?CND1: CRLF
PRINTR "Your muscles feel limp for a moment."
.FUNCT BARRACKS-PSEUDO
SET 'PERFORMING-SPELL,TRUE-VALUE
CALL PERFORM,PRSA,GLOBAL-ROOM,PRSI
RTRUE
.FUNCT EMPLACEMENT-EXIT-F
ZERO? FLYING /?ELS3
PRINTI "The updrafts from the "
EQUAL? PRSO,P?NORTH \?ELS9
PRINTI "river"
JUMP ?CND1
?ELS9: PRINTI "ocean"
JUMP ?CND1
?ELS3: PRINTI "The plunge"
?CND1: PRINTI " would kill you."
CRLF
RFALSE
.FUNCT CANNON-F
EQUAL? PRSA,V?LAMP-ON,V?SHOOT \?ELS5
PRINTR "This cannon probably hasn't worked for centuries!"
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS9
CALL V-DEFLATE
RSTACK
?ELS9: EQUAL? PRSA,V?SEARCH,V?REACH-IN \?ELS11
FSET? YIPPLES,INVISIBLE \?ELS11
SET 'BITTEN,TRUE-VALUE
CALL QUEUE,I-BITE-HEAL,20
PUT STACK,0,1
PRINTR "Something bites your hand!"
?ELS11: EQUAL? PRSA,V?LOOK-INSIDE \?ELS17
FSET? YIPPLES,INVISIBLE \?ELS17
FCLEAR YIPPLES,INVISIBLE
PRINTR "Lying at the bottom of the barrel is a pile of identical scrolls!"
?ELS17: EQUAL? PRSA,V?EXAMINE \?ELS23
PRINTR "The barrel is wide enough to hold the hugest of cannonballs, but it isn't very deep."
?ELS23: EQUAL? PRSA,V?SEARCH,V?REACH-IN \?ELS27
IN? YIPPLES,CANNON \?ELS27
CALL PERFORM,V?TAKE,YIPPLES
RTRUE
?ELS27: EQUAL? PRSA,V?PUT \?ELS31
IN? YIPPLES,CANNON \?ELS31
EQUAL? BAT-GUANO,PRSO \?ELS31
MOVE YIPPLES,DIAL
MOVE YONK-SCROLL,CANNON
CALL THIS-IS-IT,YONK-SCROLL
MOVE BAT-GUANO,CANNON
PRINTI "When you drop the guano into the barrel, "
FSET? YIPPLES,INVISIBLE \?ELS38
PRINTI "dozens of scrolls pour out and literally run off"
JUMP ?CND36
?ELS38: PRINTI "the scrolls sprout feet and spill out of the cannon, dashing away"
?CND36: PRINTI " in every direction! A single ordinary scroll is left sitting at the bottom of the barrel."
CRLF
FCLEAR YIPPLES,INVISIBLE
RTRUE
?ELS31: EQUAL? PRSA,V?THROUGH \FALSE
ZERO? FWEEPED /FALSE
PRINTR "Your wingspan is too large."
.FUNCT YIPPLES-F
EQUAL? PRSA,V?TAKE \?ELS5
SET 'BITTEN,TRUE-VALUE
CALL QUEUE,I-BITE-HEAL,20
PUT STACK,0,1
PRINTR "As you reach into the cannon, something bites you painfully on the hand!"
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Every scroll is virtually identical."
.FUNCT I-BITE-HEAL
SET 'BITTEN,FALSE-VALUE
RFALSE
.ENDI