632 lines
20 KiB
Plaintext
632 lines
20 KiB
Plaintext
|
|
|
|
.FUNCT INSIDE-GATE-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
ZERO? CASTLE-ENTER \?ELS5
|
|
SET 'CASTLE-ENTER,TRUE-VALUE
|
|
PRINTI "As you pass through the gate, you feel that your mind is being probed. After a moment, it is released or, perhaps, discarded as uninteresting."
|
|
CRLF
|
|
CRLF
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTR "You are just inside what appears to be the main entrance to the castle. An iron gate, standing wide open, looms to the west. Through it, a narrow road can be seen winding through low, smoky hills. Before you, to the east, is a huge open courtyard. To the north and the south are archways leading to the interior of the castle."
|
|
|
|
|
|
.FUNCT IRON-GATE-F
|
|
EQUAL? PRSA,V?UNLOCK,V?OPEN \?ELS5
|
|
PRINTR "The gate is secure; it cannot be unlocked."
|
|
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS9
|
|
PRINTR "It is too heavy to move."
|
|
?ELS9: EQUAL? PRSA,V?REZROV \FALSE
|
|
ADD SCORE,ENTRY-POINT >SCORE
|
|
SET 'ENTRY-POINT,0
|
|
PRINTI "The chains of the iron gate fly into the air and vanish. The gate flies open and a blast of cold air fills your lungs."
|
|
CRLF
|
|
FSET IRON-GATE-CHAINS,INVISIBLE
|
|
FSET IRON-GATE,OPENBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ARCH-F
|
|
EQUAL? PRSA,V?THROUGH \FALSE
|
|
EQUAL? HERE,PEBBLED-PATH \?ELS10
|
|
CALL DO-WALK,P?SOUTH
|
|
RSTACK
|
|
?ELS10: EQUAL? HERE,INSIDE-GATE \?ELS12
|
|
PRINTR "You should specify a compass direction, since there are two archways."
|
|
?ELS12: CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BED-F,RARG=0
|
|
EQUAL? RARG,M-BEG \?ELS5
|
|
EQUAL? PRSA,V?WALK \?ELS10
|
|
PRINTR "You'll have to get up first. The bed is so comfy you would almost rather not."
|
|
?ELS10: EQUAL? PRSA,V?WEAR,V?CLIMB-ON,V?BOARD \?ELS14
|
|
PRINTR "You already are."
|
|
?ELS14: EQUAL? PRSA,V?PUSH,V?MOVE,V?TAKE /?THN21
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN,V?RUB \FALSE
|
|
?THN21: IN? PRSO,WINNER /FALSE
|
|
PRINTR "You can't do that from your resting position."
|
|
?ELS5: EQUAL? RARG,M-END /FALSE
|
|
EQUAL? BED,PRSO,PRSI \FALSE
|
|
EQUAL? PRSA,V?WEAR,V?CLIMB-ON,V?BOARD \?ELS30
|
|
MOVE WINNER,BED
|
|
SUB MOVES,LAST-SLEEP
|
|
LESS? STACK,MOVES-PER-DAY \?ELS35
|
|
PRINTR "The bed is very comfortable and soft. In fact, you feel sort of sleepy just lying on it."
|
|
?ELS35: PRINTI "Lying on this soft bed puts you to sleep."
|
|
CRLF
|
|
CALL PERFORM,V?SLEEP
|
|
RTRUE
|
|
?ELS30: EQUAL? PRSA,V?WALK-TO \?ELS43
|
|
CALL PERFORM,V?BOARD,BED
|
|
RTRUE
|
|
?ELS43: EQUAL? PRSA,V?DROP,V?DISEMBARK \?ELS45
|
|
IN? WINNER,BED \?ELS45
|
|
MOVE WINNER,HERE
|
|
PRINTR "Ah, that was a comfortable bed! But you're now on your own feet again."
|
|
?ELS45: EQUAL? PRSA,V?EXAMINE \?ELS51
|
|
EQUAL? PRSO,BED \?ELS51
|
|
PRINTR "The feather bed looks as though it would be quite comfy to sleep on."
|
|
?ELS51: EQUAL? PRSA,V?SHAKE \FALSE
|
|
EQUAL? PRSO,BED \FALSE
|
|
FIRST? BEDPOST \FALSE
|
|
PRINTR "When you shake the bed, one of the bedposts rattles as though something were loose inside it."
|
|
|
|
|
|
.FUNCT BEDPOST-F
|
|
EQUAL? PRSA,V?SEARCH,V?EXAMINE \?ELS5
|
|
FSET? BEDPOST,OPENBIT \?ELS10
|
|
PRINTR "The bedpost is open."
|
|
?ELS10: IN? BEDPOST-BUTTON,BED \?ELS14
|
|
PRINTR "A careful examination reveals the outline of a small compartment, and near it an ornate carving which looks like a button. You could never have found it on your own."
|
|
?ELS14: PRINTR "A careful examination reveals a thin line which might well be the outline of a small compartment, but the mechanism for opening it is not discernable."
|
|
?ELS5: EQUAL? PRSA,V?OPEN \?ELS22
|
|
PRINTR "Maybe it can be opened, but it's unclear how."
|
|
?ELS22: EQUAL? PRSA,V?REZROV \?ELS26
|
|
FSET BEDPOST,OPENBIT
|
|
IN? CHARM-SCROLL,BEDPOST \?ELS31
|
|
ADD SCORE,CHARM-POINT >SCORE
|
|
SET 'CHARM-POINT,0
|
|
CALL THIS-IS-IT,CHARM-SCROLL
|
|
PRINT POPS-OPEN
|
|
CRLF
|
|
RTRUE
|
|
?ELS31: PRINTR "The bedpost pops open."
|
|
?ELS26: EQUAL? PRSA,V?SHAKE \FALSE
|
|
FIRST? BEDPOST \FALSE
|
|
PRINTR "There is something rustling around inside the bedpost."
|
|
|
|
|
|
.FUNCT COMPARTMENT-F
|
|
IN? BEDPOST-BUTTON,BED /?ELS5
|
|
EQUAL? PRSA,V?SEARCH,V?EXAMINE \?ELS5
|
|
PRINTR "A very thin line indicates that a hidden compartment might be imbedded in the bedpost, but it's not clear how to open it."
|
|
?ELS5: CALL PERFORM,PRSA,BEDPOST
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BEDPOST-BUTTON-F
|
|
EQUAL? PRSA,V?PUSH \FALSE
|
|
FSET BEDPOST,OPENBIT
|
|
ADD SCORE,CHARM-POINT >SCORE
|
|
SET 'CHARM-POINT,0
|
|
IN? CHARM-SCROLL,BEDPOST \TRUE
|
|
CALL THIS-IS-IT,CHARM-SCROLL
|
|
PRINT POPS-OPEN
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CELL-F
|
|
EQUAL? PRSA,V?THROUGH \?ELS5
|
|
EQUAL? HERE,DUNGEON \?ELS5
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?DROP \?ELS9
|
|
EQUAL? HERE,NORTH-CELL \?ELS9
|
|
CALL DO-WALK,P?SOUTH
|
|
RSTACK
|
|
?ELS9: EQUAL? PRSA,V?SEARCH \FALSE
|
|
EQUAL? HERE,NORTH-CELL \FALSE
|
|
CALL PERFORM,V?LOOK
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NORTH-CELL-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a damp and unhealthy dungeon cell with writing on the walls. The rusty door of the cell is "
|
|
FSET? NORTH-CELL-DOOR,OPENBIT \?ELS10
|
|
PRINTI "open."
|
|
JUMP ?CND8
|
|
?ELS10: PRINTI "closed."
|
|
?CND8: ZERO? NORTH-BLOCK-FLAG /?ELS19
|
|
PRINTI " A square block sits beside a passage in the eastern wall."
|
|
JUMP ?CND17
|
|
?ELS19: ZERO? NORTH-BLOCK-FLAG \?CND17
|
|
FSET? NORTH-BLOCK,NDESCBIT /?CND17
|
|
PRINTI " A square block in the east wall seems to be loose."
|
|
?CND17: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CELL-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \?ELS9
|
|
FSET? PRSO,OPENBIT \?THN6
|
|
?ELS9: EQUAL? PRSA,V?CLOSE \FALSE
|
|
FSET? PRSO,OPENBIT \FALSE
|
|
?THN6: PRINTI "The door is very rusty and reluctantly "
|
|
FSET? PRSO,OPENBIT \?ELS16
|
|
FCLEAR PRSO,OPENBIT
|
|
PRINTI "close"
|
|
JUMP ?CND14
|
|
?ELS16: FSET PRSO,OPENBIT
|
|
PRINTI "open"
|
|
?CND14: PRINTR "s."
|
|
|
|
|
|
.FUNCT STONE-WALL-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
PRINTI "The wall is covered with graffiti and scratchings marking time's passage."
|
|
CRLF
|
|
EQUAL? HERE,NORTH-CELL \TRUE
|
|
ZERO? NORTH-BLOCK-FLAG \TRUE
|
|
FCLEAR NORTH-BLOCK,NDESCBIT
|
|
PRINTI "You notice that the mortar holding a square block has been chipped away, and the block is loose."
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NORTH-BLOCK-F
|
|
EQUAL? PRSA,V?TAKE,V?MOVE \FALSE
|
|
ZERO? NORTH-BLOCK-FLAG \?ELS10
|
|
SET 'NORTH-BLOCK-FLAG,TRUE-VALUE
|
|
PRINTR "You pull the block out of the crumbling wall, revealing a dark passage leading east."
|
|
?ELS10: PRINTR "It's too heavy."
|
|
|
|
|
|
.FUNCT SECRET-PASSAGE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a crudely carved secret passage. It appears to have been hollowed out by (perhaps) generations of prisoners."
|
|
ZERO? NORTH-BLOCK-FLAG /?ELS10
|
|
PRINTI " A passage leads west."
|
|
JUMP ?CND8
|
|
?ELS10: PRINTI " A square block in the western wall seems to be loose."
|
|
?CND8: PRINTR " A short, crudely hewn passage leads up."
|
|
|
|
|
|
.FUNCT SOUTH-GATE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This interior courtyard stands at the southern entrance to the castle, where a small rusty gate "
|
|
FSET? RUSTY-GATE,OPENBIT \?ELS10
|
|
PRINTI "is standing open and slowly swaying in a gentle sea breeze"
|
|
JUMP ?CND8
|
|
?ELS10: PRINTI "stands closed"
|
|
?CND8: PRINTR ". Beyond the gate can be seen a small meadow and, beyond that, a white beach on a misty sea. Passages enter the castle proper to the north, east, and west."
|
|
|
|
|
|
.FUNCT BANQUET-STUFF-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN,V?REZROV /?THN8
|
|
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
|
|
?THN8: FSET? PRSO,CONTBIT \FALSE
|
|
FCLEAR PRSO,CONTBIT
|
|
CALL PERFORM,PRSA,PRSO
|
|
FSET PRSO,CONTBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BANQUET-ILLUSION-F
|
|
EQUAL? PRSA,V?KULCAD \?ELS5
|
|
REMOVE BANQUET-ILLUSION
|
|
PRINTR "The festive banquet setting dissolves, leaving a large hall littered with broken benches."
|
|
?ELS5: EQUAL? PRSA,V?BOARD,V?CLIMB-ON \?ELS9
|
|
EQUAL? PRSO,BENCHES,BTABLES \?ELS9
|
|
PRINTR "It's not worth the bother."
|
|
?ELS9: EQUAL? PRSA,V?MOVE,V?TAKE \FALSE
|
|
IN? BANQUET-ILLUSION,HERE \?ELS20
|
|
PRINTR "They seem to be protected by some magic; you can't budge them."
|
|
?ELS20: PRINTR "You realize there is no point in that."
|
|
|
|
|
|
.FUNCT BANQUET-FOOD-F
|
|
EQUAL? PRSA,V?TAKE,V?EAT \?ELS5
|
|
PRINTR "The food is quite delicious, but somehow unsatisfying."
|
|
?ELS5: CALL BANQUET-ILLUSION-F
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GUARD-WARNING-F,RARG,LP
|
|
LOC PLAYER >LP
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
EQUAL? LP,BANQUET-HALL \?ELS8
|
|
FSET? BANQUET-HALL,RMUNGBIT \?ELS11
|
|
REMOVE BANQUET-ILLUSION
|
|
PRINTI "This desolate hall is nearly empty, save for a few long benches which are scattered throughout the room. The walls seem to be scorched, and everywhere are signs of decay. A sickening odor pervades the room, and wisps of acrid black smoke can be seen to the north. A wide passage leads south, and a small one opens to the east."
|
|
CRLF
|
|
JUMP ?CND6
|
|
?ELS11: IN? BANQUET-ILLUSION,BANQUET-HALL \?ELS15
|
|
PRINTI "A banquet has been set here for hundreds. Long benches fill the room, each covered with finest linen and set with golden cutlery and glittering crystal. Luscious food weighs down each table, and candles light the room with a festive glow. The room can be entered by a north-south corridor and a small opening to the east, from which an odd, acrid smell issues."
|
|
CRLF
|
|
JUMP ?CND6
|
|
?ELS15: PRINTI "This hall is completely empty, except for some long benches which are scattered throughout the room."
|
|
CRLF
|
|
JUMP ?CND6
|
|
?ELS8: EQUAL? LP,LIBRARY \FALSE
|
|
GETP LP,P?LDESC
|
|
PRINT STACK
|
|
CRLF
|
|
?CND6: IN? GANG-OF-FOUR,LP /TRUE
|
|
PRINTI "To the "
|
|
EQUAL? LP,LIBRARY \?ELS35
|
|
PRINTI "south"
|
|
JUMP ?CND33
|
|
?ELS35: PRINTI "north"
|
|
?CND33: PRINTR " you can hear the sound of a group of low, guttural voices."
|
|
?ELS5: EQUAL? RARG,M-BEG \?ELS45
|
|
EQUAL? WINNER,PLAYER \?ELS45
|
|
EQUAL? PRSA,V?WALK \?ELS45
|
|
ZERO? PROTECTED-FROM-EVIL \?ELS45
|
|
IN? GANG-OF-FOUR,LP \?ELS45
|
|
EQUAL? LP,LIBRARY \?ELS56
|
|
EQUAL? PRSO,P?SOUTH /?THN53
|
|
?ELS56: EQUAL? LP,BANQUET-HALL \FALSE
|
|
EQUAL? PRSO,P?NORTH \FALSE
|
|
?THN53: PRINTI "In your confused and fearful state, you have blundered right into the advancing guards! They grab you, not too gently, and take you away. You end up at a huge temple."
|
|
CRLF
|
|
CRLF
|
|
CALL QUEUE,I-GUARDS-ARRIVE,0
|
|
CALL QUEUE,I-GANG,0
|
|
CALL TAKE-TO-TOWER
|
|
RTRUE
|
|
?ELS45: EQUAL? RARG,M-END \FALSE
|
|
RANDOM 100
|
|
GRTR? 30,STACK \FALSE
|
|
EQUAL? LP,LIBRARY,BANQUET-HALL \FALSE
|
|
IN? GANG-OF-FOUR,LP /FALSE
|
|
EQUAL? WINNER,PLAYER \?CND65
|
|
PRINTI "The low, guttural voices seem to be coming in your direction."
|
|
CRLF
|
|
?CND65: CALL QUEUE,I-GUARDS-ARRIVE,2
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-GUARDS-ARRIVE,LP
|
|
LOC PLAYER >LP
|
|
EQUAL? LP,LIBRARY,BANQUET-HALL \FALSE
|
|
PRINTI "A group of four hunched and hairy shapes walks into your presence. "
|
|
ZERO? PROTECTED-FROM-EVIL \?ELS12
|
|
MOVE GANG-OF-FOUR,LP
|
|
PRINTI "They seem surprised to see you. After whispering a few guttural words to each other, they start to move toward you purposefully."
|
|
CRLF
|
|
SET 'GANG-FOLLOWS,0
|
|
CALL QUEUE,I-GANG,1
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?ELS12: PRINTR "They don't seem to take much notice of you, and they soon depart."
|
|
|
|
|
|
.FUNCT I-GANG
|
|
INC 'GANG-FOLLOWS
|
|
LOC PLAYER
|
|
IN? GANG-OF-FOUR,STACK \?ELS5
|
|
REMOVE GANG-OF-FOUR
|
|
ZERO? PROTECTED-FROM-EVIL /?ELS10
|
|
PRINTR "The group of hunched and hairy shapes glances at you disinterestedly, wanders around the room for a while, and then departs."
|
|
?ELS10: PRINTI "The group of hunched and hairy shapes takes you in their arms and escorts you into a huge temple."
|
|
CRLF
|
|
CRLF
|
|
CALL TAKE-TO-TOWER
|
|
RTRUE
|
|
?ELS5: LOC PLAYER
|
|
FSET? STACK,RMUNGBIT \?ELS19
|
|
PRINTI "The group of shapes follows you, intent on your capture! They seem to come alive in the desolation which fills this room."
|
|
CRLF
|
|
LOC PLAYER
|
|
MOVE GANG-OF-FOUR,STACK
|
|
CALL QUEUE,I-GANG,1
|
|
RTRUE
|
|
?ELS19: LESS? GANG-FOLLOWS,LOSSAGE \?ELS23
|
|
PRINTI "The group of shapes follows you into this undespoiled room, emboldened and eager for blood."
|
|
CRLF
|
|
LOC PLAYER
|
|
MOVE GANG-OF-FOUR,STACK
|
|
CALL QUEUE,I-GANG,1
|
|
RTRUE
|
|
?ELS23: PRINTI "Fortunately for you, the gang has stopped following! You relax for a moment and heave a sigh of relief."
|
|
CRLF
|
|
REMOVE GANG-OF-FOUR
|
|
RFALSE
|
|
|
|
|
|
.FUNCT GANG-OF-FOUR-F
|
|
EQUAL? PRSA,V?CLEESH \?ELS5
|
|
PRINTI "The group of shapes turns into a small convention of newts, who run away."
|
|
CRLF
|
|
CALL QUEUE,I-GANG,0
|
|
REMOVE GANG-OF-FOUR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?VAXUM \?ELS9
|
|
ZERO? PROTECTED-FROM-EVIL \FALSE
|
|
PRINTI "The shapes, who were on the verge of reaching you, seem to waver in their resolve. After a moment's pause, they leave the room together, talking in a less guttural tone which might correspond to cheerfulness."
|
|
CRLF
|
|
REMOVE GANG-OF-FOUR
|
|
CALL QUEUE,I-GANG,0
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?GUNCHO \?ELS21
|
|
PRINTI "The shapes"
|
|
ZERO? PROTECTED-FROM-EVIL \?CND24
|
|
PRINTI ", on the verge of reaching you,"
|
|
?CND24: PRINTI " disappear, seeming to dwindle into the distance while remaining in the same spot. Eventually you can see them no longer."
|
|
CRLF
|
|
REMOVE GANG-OF-FOUR
|
|
RTRUE
|
|
?ELS21: EQUAL? PRSA,V?ZIFMIA \?ELS32
|
|
ZERO? PROTECTED-FROM-EVIL /?ELS32
|
|
CALL QUEUE,I-GANG,2
|
|
PUT STACK,0,1
|
|
PRINTR "The shapes, previously ignoring you, now approach with menace in their eyes."
|
|
?ELS32: EQUAL? PRSA,V?FROTZ \?ELS38
|
|
PRINTI "The shapes glow brightly from the frotz spell. This apparently doesn't appeal to them, as they shriek with horror and attempt to avert their gaze from themselves. Within a moment, they have run screaming from the room."
|
|
CRLF
|
|
REMOVE GANG-OF-FOUR
|
|
RTRUE
|
|
?ELS38: EQUAL? PRSA,V?NITFOL \FALSE
|
|
ZERO? PROTECTED-FROM-EVIL \FALSE
|
|
PRINTR "The shapes, whose language you understand instinctively, say something on the order of ""Blood for sacrifice!"", ""Master pleased!"", and other not-so-soothing words as they approach."
|
|
|
|
|
|
.FUNCT LITTER-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINTR "You have no use for those things."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "They look as if they haven't been disturbed in a long time."
|
|
|
|
|
|
.FUNCT RAT-NEST-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINTR "What on earth for?"
|
|
?ELS5: EQUAL? PRSA,V?MUNG,V?RUB \?ELS9
|
|
PRINTR "You poke around in the nest, but there doesn't seem to be anything of interest in there."
|
|
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINTR "There's nothing in there."
|
|
|
|
|
|
.FUNCT OVEN-F
|
|
EQUAL? PRSA,V?REACH-IN,V?EXAMINE,V?LOOK-INSIDE \?ELS5
|
|
PRINTR "The oven contains nothing of interest, unless of course you have a hankering for rat's nests."
|
|
?ELS5: EQUAL? PRSA,V?REZROV,V?OPEN \?ELS9
|
|
FSET? OVEN,OPENBIT \?ELS14
|
|
PRINTR "The oven is already open."
|
|
?ELS14: FSET OVEN,OPENBIT
|
|
PRINTR "Opened."
|
|
?ELS9: EQUAL? PRSA,V?CLOSE \FALSE
|
|
FSET? OVEN,OPENBIT /?ELS27
|
|
PRINTR "The oven is already closed."
|
|
?ELS27: FCLEAR OVEN,OPENBIT
|
|
PRINTR "Closed."
|
|
|
|
|
|
.FUNCT HEAP-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINTR "That would be rather undignified."
|
|
?ELS5: EQUAL? PRSA,V?DIG,V?LOOK-INSIDE,V?SEARCH \FALSE
|
|
PRINTR "There is nothing but rotted food there."
|
|
|
|
|
|
.FUNCT JUNCTION-F,RARG
|
|
EQUAL? RARG,M-BEG \FALSE
|
|
EQUAL? WINNER,PLAYER \FALSE
|
|
ZERO? PROTECTED-FROM-EVIL \FALSE
|
|
PRINTI "A host of hunched and hairy shapes walk into the hall before you can do anything and, seeing you, take you in their arms and escort you to the west into a huge temple."
|
|
CRLF
|
|
CRLF
|
|
CALL GOTO,TEMPLE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ADV-VS-GANG,L
|
|
LOC ADVENTURER >L
|
|
IN? WINNER,L \?ELS5
|
|
IN? GANG-OF-FOUR,L \?ELS5
|
|
IN? WINNER,LIBRARY \?ELS12
|
|
PUSH NORTH-GATE
|
|
JUMP ?CND8
|
|
?ELS12: PUSH EAST-HALL
|
|
?CND8: MOVE ADVENTURER,STACK
|
|
PRINTR "The adventurer softly, silently, and stealthily disappears."
|
|
?ELS5: IN? ADVENTURER,JUNCTION \FALSE
|
|
LOC WINNER
|
|
EQUAL? STACK,LIBRARY,BANQUET-HALL \FALSE
|
|
PRINTI "You hear yelling, oaths, and the crash of metal coming from the "
|
|
IN? WINNER,LIBRARY \?ELS27
|
|
PUSH STR?70
|
|
JUMP ?CND23
|
|
?ELS27: PUSH STR?74
|
|
?CND23: PRINT STACK
|
|
PRINTI ". It sounds like a swordfight! Suddenly, everything is quiet."
|
|
CRLF
|
|
RANDOM 100
|
|
GRTR? 70,STACK \?ELS34
|
|
IN? WINNER,LIBRARY \?ELS39
|
|
PUSH NORTH-GATE
|
|
JUMP ?CND35
|
|
?ELS39: PUSH EAST-HALL
|
|
?CND35: MOVE ADVENTURER,STACK
|
|
SET 'ADV-OLD-LOC,HERE
|
|
LOC ADVENTURER >ADV-NEW-LOC
|
|
PRINTI "Then the adventurer, running at an impressive speed, tears by you heading "
|
|
IN? WINNER,LIBRARY \?ELS48
|
|
PUSH STR?74
|
|
JUMP ?CND44
|
|
?ELS48: PUSH STR?70
|
|
?CND44: PRINT STACK
|
|
PRINTR ". He seems to have been in a fight."
|
|
?ELS34: REMOVE ADVENTURER
|
|
MOVE SKELETON,TOWER-S
|
|
CALL QUEUE,I-ADVENTURER,0
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SKELETON-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINTR "They're quite heavy, and you don't need them anyway."
|
|
?ELS5: EQUAL? PRSA,V?KILL,V?ATTACK,V?MUNG \FALSE
|
|
PRINTR "Show some respect! Especially considering that he got that way because of you!"
|
|
|
|
|
|
.FUNCT VOICES-F
|
|
EQUAL? HERE,ENGINE-ROOM,SE-TOWER \?ELS5
|
|
EQUAL? PRSA,V?EXAMINE,V?LISTEN \FALSE
|
|
PRINTR "The noise is loud and screeching."
|
|
?ELS5: EQUAL? HERE,COURTYARD-3,ALTAR \?ELS14
|
|
EQUAL? PRSA,V?LISTEN \FALSE
|
|
PRINTR "The voices are chanting something horrifying."
|
|
?ELS14: EQUAL? PRSA,V?LISTEN \?ELS23
|
|
PRINTR "You can't make out what they are saying, though it would be fair to say it's not too pleasant."
|
|
?ELS23: EQUAL? PRSA,V?ZIFMIA \?ELS27
|
|
PRINTI "The voices seem to be approaching. I hope you know what you're doing."
|
|
CRLF
|
|
CALL QUEUE,I-GUARDS-ARRIVE,1
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?ELS27: EQUAL? PRSA,V?NITFOL \FALSE
|
|
PRINTR "You can't use that spell on voices, only beings."
|
|
|
|
|
|
.FUNCT TUBES-PSEUDO
|
|
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
|
|
PRINTR "They are all empty."
|
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINTR "As you touch each one, it crumbles to ash."
|
|
|
|
|
|
.FUNCT ASHES-PSEUDO
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINTR "The ash slips through your fingers."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
EQUAL? HERE,LIBRARY \?ELS14
|
|
PRINTR "The ashes have rat tracks in them. Little rat thoroughfares head here and there, but most head in one direction."
|
|
?ELS14: PRINTR "The ashes are black and greasy."
|
|
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \FALSE
|
|
PRINTI "You find nothing of interest in the ashes"
|
|
EQUAL? HERE,LIBRARY \?CND25
|
|
PRINTI ", other than rat tracks heading this way and that"
|
|
?CND25: PRINTR "."
|
|
|
|
|
|
.FUNCT RAT-TRACKS-F
|
|
EQUAL? PRSA,V?EXAMINE,V?FOLLOW \FALSE
|
|
PRINTI "There are plenty of rat tracks here, going in various directions. One prominent rodentine thoroughfare stands out though, going as it does into a small hole in the wall."
|
|
CRLF
|
|
MOVE RAT-HOLE,HERE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT RAT-HOLE-F,OBJ
|
|
FIRST? RAT-HOLE >OBJ /?KLU50
|
|
?KLU50: EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTR "You can't see anything in the rat hole."
|
|
?ELS5: EQUAL? PRSA,V?REACH-IN \?ELS9
|
|
PRINTI "You reach around for a moment and come up "
|
|
ZERO? OBJ \?ELS16
|
|
PRINTR "empty."
|
|
?ELS16: PRINTI "with something. It's "
|
|
CALL PRINTA,OBJ
|
|
PRINTI "."
|
|
CRLF
|
|
CALL THIS-IS-IT,OBJ
|
|
FCLEAR OBJ,INVISIBLE
|
|
ADD SCORE,QUENCH-POINT >SCORE
|
|
SET 'QUENCH-POINT,0
|
|
FSET RAT-HOLE,NDESCBIT
|
|
MOVE OBJ,WINNER
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \?ELS24
|
|
PRINTR "It's too dark to see anything inside the hole."
|
|
?ELS24: EQUAL? PRSA,V?PUT \?ELS28
|
|
EQUAL? PRSI,RAT-HOLE \?ELS28
|
|
FIRST? RAT-HOLE \?ELS35
|
|
PRINTR "Something's blocking up the hole from inside."
|
|
?ELS35: GETP PRSO,P?SIZE
|
|
GRTR? STACK,5 \?ELS39
|
|
PRINTR "It won't fit."
|
|
?ELS39: FSET PRSO,INVISIBLE
|
|
MOVE PRSO,PRSI
|
|
PRINTR "Done."
|
|
?ELS28: EQUAL? PRSA,V?CLOSE \FALSE
|
|
PRINTR "How absurd!"
|
|
|
|
|
|
.FUNCT NORTH-GATE-OBJ-F
|
|
EQUAL? PRSA,V?REZROV \?ELS5
|
|
FSET? PRSO,OPENBIT /?ELS5
|
|
PRINTI "The rusted north gate magically creaks open far enough for you to leave."
|
|
CRLF
|
|
FSET PRSO,OPENBIT
|
|
FCLEAR PRSO,LOCKEDBIT
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?OPEN \FALSE
|
|
FSET? PRSO,LOCKEDBIT \FALSE
|
|
PRINTR "The gate is rusted shut."
|
|
|
|
|
|
.FUNCT FOREST-1-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
IN? REPAIR-SCROLL,HERE \FALSE
|
|
FSET? REPAIR-SCROLL,TOUCHBIT /FALSE
|
|
CALL THIS-IS-IT,REPAIR-SCROLL
|
|
RFALSE
|
|
|
|
|
|
.FUNCT SWAMP-F,RARG=0
|
|
EQUAL? RARG,M-END \FALSE
|
|
EQUAL? PRSA,V?TELL /FALSE
|
|
PRINTI "The sounds of frogs and other swamp dwellers fill the air."
|
|
EQUAL? TALK-TO-ANIMAL?,FROG \?CND10
|
|
FSET? NEWT-SCROLL,INVISIBLE /?ELS15
|
|
PRINTI " The frogs are discussing "
|
|
CALL PICK-ONE,FROG-TALKS
|
|
PRINT STACK
|
|
JUMP ?CND10
|
|
?ELS15: PRINTI " The frogs say ""Look under the lily pad. Breep!"""
|
|
?CND10: CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT SWAMP-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
CALL PERFORM,V?LOOK
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?THROUGH \FALSE
|
|
PRINTR "There is probably quicksand there. At best you would get horribly muddy."
|
|
|
|
|
|
.FUNCT FROG-F
|
|
EQUAL? WINNER,FROG \?ELS5
|
|
EQUAL? PRSA,V?HELLO /?ELS5
|
|
PRINTR """Breep! No, thank you. Breep!"""
|
|
?ELS5: EQUAL? PRSA,V?LISTEN,V?HELLO \FALSE
|
|
PRINTI """Breep! "
|
|
EQUAL? TALK-TO-ANIMAL?,FROG \?CND14
|
|
CALL PICK-ONE,FROGGERS
|
|
PRINT STACK
|
|
PRINTI " "
|
|
?CND14: PRINTR "Breep!"""
|
|
|
|
|
|
.FUNCT LILY-PAD-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTR "There's not much to say about the lily pads except that they seem to make a cheery home for the frogs."
|
|
?ELS5: EQUAL? PRSA,V?CLIMB-ON,V?THROUGH \?ELS9
|
|
PRINTR "You sink into the goo, crushing a lily pad."
|
|
?ELS9: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
|
FSET? NEWT-SCROLL,INVISIBLE \?ELS18
|
|
FCLEAR NEWT-SCROLL,INVISIBLE
|
|
MOVE NEWT-SCROLL,WINNER
|
|
PRINTR "There is a damp scroll there, which you take into your hand."
|
|
?ELS18: PRINTR "There is nothing there but goo."
|
|
|
|
.ENDI
|