Final Revision
parent
826abeb339
commit
fc9385cb7d
|
@ -0,0 +1,631 @@
|
|||
|
||||
|
||||
.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
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
|
||||
.FUNCT QUEUE,RTN,TICK,CINT
|
||||
CALL INT,RTN >CINT
|
||||
PUT CINT,C-TICK,TICK
|
||||
RETURN CINT
|
||||
|
||||
|
||||
.FUNCT INT,RTN,DEMON=0,E,C,INT
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
ADD C-TABLE,C-INTS >C
|
||||
?PRG1: EQUAL? C,E \?ELS5
|
||||
SUB C-INTS,C-INTLEN >C-INTS
|
||||
ZERO? DEMON /?ELS7
|
||||
SUB C-DEMONS,C-INTLEN >C-DEMONS
|
||||
?ELS7: ADD C-TABLE,C-INTS >INT
|
||||
PUT INT,C-RTN,RTN
|
||||
RETURN INT
|
||||
?ELS5: GET C,C-RTN
|
||||
EQUAL? STACK,RTN \?CND3
|
||||
RETURN C
|
||||
?CND3: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT CLOCKER,C,E,TICK,FLG=0
|
||||
ZERO? CLOCK-WAIT /?CND1
|
||||
SET 'CLOCK-WAIT,FALSE-VALUE
|
||||
RFALSE
|
||||
?CND1: ZERO? P-WON /?ELS9
|
||||
PUSH C-INTS
|
||||
JUMP ?CND5
|
||||
?ELS9: PUSH C-DEMONS
|
||||
?CND5: ADD C-TABLE,STACK >C
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
?PRG13: EQUAL? C,E \?ELS17
|
||||
INC 'MOVES
|
||||
RETURN FLG
|
||||
?ELS17: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND15
|
||||
GET C,C-TICK >TICK
|
||||
ZERO? TICK \?ELS22
|
||||
JUMP ?CND15
|
||||
?ELS22: SUB TICK,1
|
||||
PUT C,C-TICK,STACK
|
||||
GRTR? TICK,1 /?CND20
|
||||
GET C,C-RTN
|
||||
CALL STACK
|
||||
ZERO? STACK /?CND20
|
||||
SET 'FLG,TRUE-VALUE
|
||||
?CND20:
|
||||
?CND15: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG13
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,73 @@
|
|||
20-Aug-86 17:05:25 ZILCH started. Load is 3.04.
|
||||
SYS:ZILCH.EXE Z4
|
||||
|
||||
|
||||
Compiling SS:<ENCHANTER>Z4.ZIL.4
|
||||
[Classic Instructions]
|
||||
*** ENCHANTER: Interlogic Fantasy ***
|
||||
|
||||
|
||||
Compiling SS:<ENCHANTER>SYNTAX.ZIL.122
|
||||
Compiling SS:<ENCHANTER>MACROS.ZIL.22
|
||||
Compiling SS:<ENCHANTER>CLOCK.ZIL.3
|
||||
Compiling SS:<ENCHANTER>MAIN.ZIL.86
|
||||
Compiling SS:<ENCHANTER>GPARSER.ZIL.9
|
||||
Compiling SS:<ENCHANTER>VERBS.ZIL.245
|
||||
Compiling SS:<ENCHANTER>RECORD.ZIL.1
|
||||
Compiling SS:<ENCHANTER>GLOBALS.ZIL.139
|
||||
Compiling SS:<ENCHANTER>TERROR.ZIL.184
|
||||
Compiling SS:<ENCHANTER>STAIR.ZIL.131
|
||||
Compiling SS:<ENCHANTER>MAGIC.ZIL.277
|
||||
Compiling SS:<ENCHANTER>KNOT.ZIL.51
|
||||
Compiling SS:<ENCHANTER>PURLOINED.ZIL.185
|
||||
Compiling SS:<ENCHANTER>CASTLE.ZIL.234
|
||||
Compiling SS:<ENCHANTER>TEMPLE.ZIL.78
|
||||
Compiling SS:<ENCHANTER>GALLERY.ZIL.40
|
||||
Compiling SS:<ENCHANTER>EGG.ZIL.48
|
||||
Compiling SS:<ENCHANTER>SLEEP.ZIL.85
|
||||
Compiling SS:<ENCHANTER>GEARS.ZIL.159
|
||||
Compiling SS:<ENCHANTER>OUTSIDE.ZIL.130
|
||||
** Warning: Word "THROUGH" has two TPREP meanings: PR?THROUGH and PR?WITH
|
||||
|
||||
** Warning: Word "EXIT" has two TVERB meanings: ACT?EXIT and ACT?DROPCompiler halted.
|
||||
Used 6:38.9 in 00:13:55.
|
||||
ZAP started. Load is 2.00.
|
||||
SYS:ZAP.EXE Z4
|
||||
|
||||
Assembling Z4.XZAP.4
|
||||
Release: 29
|
||||
|
||||
64 Inserting Z4FREQ.XZAP.1 (626 bytes)
|
||||
690 Inserting Z4DAT.ZAP.15 (20784 bytes)
|
||||
21474 Inserting SYNTAX.ZAP.21 (0 bytes)
|
||||
21474 Inserting MACROS.ZAP.21 (117 bytes)
|
||||
21591 Inserting CLOCK.ZAP.21 (178 bytes)
|
||||
21769 Inserting MAIN.ZAP.21 (2289 bytes)
|
||||
24058 Inserting GPARSER.ZAP.5 (6898 bytes)
|
||||
30956 Inserting VERBS.ZAP.23 (12130 bytes)
|
||||
43086 Inserting RECORD.ZAP.13 (56 bytes)
|
||||
43142 Inserting GLOBALS.ZAP.22 (2799 bytes)
|
||||
45941 Inserting TERROR.ZAP.20 (4413 bytes)
|
||||
50354 Inserting STAIR.ZAP.20 (5043 bytes)
|
||||
55397 Inserting MAGIC.ZAP.19 (6509 bytes)
|
||||
61906 Inserting KNOT.ZAP.19 (1368 bytes)
|
||||
63274 Inserting PURLOINED.ZAP.19 (7343 bytes)
|
||||
70617 Inserting CASTLE.ZAP.19 (6510 bytes)
|
||||
77127 Inserting TEMPLE.ZAP.18 (3385 bytes)
|
||||
80512 Inserting GALLERY.ZAP.18 (2162 bytes)
|
||||
82674 Inserting EGG.ZAP.17 (1699 bytes)
|
||||
84373 Inserting SLEEP.ZAP.17 (2358 bytes)
|
||||
86731 Inserting GEARS.ZAP.17 (5826 bytes)
|
||||
92557 Inserting OUTSIDE.ZAP.17 (3338 bytes)
|
||||
95895 Inserting Z4STR.ZAP.15 (15231 bytes)
|
||||
255 objects.
|
||||
231 globals.
|
||||
723 word vocabulary.
|
||||
|
||||
111126 bytes (109K).
|
||||
21474 bytes of preload.
|
||||
12653 bytes of impure.
|
||||
|
||||
Outputting symbol tables
|
||||
Compiler halted.
|
||||
Used 53.9 in 00:01:08.
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
.FUNCT THIS-IT?,OBJ,TBL,SYNS,?TMP1
|
||||
FSET? OBJ,INVISIBLE /FALSE
|
||||
ZERO? P-NAM /?THN3
|
||||
GETPT OBJ,P?SYNONYM >SYNS
|
||||
PTSIZE SYNS
|
||||
DIV STACK,2
|
||||
SUB STACK,1
|
||||
CALL ZMEMQ,P-NAM,SYNS,STACK
|
||||
ZERO? STACK /FALSE
|
||||
?THN3: ZERO? P-ADJ /?ELS8
|
||||
GETPT OBJ,P?ADJECTIVE >SYNS
|
||||
ZERO? SYNS /FALSE
|
||||
PTSIZE SYNS
|
||||
SUB STACK,1
|
||||
CALL ZMEMQB,P-ADJ,SYNS,STACK
|
||||
ZERO? STACK /FALSE
|
||||
?ELS8: ZERO? P-GWIMBIT /TRUE
|
||||
FSET? OBJ,P-GWIMBIT /TRUE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
|
||||
.FUNCT THIS-IT?,OBJ,TBL,SYNS,?TMP1
|
||||
FSET? OBJ,INVISIBLE /FALSE
|
||||
ZERO? P-NAM /?ELS5
|
||||
GETPT OBJ,P?SYNONYM >SYNS
|
||||
PTSIZE SYNS
|
||||
DIV STACK,2
|
||||
SUB STACK,1
|
||||
CALL ZMEMQ,P-NAM,SYNS,STACK
|
||||
ZERO? STACK /FALSE
|
||||
?ELS5: ZERO? P-ADJ /?ELS9
|
||||
GETPT OBJ,P?ADJECTIVE >SYNS
|
||||
ZERO? SYNS /FALSE
|
||||
PTSIZE SYNS
|
||||
SUB STACK,1
|
||||
CALL ZMEMQB,P-ADJ,SYNS,STACK
|
||||
ZERO? STACK /FALSE
|
||||
?ELS9: ZERO? P-GWIMBIT /TRUE
|
||||
FSET? OBJ,P-GWIMBIT /TRUE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,176 @@
|
|||
|
||||
|
||||
.FUNCT JEWEL-CHESTS-F
|
||||
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?ELS5
|
||||
PRINTR "There's nothing inside."
|
||||
?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS9
|
||||
PRINTR "Don't bother. There's nothing inside anyway."
|
||||
?ELS9: EQUAL? PRSA,V?PUT \FALSE
|
||||
PRINTR "A waste of time. You'd probably forget where you put it."
|
||||
|
||||
|
||||
.FUNCT EGG-KNOB-STATE,KNOB,VER?=0
|
||||
ZERO? VER? \?THN6
|
||||
FSET? KNOB,OPENBIT \FALSE
|
||||
?THN6: PRINTI "The "
|
||||
PRINTD KNOB
|
||||
FSET? KNOB,OPENBIT \?ELS12
|
||||
PRINTI " has been "
|
||||
JUMP ?CND10
|
||||
?ELS12: ZERO? VER? /?CND10
|
||||
PRINTI " has not yet been "
|
||||
?CND10: GETP KNOB,P?TEXT
|
||||
PRINT STACK
|
||||
PRINTI ". "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT EGG-F
|
||||
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
|
||||
FSET? EGG,OPENBIT /?ELS5
|
||||
PRINTR "The egg isn't open!"
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS11
|
||||
PRINTI "This ornamented egg is both beautiful and complex. The egg itself is mother-of-pearl, but decorated with delicate gold traceries inlaid with jewels and other precious metals. On the surface are a lapis handle, an emerald knob, a silver slide, a golden crank, and a diamond-studded button carefully and unobtrusively imbedded in the decorations. These various protuberances are likely to be connected with some machinery inside."
|
||||
CRLF
|
||||
CALL EGG-KNOB-STATE,EGG-KNOB-1
|
||||
CALL EGG-KNOB-STATE,EGG-KNOB-2
|
||||
CALL EGG-KNOB-STATE,EGG-KNOB-3
|
||||
CALL EGG-KNOB-STATE,EGG-KNOB-4
|
||||
CALL EGG-KNOB-STATE,EGG-KNOB-5
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " is "
|
||||
FSET? PRSO,OPENBIT \?ELS18
|
||||
PRINTI "open."
|
||||
JUMP ?CND16
|
||||
?ELS18: PRINTI "closed."
|
||||
?CND16: CRLF
|
||||
RTRUE
|
||||
?ELS11: EQUAL? PRSA,V?PUT \?ELS26
|
||||
EQUAL? PRSI,EGG \?ELS26
|
||||
PRINTI "You can't put the "
|
||||
PRINTD PRSO
|
||||
PRINTR " inside the egg without damaging it."
|
||||
?ELS26: EQUAL? PRSA,V?REZROV \?ELS32
|
||||
FSET? EGG,OPENBIT /?ELS32
|
||||
FSET EGG,OPENBIT
|
||||
ADD SCORE,EGG-POINT >SCORE
|
||||
SET 'EGG-POINT,0
|
||||
PRINTI "The egg seems to come to life and each piece slides effortlessly in the correct pattern. The egg opens"
|
||||
IN? DAMAGED-SCROLL,EGG \?CND37
|
||||
FCLEAR DAMAGED-SCROLL,INVISIBLE
|
||||
CALL THIS-IS-IT,DAMAGED-SCROLL
|
||||
PRINTI ", revealing a shredded scroll inside, nestled among a profusion of shredders, knives, and other sharp instruments, cunningly connected to the knobs, buttons, etc. on the outside"
|
||||
?CND37: PRINTR "."
|
||||
?ELS32: EQUAL? PRSA,V?LOOK-INSIDE \?ELS45
|
||||
FSET? PRSO,OPENBIT \?ELS45
|
||||
FIRST? PRSO /?ELS45
|
||||
PRINTR "On the inside of the egg are many complex cutting devices."
|
||||
?ELS45: EQUAL? PRSA,V?OPEN \?ELS51
|
||||
FSET? EGG,OPENBIT /?ELS51
|
||||
PRINTR "That seems to be the problem."
|
||||
?ELS51: EQUAL? PRSA,V?CLOSE \?ELS57
|
||||
FSET? EGG,OPENBIT \?ELS57
|
||||
FCLEAR EGG-KNOB-1,OPENBIT
|
||||
FCLEAR EGG-KNOB-2,OPENBIT
|
||||
FCLEAR EGG-KNOB-3,OPENBIT
|
||||
FCLEAR EGG-KNOB-4,OPENBIT
|
||||
FCLEAR EGG-KNOB-5,OPENBIT
|
||||
PRINTI "As you close the egg, all of the pieces slide back into place, locking it shut."
|
||||
CRLF
|
||||
FCLEAR EGG,OPENBIT
|
||||
RTRUE
|
||||
?ELS57: EQUAL? PRSA,V?MUNG \FALSE
|
||||
PRINTI "The egg is smashed into little tiny pieces by the force of your blow."
|
||||
IN? DAMAGED-SCROLL,EGG \?CND66
|
||||
FCLEAR DAMAGED-SCROLL,INVISIBLE
|
||||
MOVE DAMAGED-SCROLL,SCRAMBLED-EGG
|
||||
PRINTI " Inside the now broken egg are the remains of a small spell scroll, damaged beyond hope of learning."
|
||||
?CND66: CRLF
|
||||
LOC EGG
|
||||
MOVE SCRAMBLED-EGG,STACK
|
||||
REMOVE EGG
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT EGG-KNOB-F
|
||||
EQUAL? PRSA,V?TURN,V?OPEN,V?REZROV /?THN6
|
||||
EQUAL? PRSA,V?PUSH,V?MOVE \?ELS5
|
||||
?THN6: FSET? PRSO,OPENBIT \?ELS12
|
||||
PRINTR "It's already in the open position."
|
||||
?ELS12: FSET PRSO,OPENBIT
|
||||
EQUAL? PRSA,V?REZROV \?ELS21
|
||||
ADD SCORE,EGG-POINT >SCORE
|
||||
SET 'EGG-POINT,0
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " vibrates, moving this way and that, becoming almost plastic, and finally moves to the open position."
|
||||
?ELS21: FSET? EGG,OPENBIT \?ELS25
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " moves, and a cunning and diabolically engineered set of gears, knives, grinders, and slicers moves across the interior of the egg."
|
||||
CRLF
|
||||
IN? DAMAGED-SCROLL,EGG \TRUE
|
||||
PRINTR "The scroll resting there is now shredded beyond recognition."
|
||||
?ELS25: PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " moves to the open position, after some resistance and a few odd noises from some machinery which resides inside the egg."
|
||||
CRLF
|
||||
FSET? EGG-KNOB-1,OPENBIT \TRUE
|
||||
FSET? EGG-KNOB-2,OPENBIT \TRUE
|
||||
FSET? EGG-KNOB-3,OPENBIT \TRUE
|
||||
FSET? EGG-KNOB-4,OPENBIT \TRUE
|
||||
FSET? EGG-KNOB-5,OPENBIT \TRUE
|
||||
ADD SCORE,EGG-POINT >SCORE
|
||||
SET 'EGG-POINT,0
|
||||
FSET EGG,OPENBIT
|
||||
PRINTI "The egg falls open"
|
||||
IN? DAMAGED-SCROLL,EGG \?CND44
|
||||
FCLEAR DAMAGED-SCROLL,INVISIBLE
|
||||
CALL THIS-IS-IT,DAMAGED-SCROLL
|
||||
PRINTI ", revealing a shredded scroll inside"
|
||||
?CND44: PRINTR "."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \?ELS52
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " is an integral part of the egg and thus cannot be taken."
|
||||
?ELS52: EQUAL? PRSA,V?EXAMINE \?ELS56
|
||||
CALL EGG-KNOB-STATE,PRSO,TRUE-VALUE
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS56: EQUAL? PRSA,V?CLOSE \?ELS58
|
||||
FSET? PRSO,OPENBIT \?ELS63
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " closes easily, but more noises issue from the interior."
|
||||
CRLF
|
||||
FCLEAR PRSO,OPENBIT
|
||||
RTRUE
|
||||
?ELS63: PRINTR "It's already closed."
|
||||
?ELS58: EQUAL? PRSA,V?MUNG \FALSE
|
||||
CALL PERFORM,V?MUNG,EGG
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SCRAMBLED-EGG-F,L,F
|
||||
LOC SCRAMBLED-EGG >L
|
||||
EQUAL? PRSA,V?KREBF \FALSE
|
||||
FIRST? SCRAMBLED-EGG >F \?CND6
|
||||
MOVE F,EGG
|
||||
?CND6: CALL THIS-IS-IT,EGG
|
||||
REMOVE SCRAMBLED-EGG
|
||||
MOVE EGG,L
|
||||
PRINTR "The egg is returned to its former pristine beauty!"
|
||||
|
||||
|
||||
.FUNCT DAMAGED-SCROLL-F,L
|
||||
LOC DAMAGED-SCROLL >L
|
||||
EQUAL? PRSA,V?KREBF \FALSE
|
||||
REMOVE DAMAGED-SCROLL
|
||||
MOVE SUMMON-SCROLL,L
|
||||
CALL THIS-IS-IT,SUMMON-SCROLL
|
||||
ADD SCORE,REPAIR-POINT >SCORE
|
||||
SET 'REPAIR-POINT,0
|
||||
PRINTR "The scroll reforms, its slices and cuts rejoining, until there is a whole scroll, somewhat faded, in its place!"
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,134 @@
|
|||
Fizbar's Review Guide for the Enchanter Guild Exam
|
||||
--------------------------------------------------
|
||||
For the young Enchanter just graduated from Thaumaturgy School, the
|
||||
prospect of facing the Enchanter's Guild Exam is a daunting one. Given
|
||||
only two weeks after the close of the grueling academic year, the Exam
|
||||
puts fear even into those novice spellcasters who have watched as their
|
||||
closest friends were turned into insects and have been transformed,
|
||||
albeit briefly, into bats.
|
||||
|
||||
For you, the magic users of tomorrow, we at Fizbar's have created the
|
||||
definitive review guide for the Guild Exam, including a sample exam with
|
||||
questions culled from actual exams from years past. With this Guide in
|
||||
hand, the keys to a bright future in Enchanting will be yours! Good
|
||||
luck!
|
||||
|
||||
Chapter I: Spell Books
|
||||
----------------------
|
||||
If there is one thing a novice Enchanter should not be without, it's
|
||||
his spell book. In it are inscribed all of the spells which he has
|
||||
mastered. The GNUSTO spell is used to inscribe newly learned spells into
|
||||
the book, and for this reason it is prudent to purchase a spell book
|
||||
which comes with the GNUSTO spell included, since factory-installed
|
||||
GNUSTO has been shown be more reliable than even the more expensive GNUSTOs
|
||||
when purchased separately.
|
||||
|
||||
Chapter II: Spell Scrolls
|
||||
-------------------------
|
||||
Spell scrolls are powerful devices which contain
|
||||
|
||||
Chapter III: Common Spells
|
||||
--------------------------
|
||||
|
||||
Chapter IV: Uncommon Spells
|
||||
---------------------------
|
||||
|
||||
Chapter V: Non-existent Spells
|
||||
------------------------------
|
||||
|
||||
Multiple Choice:
|
||||
----------------
|
||||
The FREMB spell will not work when which of the following is present?
|
||||
|
||||
a) Tuna Fish
|
||||
b) Antharians
|
||||
c) Granola
|
||||
d) Your Great-aunt Zelbo
|
||||
e) All of the above
|
||||
|
||||
Which of the following is not allowed by Thaumaturgical law?
|
||||
|
||||
a) FROTZing unripe fruits
|
||||
b) SPLEEBing your neighbor's wife
|
||||
c) NITFOLing brogmoids
|
||||
d) FROOing on alternate Wednesdays
|
||||
e) No less than 2 of the above
|
||||
|
||||
The first BLORB spell was cast in the city of:
|
||||
|
||||
a) Splatzburg
|
||||
b) McKeesport
|
||||
c) Fromage
|
||||
d) Izyukville
|
||||
|
||||
Which of the following spells is not concerned with death?
|
||||
|
||||
a) OZMOO
|
||||
b) GASPAR
|
||||
c) LEMING
|
||||
d) MORBO
|
||||
e) LIPTON
|
||||
|
||||
Problem Solving:
|
||||
----------------
|
||||
You hear a noise and turn around only to see a pack of lurking grues.
|
||||
You should immediately:
|
||||
|
||||
a) FROTZ the grues
|
||||
b) LEMING your hat
|
||||
c) AIMFIZ your best friend
|
||||
d) none of the above
|
||||
|
||||
Answer: D. This is a trick question. If you had paid attention at all
|
||||
in Beasts 201 you would know that grues have never been seen because
|
||||
of their fear of light. Clearly, you could never be in this situation.
|
||||
|
||||
Your pet dragon has been hit by a flying carpet and is running out of
|
||||
steam. Your best bet is to:
|
||||
|
||||
a) FROTZ the dragon
|
||||
b) KREBF the dragon
|
||||
c) QUELBO the dragon
|
||||
d) ZIFMIA the undertaker
|
||||
|
||||
Answer: C. FROTZing the dragon is fine when your light has gone out, but
|
||||
that's another problem. KREBF only repairs WILFULL damage, not
|
||||
accidental damage. QUELBO, which repairs CARPET-RELATED damage, will
|
||||
do the trick, making it unnecessary to ZIFMIA the undertaker. It can
|
||||
also be used to remove the unsightly stain on the carpet caused by
|
||||
the accident.
|
||||
|
||||
On a windy day, your hat is blown off your head and straight toward a
|
||||
cliff. You should:
|
||||
|
||||
a) ZIFMIA the hat
|
||||
b) FROTZ the cliff
|
||||
c) YOMIN the hat
|
||||
d) FORGET the hat
|
||||
|
||||
Answer: D. ZIFMIA can only be used on animate objects, which is not the
|
||||
case unless you had ??'ed the hat first. BLORB, although making the cliff
|
||||
more noticable, will do nothing for the hat. YOMIN will probe the hat's
|
||||
mind as it plummets over the cliff. FORGET, of course, is the 'retrieve
|
||||
lost haberdashery' spell and is perfect on such occasions.
|
||||
|
||||
Analogies:
|
||||
----------
|
||||
CLEESH : NEWT as BLORB : ???
|
||||
|
||||
a) Non-entity
|
||||
b) Cheesecake
|
||||
c) Circle of Enchanters
|
||||
d) Floor Waxer
|
||||
|
||||
NITFOL : ANIMAL as QUOBIX : ???
|
||||
|
||||
a) Vegetable
|
||||
b) Mineral
|
||||
c) Soybean
|
||||
d) Magic Wand
|
||||
|
||||
GNUSTO : SPELL BOOK as CRAYON : ???
|
||||
|
||||
a) Coloring Book
|
||||
b)
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,366 @@
|
|||
Enchanter
|
||||
---------
|
||||
|
||||
Introduction
|
||||
|
||||
"Enchanter" is a new adventure game in the Zork tradition,
|
||||
but in a different setting and with a different overall
|
||||
philosophy. The emphasis in Zork was on treasure and
|
||||
fighting, but in Enchanter the emphasis is on magic.
|
||||
|
||||
This document describes the game as currently envisioned.
|
||||
Comments are welcome; send them to Dave (PDL) and Marc
|
||||
(BLANK).
|
||||
|
||||
General Comments
|
||||
|
||||
The viewpoint character is a low-level magician. He has a
|
||||
few abilities represented by spells in his spell book. The
|
||||
goal of the game is two-fold. First, to become a better
|
||||
magician. Second, to defeat an evil magician who is taking
|
||||
over the dungeon, repairing the damage he has done.
|
||||
|
||||
The Milieu
|
||||
|
||||
The dungeon is deteriorating, from the point of view of
|
||||
anyone reasonable (such as you, we hope). Rooms are
|
||||
darkening, passages choking off (via magic and rockfalls),
|
||||
monsters are being released to prowl the halls.
|
||||
|
||||
The Warlock
|
||||
|
||||
The evil magician is "the Warlock." He just recently moved
|
||||
into the neighborhood and began taking it over, and you were
|
||||
sent by the Council to clear him out. He is much too much
|
||||
of a wizard for you to take on directly until the end of the
|
||||
game, and if you try (which should be possible), you get
|
||||
fried for your trouble. The Warlock is possibly also the
|
||||
priest who sacrifices you in the Temple scene. The
|
||||
Warlock's Tower (which is nonetheless underground) is at the
|
||||
top (bottom?) of the Endless Stair, and guarded by nasty
|
||||
creatures with nasty sharp teeth, etc. They are probably
|
||||
evilly magicked bunny rabbits.
|
||||
|
||||
The Adventurer
|
||||
|
||||
The Adventurer may come to your assistance after you magic
|
||||
him over from the other side of the mirror. He is from the
|
||||
Zork world, effectively, and comes equipped with an Elvish
|
||||
sword and various other paraphenalia. He will be turned
|
||||
against you by the Warlock at some point and have to be made
|
||||
friendly again. He will be needed to perform some task
|
||||
which is too physical for a cerebral type such as you.
|
||||
While he is turned against you he is like the thief in Zork,
|
||||
and may even attack you.
|
||||
|
||||
Monsters
|
||||
|
||||
There are lots of nasty, sharp-toothed creatures wandering
|
||||
around. Eventually, you can avoid them via "Protection from
|
||||
Evil." If you don't, you will get destroyed pretty quickly,
|
||||
or perhaps captured by the bad guys for sacrifice to their
|
||||
even nastier dieties.
|
||||
|
||||
Spells
|
||||
|
||||
Magic plays a big part in this game. There are several
|
||||
magical objects, magic spells (which you learn as you go
|
||||
along), and your spell-book, which is all-important. See
|
||||
"Spells, Detail" below for more on spells.
|
||||
|
||||
The ultimate action in the game is going to be to say some
|
||||
number of spells sequentially at the Warlock, which will
|
||||
banish him and restore the dungeon.
|
||||
|
||||
Some spells (English names):
|
||||
|
||||
*Light (makes a light wherever the caster goes)
|
||||
Open (opens something closed; a passage, a box...)
|
||||
Resurrect (restores something dead to life)
|
||||
Charm (makes someone friendly to you)
|
||||
*Write Magic (allows you to copy a spell into book)
|
||||
Fly (lets you fly around)
|
||||
Haste (makes things go fast)
|
||||
*Talk to Animals (lets you talk to turtle)
|
||||
|
||||
and others. * marks spells you have at the beginning.
|
||||
|
||||
Events/Problems
|
||||
|
||||
Darkness
|
||||
|
||||
As the game begins, you are in total darkness, having just
|
||||
entered the underground (perhaps you were teleported there
|
||||
by the Council). You have only your spell book.
|
||||
Fortunately, the words written in such books glow in the
|
||||
dark, so if you open the book you can read the spells you
|
||||
have, one of which is "Light".
|
||||
|
||||
Sacrifice
|
||||
|
||||
This is probably the only overt reference to the Zork
|
||||
trilogy, as it is based on the Viewing Table scene in Zork
|
||||
3. You are captured by the followers of the Warlock and
|
||||
dragged to the Temple, where you are sacrificed in a rite
|
||||
horrible and bloody. You are left lying on the altar, the
|
||||
magical sacrificial knife stuck in your chest. If you had
|
||||
the foresight to cast a "cheat death" beforehand, you revive
|
||||
a few moves later.
|
||||
|
||||
Gordian Knot
|
||||
|
||||
An ornate box is wrapped securely in a magic rope which you
|
||||
cannot cut or untie. In fact, if you try to untie it, it
|
||||
reties the next move. Like the original, this knot must be
|
||||
cut, but with a magical blade (it's a magical rope, after
|
||||
all). The blade is the sacrificial knife from the Temple
|
||||
scene. The prize here is (naturally enough) the "Open"
|
||||
spell.
|
||||
|
||||
Endless Stair
|
||||
|
||||
The entrance to the Warlock's Tower is an infinite stair.
|
||||
It is literally infinite, in that you can go up or down it
|
||||
any number of times (keep a count and a table of objects and
|
||||
locations in case twit drops things). Now, it isn't really
|
||||
infinite, it's only an illusion, and by casting that "Dispel
|
||||
Illusion," you discover it's actually only a round room
|
||||
which you have been marching around in for hours, and has an
|
||||
exit opposite the entrance.
|
||||
|
||||
Malleable Maze
|
||||
|
||||
There is an area of about ten rooms in a traditional Zork
|
||||
maze configuration. There is a (magic?) map of this area
|
||||
with none of the connections shown, only the rooms. As you
|
||||
roam about in the maze, the connections appear.
|
||||
|
||||
Interestingly enough, there is one room you can't get to.
|
||||
Fortunately, there is also a (magic?) pencil which you can
|
||||
use to draw in connections in this area. If you use it to
|
||||
draw the connection to the final room, you can retrieve the
|
||||
scroll contained therein, but also disturb the monster which
|
||||
guards it.
|
||||
|
||||
The monster chases you and can catch you if you don't erase
|
||||
an appropriate connection or two, trapping him.
|
||||
|
||||
The map and pencil can be used to vary the maze in any way
|
||||
you choose, erasing and drawing passages. Perhaps the maze
|
||||
should even be generated randomly in each game. It would be
|
||||
represented by ten tables of eight elements (or ten, if we
|
||||
include up and down as directions). You would draw by
|
||||
saying "Connect Red Room to Blue Room," and erase by saying
|
||||
"Disconnect Red Room from Blue Room."
|
||||
|
||||
Sleep
|
||||
|
||||
"Sleep" is both a spell and something you must do from time
|
||||
to time. By sleeping, you recover the energy used to cast
|
||||
spells and can rememorize spells. Also, you get a vision in
|
||||
a dream that either gives you a spell or a clue to solving
|
||||
one of the puzzles. This could even be a "Hint" facility if
|
||||
we wanted it to be.
|
||||
|
||||
Purloined Letter
|
||||
|
||||
This is the problem the silly adventurer is useful for.
|
||||
There is a huge door, decorated with magical runes and
|
||||
obvious enormously charged with power. It might even say
|
||||
something on it like "Magician, Keep Out!" If you touch it,
|
||||
you get seriously frotzed, and "Open" fizzles against it.
|
||||
This door is warded to the hilt. However, if you ask the
|
||||
adventurer to open it, he has no trouble, not being a
|
||||
magician. In fact, he doesn't even see it as a formidable
|
||||
door, just a random dungeon door. If you ask him, he will
|
||||
tell you. "Dispel Illusion" will reveal this, and waste the
|
||||
spell.
|
||||
|
||||
Rainbow Turtle
|
||||
|
||||
This huge, brightly decorated creature wanders around on the
|
||||
beach. See "Gears" for more.
|
||||
|
||||
Gears
|
||||
|
||||
Huge grinding gears and pounding machinery fill a certain
|
||||
room. Things are being thrown around in here, all the time,
|
||||
and if you try to get across the room to get the spell
|
||||
scroll clearly visible in an alcove, you are speared or
|
||||
crushed by the pounding machinery. The turtle is impervious
|
||||
to the spears but is crushed by the pounding stuff. But, if
|
||||
you cast "Talk to Animals" on him, you can ask him to
|
||||
retrieve the scroll. If you cast "Haste" on him, he can get
|
||||
across between "Crunch!" and "Crunch!", otherwise he is
|
||||
smushed.
|
||||
|
||||
Faberge Easter Egg
|
||||
|
||||
This is an object of great beauty and enormous complexity.
|
||||
It has lots of little twisty handles and knobs and stuff in
|
||||
the filigree (which you see if you examine it). They
|
||||
presumably open it (and in fact they do, if all turned or
|
||||
pushed or whatever). However, if the Egg is opened that
|
||||
way, the stuff these frobs are connected to inside destroy
|
||||
the scroll contained within. You must use the "Open" spell
|
||||
to actually open it safety.
|
||||
|
||||
|
||||
Spells, Detail
|
||||
(Theory and Practice of Thaumaturgy)
|
||||
|
||||
[Much of what follows is adapted from "real" D&D.]
|
||||
|
||||
Spells are ways of performing magic. They are either
|
||||
general in their effect ("Light!") or specific ("Open!").
|
||||
Spells have an English name and a one-word nonsense
|
||||
incantation to invoke them. For example, "Light!" might be
|
||||
invoked by "Krebf!" and "Open!" by "Frotz the door!" You
|
||||
may encounter the incantation word without knowing the
|
||||
associated English for a spell! It is therefore possible to
|
||||
invoke a spell without knowing for sure what it will do.
|
||||
|
||||
You have a spell book. Your spell book records the spells
|
||||
you learn. There is a distinction between learning a spell
|
||||
and memorizing it for use. Only a small number of spells
|
||||
can actually be memorized at one time, and you must rest and
|
||||
rememorize them to use them again. A spell written in your
|
||||
spell book can be memorized again and again. Once you have
|
||||
memorized a spell, you can use it without having the spell
|
||||
book around. When you use a spell you have memorized, you
|
||||
forget it.
|
||||
|
||||
You might have a spell book containing ten spells, but only
|
||||
be able to memorize five of them at one time. Correct
|
||||
selection of spells to memorize is one aspect of the game.
|
||||
If you lose your spell book, you are in deep trouble.
|
||||
|
||||
Newly found spells may be written into your spell book using
|
||||
the spell "Write magic!" Sometimes a spell is too powerful
|
||||
to be used more than once, and it appears in the book in a
|
||||
different form. Such spells disappear from the book after
|
||||
being used (the book "forgets" them).
|
||||
|
||||
Once a spell is written in your spell book, its English name
|
||||
becomes apparent. In fact, reading your book probably would
|
||||
look like:
|
||||
|
||||
Spell Book
|
||||
|
||||
Frotz - perpetual light
|
||||
Ozmoo - open a closed object
|
||||
Fweep - charm an unfriendly creature
|
||||
etc.
|
||||
|
||||
There will be a command ("Spells") which will inventory
|
||||
those spells you have memorized for this day. It is
|
||||
possible to memorize a spell more than once; you get "more
|
||||
than one copy," in some sense. If you try to memorize more
|
||||
spells than you can remember, you will forget the first one
|
||||
memorized.
|
||||
|
||||
Magic spells usually have a duration, and sometimes a cycle
|
||||
time (meaning that you can't do them many times right in a
|
||||
row).
|
||||
|
||||
In addition to the Spell Book and Spells, there is going to
|
||||
need to be a sort of crib sheet giving enough detail for the
|
||||
player to get started. The rationale is that having just
|
||||
graduated from Wizard School, you are still a little shakey.
|
||||
|
||||
Spell Implementation, Details
|
||||
|
||||
You want syntaxes like:
|
||||
|
||||
<spell>. FROTZ! ("Light!")
|
||||
<spell> <object>. FWEEP DOOR! ("Open door!")
|
||||
Cast <spell> spell.
|
||||
Cast <spell> on <object>.
|
||||
Cast <spell> spell on object.
|
||||
|
||||
SPELL is the main synonym, so:
|
||||
|
||||
>Cast spell
|
||||
Which spell, the foo spell or the bar spell?
|
||||
|
||||
You should also be able to
|
||||
|
||||
>Learn <spell>
|
||||
>Frob <spell> ;Where "frob" is "write magic"
|
||||
>Memorize <spell>
|
||||
>Memorize <spell> twice ;Frill?
|
||||
|
||||
I see a "spell" as being the following;
|
||||
|
||||
<OBJECT FOO-SPELL
|
||||
(IN SPELL-BOOK)
|
||||
(SYNONYM SPELL)
|
||||
(ADJECTIVE FOO)
|
||||
(MEMORIZED 0) ;"count of times memorized"
|
||||
(ACTION FOO-SPELL-F)
|
||||
... >
|
||||
|
||||
There is also a GLOBAL-FOO-SPELL, which is not put in
|
||||
GLOBAL-OBJECTS until you first encounter/learn "Foo."
|
||||
GLOBAL-FOO-SPELL has its ACTION property the same as
|
||||
FOO-SPELL's, and so all checking is done in the same place.
|
||||
The command to check your memorized spells can just wander
|
||||
down the list of all spells and tell you which have
|
||||
MEMORIZED properties greater than zero.
|
||||
|
||||
|
||||
|
||||
Other Possible Characters
|
||||
|
||||
Dwarves -- these guys are getting out, and might tell you
|
||||
about the Warlock and about the Terror if you ask. They
|
||||
would be comic figures like those in Steve's book. They
|
||||
might also give you a weapon (which you can't use, being a
|
||||
magician).
|
||||
|
||||
Cultists -- worshippers of the evil Warlock. They would be
|
||||
the ones to capture you and take you to the Temple.
|
||||
|
||||
Other Possible Problem Ideas
|
||||
|
||||
;;This problem is superceded by the Malleable Maze, but is
|
||||
;;left here in case we can salvage a smaller problem from
|
||||
;;it.
|
||||
;; Maze of Glass
|
||||
|
||||
;;This is a large room divided into small rooms by glass
|
||||
;;partitions, some of which are there, some not, to produce a
|
||||
;;maze. You must have the "Fly" spell to solve it, because
|
||||
;;some of the exits are "Up". There is a spell scroll as a
|
||||
;;prize. Implementation is analogous to that of the Chinese
|
||||
;;puzzle in Zork 3. Depending on how nasty we want to be,
|
||||
;;this could be a 3x3x3 up to a 5x5x5 cube.
|
||||
|
||||
"Coal Chute" - adapt Coal Chute problem from original Zork.
|
||||
Use magic rope? Gist is that you can hang on for a limited
|
||||
time and carry a limited weight, and there is an exit in the
|
||||
middle of the chute. This may be too "Zorkish" for Enchanter.
|
||||
|
||||
|
||||
|
||||
Summary of Problems
|
||||
|
||||
-Specific Problems- -File- -You Need-
|
||||
|
||||
Darkness "Light"
|
||||
Sacrifice TEMPLE "Resurrect"
|
||||
Gordian Knot KNOT Magic Knife
|
||||
Malleable Maze TERROR Magic Pencil and Map
|
||||
Adventurer "Summon" and "Charm"
|
||||
Purloined Letter PURLOINED Adventurer or "Dispel Illusion"
|
||||
Faberge Easter Egg EGG "Open"
|
||||
Sleep SLEEP
|
||||
Gears/Turtle GEARS "Talk to Animals" and "Haste"
|
||||
Endless Stair STAIR "Dispel Illusion"
|
||||
Warlock everything
|
||||
|
||||
-General Problems- -File- -You Need-
|
||||
|
||||
Protect Self "Protection from Evil"
|
||||
Protect Spell Book "Protection from Evil"?
|
||||
Magic/Learning Spells MAGIC "Write Magic"
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
">
|
||||
|
||||
<BLOAT 90000 0 0 3300 0 0 0 0 0 256>
|
||||
<SETG ZORK-NUMBER 4>
|
||||
|
||||
<SNAME "ENCHANTER">
|
||||
|
||||
|
@ -19,9 +19,6 @@
|
|||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<OR <GASSIGNED? INSERT-CRUFTY>
|
||||
<DEFINE INSERT-CRUFTY (STR) <INSERT-FILE .STR T>>>
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<ID 0>)>
|
||||
|
||||
|
@ -30,10 +27,9 @@
|
|||
<INSERT-FILE "MACROS" T>
|
||||
<INSERT-FILE "CLOCK" T>
|
||||
<INSERT-FILE "MAIN" T>
|
||||
<INSERT-FILE "PARSER" T>
|
||||
|
||||
<INSERT-CRUFTY "CRUFTY">
|
||||
<INSERT-FILE "GPARSER" T>
|
||||
<INSERT-FILE "VERBS" T>
|
||||
<INSERT-FILE "RECORD" T>
|
||||
<INSERT-FILE "GLOBALS" T>
|
||||
<INSERT-FILE "TERROR" T>
|
||||
<INSERT-FILE "STAIR" T>
|
||||
|
|
BIN
enchanter.zip
BIN
enchanter.zip
Binary file not shown.
|
@ -0,0 +1,127 @@
|
|||
|
||||
|
||||
.FUNCT GALLERY-A
|
||||
IN? ADVENTURER,HERE \FALSE
|
||||
ZERO? PORTRAIT-COMMENT \FALSE
|
||||
FSET? FLATHEAD-PORTRAIT,INVISIBLE /FALSE
|
||||
ZERO? ADVENTURER-CHARMED /FALSE
|
||||
SET 'PORTRAIT-COMMENT,TRUE-VALUE
|
||||
PRINTR "The adventurer stops and stares at the portraits. ""I've met him!"" he gasps, pointing at the Wizard of Frobozz. He doesn't appear eager to meet him again, though. ""And there's old Flathead! What a sight!"" He glances at the other portraits briefly and then re-checks his map."
|
||||
|
||||
|
||||
.FUNCT GALLERY-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
CALL LIT?,HERE,FALSE-VALUE
|
||||
ZERO? STACK \?ELS5
|
||||
ZERO? SUPER-BRIEF /?CND8
|
||||
ZERO? GALLERY-POINT /?CND8
|
||||
CALL DESCRIBE-PORTRAIT-GALLERY
|
||||
?CND8: FCLEAR HERE,TOUCHBIT
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL LIT?,HERE,FALSE-VALUE
|
||||
ZERO? STACK /?ELS19
|
||||
ZERO? GALLERY-POINT /?CND20
|
||||
REMOVE LIGHTED-PORTRAIT
|
||||
?CND20: SET 'VISITED-GALLERY?,TRUE-VALUE
|
||||
PRINTI "The east-west corridor opens into a gallery. The walls are lined with portraits, some of apparently great value. All of the eyes seem to follow you as you pass, and the entire room is subtly disturbing."
|
||||
CRLF
|
||||
IN? PORTRAIT-NICHE,GALLERY \FALSE
|
||||
PRINTR "A small niche can be seen in the wall behind the spot where a painting had been hanging."
|
||||
?ELS19: CALL DESCRIBE-PORTRAIT-GALLERY
|
||||
ZERO? STACK \FALSE
|
||||
PRINTR "It is pitch black."
|
||||
|
||||
|
||||
.FUNCT DESCRIBE-PORTRAIT-GALLERY
|
||||
IN? ETERNAL-FLAME,PORTRAIT-NICHE \FALSE
|
||||
FSET? ETERNAL-FLAME,ONBIT \FALSE
|
||||
ZERO? GALLERY-POINT /?CND8
|
||||
MOVE LIGHTED-PORTRAIT,HERE
|
||||
?CND8: ZERO? VISITED-GALLERY? /?ELS13
|
||||
PRINTI "An eerie orange glow casts a pale, flickering light on the portrait gallery."
|
||||
JUMP ?CND11
|
||||
?ELS13: SET 'VISITED-GALLERY?,TRUE-VALUE
|
||||
PRINTI "The east-west corridor opens into a portrait gallery. The gallery is lit by an eerie orange glow."
|
||||
?CND11: PRINTR " The eyes of the figures portrayed on the canvases seem to be faintly illuminated and follow your every movement. After a moment, the source of light becomes clear: a single lighted portrait flickers as if a flame were burning behind it."
|
||||
|
||||
|
||||
.FUNCT PORTRAITS-F
|
||||
EQUAL? PRSA,V?MOVE,V?TAKE \?ELS5
|
||||
PRINTR "The portraits are large and extremely heavy; they can be neither taken nor moved."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND \?ELS9
|
||||
PRINTR "There are hundreds of canvases here; you look behind one or two at random but find nothing of interest."
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTI "The portraits represent a wide cross-section of races. Elves, gnomes, dwarves, wizards, warlocks, and just plain folk are all here. Some of them are known to you, such as Lord Dimwit Flathead of the Great Underground Empire, depicted here in excessive detail, and the Wizard of Frobozz, shown in a typical pose of anguished bewilderment."
|
||||
CRLF
|
||||
FCLEAR FLATHEAD-PORTRAIT,INVISIBLE
|
||||
FCLEAR FROBOZZ-PORTRAIT,INVISIBLE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FLATHEAD-PORTRAIT-F
|
||||
EQUAL? PRSA,V?ZIFMIA \?ELS5
|
||||
PRINTR "Poor Flathead, the years have not been kind to him. Just as well, probably."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "This rather dull man stumbled into royalty in the Great Underground Empire, and much to everyone's chagrin. Named by his people Lord Dimwit Flathead the Excessive, he was best known for his outrageousness in style, policy, and engineering. His portrait captures him in the classic pose of imbecility, astride his gaudy throne."
|
||||
|
||||
|
||||
.FUNCT FROBOZZ-PORTRAIT-F
|
||||
EQUAL? PRSA,V?ZIFMIA \?ELS5
|
||||
PRINTR "The Wizard doesn't seem to respond to the summons. Perhaps he is too busy molesting adventurers in ZORK II."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The Wizard of Frobozz was a former member of the Circle of Enchanters, but he was removed for forgetfulness bordering on senility. The lively wit of his youth having been replaced by a semisadistic mischievousness coupled with an inability to pronounce words beginning with other than the letter ""F"", he was ""retired"" to a small, unoccupied corner of the Great Underground Empire, hopefully out of harm's way."
|
||||
|
||||
|
||||
.FUNCT LIGHTED-PORTRAIT-F
|
||||
EQUAL? PRSA,V?LOOK-BEHIND \?ELS5
|
||||
FSET? PRSO,TOUCHBIT /?ELS5
|
||||
ADD SCORE,GALLERY-POINT >SCORE
|
||||
SET 'GALLERY-POINT,0
|
||||
MOVE PORTRAIT-NICHE,HERE
|
||||
FSET PRSO,TOUCHBIT
|
||||
PRINTI "Behind the portrait is a small niche. You find that the portrait is much lighter than the others and place it on the ground."
|
||||
FCLEAR HERE,ONBIT
|
||||
FIRST? PORTRAIT-NICHE \?CND10
|
||||
PRINTI " Sitting in the niche is "
|
||||
CALL PRINT-CONTENTS,PORTRAIT-NICHE
|
||||
PRINTI "."
|
||||
?CND10: CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS18
|
||||
FSET? PRSO,TOUCHBIT /?ELS23
|
||||
PRINTR "The portrait, of an obscure adventurer, is not notable except for the fact that it is lighted from behind by a flickering orange light."
|
||||
?ELS23: PRINTR "The portrait, of some obscure personage carrying a brass lantern and an elvish sword of great antiquity, is mediocre at best."
|
||||
?ELS18: EQUAL? PRSA,V?TAKE,V?MOVE \FALSE
|
||||
FSET? PRSO,TOUCHBIT /FALSE
|
||||
FCLEAR PRSO,NDESCBIT
|
||||
FSET PRSO,TOUCHBIT
|
||||
ADD SCORE,GALLERY-POINT >SCORE
|
||||
SET 'GALLERY-POINT,0
|
||||
MOVE PORTRAIT-NICHE,HERE
|
||||
PRINTI "The portrait is quite light. You remove it from the wall and place it on the ground, revealing a small niche in the wall"
|
||||
FIRST? PORTRAIT-NICHE \?CND36
|
||||
PRINTI ", in which sits "
|
||||
CALL PRINT-CONTENTS,PORTRAIT-NICHE
|
||||
?CND36: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT PORTRAIT-NICHE-F
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
||||
PRINTR "You can't do that."
|
||||
|
||||
|
||||
.FUNCT ETERNAL-FLAME-F
|
||||
EQUAL? PRSA,V?KULCAD,V?GONDAR \?ELS5
|
||||
PRINTI "The flame flickers for a moment, then goes out."
|
||||
CRLF
|
||||
FCLEAR ETERNAL-FLAME,ONBIT
|
||||
FCLEAR ETERNAL-FLAME,LIGHTBIT
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS9
|
||||
FSET? ETERNAL-FLAME,ONBIT /?ELS9
|
||||
PRINTR "You can't relight the candles."
|
||||
?ELS9: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
||||
PRINTR "The flame cannot be extinguished, no matter how hard you try."
|
||||
|
||||
.ENDI
|
|
@ -137,7 +137,7 @@ molesting adventurers in ZORK II." CR>)
|
|||
<TELL
|
||||
"The Wizard of Frobozz was a former member of the Circle of Enchanters, but
|
||||
he was removed for forgetfulness bordering on senility. The lively wit of his
|
||||
youth having been replaced by a semi-sadistic mischievousness coupled with
|
||||
youth having been replaced by a semisadistic mischievousness coupled with
|
||||
an inability to pronounce words beginning with other than the letter \"F\",
|
||||
he was \"retired\" to a small, unoccupied corner of the Great Underground
|
||||
Empire, hopefully out of harm's way." CR>)>>
|
||||
|
@ -195,7 +195,7 @@ the ground, revealing a small niche in the wall">
|
|||
(SYNONYM NICHE)
|
||||
(ADJECTIVE SMALL)
|
||||
(CAPACITY 30)
|
||||
(FLAGS CONTBIT OPENBIT NDESCBIT)
|
||||
(FLAGS CONTBIT OPENBIT NDESCBIT SEARCHBIT)
|
||||
(ACTION PORTRAIT-NICHE-F)>
|
||||
|
||||
<ROUTINE PORTRAIT-NICHE-F ()
|
||||
|
|
|
@ -0,0 +1,480 @@
|
|||
|
||||
|
||||
.FUNCT MACHINERY-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The machinery is extremely noisy and complicated. Other than that, you can't imagine of what use it is to anybody."
|
||||
?ELS5: EQUAL? PRSA,V?AVOID \?ELS9
|
||||
CALL HAMMER-F
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?EXEX \FALSE
|
||||
PRINTR "The machinery may or may not have been sped up, the facts being hard to determine."
|
||||
|
||||
|
||||
.FUNCT ENGINE-ROOM-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "The room is filled with noise: crashing and smashing, gurgling of water, grinding of gears, and horrible screeching of metal. Huge devices of obscure purpose provide these effects. The most notable is a huge hammer that smashes continually against the stone floor: it makes any crossing of the room a dangerous enterprise. The whole construction brings to mind the words ""Infernal Machine."" Far off to the southeast is another room."
|
||||
IN? DISPEL-SCROLL,CLOSET \?CND8
|
||||
PRINTI " You can barely make out something on the floor of that room. It might be a scroll, but from here you can't tell for sure."
|
||||
?CND8: CRLF
|
||||
IN? TURTLE,CLOSET \TRUE
|
||||
PRINTR "Across the room you can see the rainbow turtle, who frequently looks your way."
|
||||
|
||||
|
||||
.FUNCT HAMMER-F
|
||||
EQUAL? PRSA,V?WALK-AROUND,V?AVOID \?ELS5
|
||||
PRINTR "It's hard to see how you'll avoid a painful experience."
|
||||
?ELS5: EQUAL? PRSA,V?EXEX \FALSE
|
||||
SET 'HAMMER-EXEX,TRUE-VALUE
|
||||
PRINTR "The crashing of the hammer has become more frequent."
|
||||
|
||||
|
||||
.FUNCT SE-TOWER-F,RARG=0
|
||||
EQUAL? RARG,M-BEG \FALSE
|
||||
EQUAL? PRSA,V?WALK \FALSE
|
||||
EQUAL? PRSO,P?UP \?ELS10
|
||||
CALL QUEUE,I-CRASH,2
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
?ELS10: CALL INT,I-CRASH
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT LIGHTS-F
|
||||
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
||||
PRINTR "The lights and displays hold no meaning for you. A random number generator may be controlling the whole thing, for all you know."
|
||||
|
||||
|
||||
.FUNCT I-CRASH
|
||||
LOC PLAYER
|
||||
EQUAL? STACK,ENGINE-ROOM,CLOSET,SE-TOWER /?CND1
|
||||
CALL INT,I-CRASH
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
?CND1: ZERO? CRASH? \?PRD4
|
||||
PUSH 1
|
||||
JUMP ?PRD5
|
||||
?PRD4: PUSH 0
|
||||
?PRD5: SET 'CRASH?,STACK
|
||||
ZERO? CRASH? \?THN9
|
||||
ZERO? HAMMER-EXEX /?CND6
|
||||
?THN9: PRINTI """Crash!"" A huge hammer smashes against the stone floor"
|
||||
IN? PLAYER,CLOSET \?CND13
|
||||
PRINTI " outside"
|
||||
?CND13: PRINTI "."
|
||||
CRLF
|
||||
?CND6: ZERO? FAST? \?THN25
|
||||
ZERO? HAMMER-EXEX /?ELS24
|
||||
?THN25: PUSH 1
|
||||
JUMP ?CND20
|
||||
?ELS24: PUSH 2
|
||||
?CND20: CALL QUEUE,I-CRASH,STACK
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CROSS-ENGINE-ROOM
|
||||
EQUAL? HASTED?,WINNER \?ELS5
|
||||
SET 'FAST?,TRUE-VALUE
|
||||
EQUAL? WINNER,TURTLE \?ELS8
|
||||
PRINTI "As the turtle starts across, he seems to set off something, for the machinery speeds up and the noise level becomes almost unbearable. Luckily, he makes it to the other side safely!"
|
||||
CRLF
|
||||
RETURN CLOSET
|
||||
?ELS8: PRINTI "You zip across the room easily, but you must have touched something dangerous along the way, because the machinery speeds up, going faster and faster."
|
||||
CRLF
|
||||
RETURN CLOSET
|
||||
?ELS5: EQUAL? WINNER,TURTLE \?ELS16
|
||||
CALL INT,I-TURTLE
|
||||
PUT STACK,0,0
|
||||
PRINTI "The poor turtle starts, but he's just too slow. About halfway across the room he is dispatched by the enormous hammer, leaving only a rainbow colored smudge on the floor."
|
||||
EQUAL? DEATH-CHEATED,TURTLE \?CND19
|
||||
SET 'DEATH-CHEATED,FALSE-VALUE
|
||||
CRLF
|
||||
CRLF
|
||||
PRINTI "But wait! Amazingly, the smudge reforms into a turtle again! The revived turtle just has time to turn his head in wonderment when the hammer smashes down again, remaking the rainbow smudge."
|
||||
?CND19: PRINTI " Even that disappears at the next blow of the hammer."
|
||||
CRLF
|
||||
CALL JIGS-UP,FALSE-VALUE,FALSE-VALUE
|
||||
RFALSE
|
||||
?ELS16: ZERO? FAST? \?THN28
|
||||
ZERO? CRASH? /?ELS27
|
||||
?THN28: PRINTI "You start across the room, but less than halfway across, the huge hammer crashes down, right on top of you!"
|
||||
CRLF
|
||||
EQUAL? DEATH-CHEATED,ME \?CND32
|
||||
PRINTI "Startlingly, you revive from this fatal blow, but even more startlingly, the first thing you see is the same huge hammer descending upon you!"
|
||||
CRLF
|
||||
?CND32: CALL JIGS-UP,FALSE-VALUE,FALSE-VALUE
|
||||
RFALSE
|
||||
?ELS27: SET 'FAST?,TRUE-VALUE
|
||||
PRINTI "You make it across the room, but just barely; just as you duck through the door, a huge hammer crashes down behind, missing by an inch. Something you stepped on along the way clicked as well, and with a horrible screeching noise, the machinery speeds up, crashing faster and faster until it's twice as fast as before."
|
||||
CRLF
|
||||
CRLF
|
||||
RETURN CLOSET
|
||||
|
||||
|
||||
.FUNCT RECROSS-ENGINE-ROOM
|
||||
EQUAL? WINNER,TURTLE \?ELS5
|
||||
EQUAL? HASTED?,TURTLE \?ELS10
|
||||
IN? DISPEL-SCROLL,CLOSET \?CND11
|
||||
SET 'TURTLE-REPORT?,TRUE-VALUE
|
||||
?CND11: PRINTI "The turtle fairly zips across the engine room, dodging the giant hammers and gears. Suddenly he sets off a trap, and sharp spears fly at him from all directions! But they bounce harmlessly off his shell! He avoids one last crash of a huge hammer, but even at his speed, it's a near thing! With one more burst of speed, he reaches "
|
||||
IN? PLAYER,ENGINE-ROOM \?ELS20
|
||||
PUSH STR?284
|
||||
JUMP ?CND16
|
||||
?ELS20: PUSH STR?285
|
||||
?CND16: PRINT STACK
|
||||
PRINTI " safely!"
|
||||
CRLF
|
||||
RETURN ENGINE-ROOM
|
||||
?ELS10: CALL INT,I-TURTLE
|
||||
PUT STACK,0,0
|
||||
PRINTI "The turtle starts across the room, as hammers and gears slowly turn and crash. Partway across the room, he sets off a trap! Spears fly at him from all directions! They just bounce off his shell, and he is unhurt. Unfortunately, at about this time, a enormous hammer smashes down. This does not bounce off his shell, and the poor creature expires."
|
||||
CRLF
|
||||
EQUAL? DEATH-CHEATED,TURTLE \?CND27
|
||||
PRINTI "Astoundingly, the turtle renews himself! Unfortunately, he makes it no further, for the hammer is still too much for even his armor."
|
||||
CRLF
|
||||
?CND27: CALL JIGS-UP,FALSE-VALUE,FALSE-VALUE
|
||||
RFALSE
|
||||
?ELS5: IN? DISPEL-SCROLL,WINNER \?CND34
|
||||
REMOVE DISPEL-SPELL
|
||||
REMOVE DISPEL-SCROLL
|
||||
?CND34: EQUAL? HASTED?,WINNER \?ELS39
|
||||
PRINTI "You rush across the engine room, your speed enabling you to avoid the gigantic hammers and gears; at this speed they appear to move with great deliberation. Unfortunately, you set off a trap, and many sharp spears fly at you from all directions! They seem to move pretty fast. Too fast, in fact. You can't dodge them, and you are severely skewered."
|
||||
JUMP ?CND37
|
||||
?ELS39: PRINTI "You run across the room, trying to dodge the crashing machinery, and you are succeeding for a while until you set off a trap. A volley of sharp spears, powered by cunning machinery, comes at you from all directions. You are skewered! The huge hammer crashes down for the coup de grace."
|
||||
?CND37: CRLF
|
||||
EQUAL? DEATH-CHEATED,ME \?CND46
|
||||
PRINTI "In an astounding feat of magic, you are reassembled and revived. In an even more astounding feat of trap design, you are dispatched again almost before you can take a breath."
|
||||
CRLF
|
||||
?CND46: CALL JIGS-UP,FALSE-VALUE,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT WAVES-F
|
||||
EQUAL? PRSA,V?THROUGH,V?SWIM \FALSE
|
||||
PRINTR "Don't press your luck. You'd probably drown."
|
||||
|
||||
|
||||
.FUNCT SEA-STUFF-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "There's nothing much interesting to see."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
||||
PRINTR "Why bother?"
|
||||
|
||||
|
||||
.FUNCT NO-RESPONSE
|
||||
PRINTR "You hear no response."
|
||||
|
||||
|
||||
.FUNCT TURTLE-F,NEAR?
|
||||
LOC PLAYER
|
||||
IN? TURTLE,STACK /?PRD1
|
||||
PUSH 0
|
||||
JUMP ?PRD2
|
||||
?PRD1: PUSH 1
|
||||
?PRD2: SET 'NEAR?,STACK
|
||||
EQUAL? WINNER,TURTLE \?ELS7
|
||||
MOVE GLOBAL-TURTLE,GLOBAL-OBJECTS
|
||||
ZERO? TURTLE-TIRED? /?CND8
|
||||
ZERO? NEAR? /?ELS14
|
||||
PRINTR "The turtle is asleep and appears oblivious to your words."
|
||||
?ELS14: CALL NO-RESPONSE
|
||||
RTRUE
|
||||
?CND8: CALL QUEUE,I-TURTLE,-1
|
||||
PUT STACK,0,1
|
||||
FSET TURTLE,TOUCHBIT
|
||||
EQUAL? TALK-TO-ANIMAL?,TURTLE /?ELS24
|
||||
ZERO? NEAR? /?ELS27
|
||||
PRINTI "The turtle looks at you quizzically. It's clear he would like to understand you, but he doesn't. He responds, but it's only snaps, hisses, and clicks to you."
|
||||
CRLF
|
||||
JUMP ?CND25
|
||||
?ELS27: CALL NO-RESPONSE
|
||||
?CND25: SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS24: EQUAL? PRSA,V?WALK \?ELS34
|
||||
SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
INC 'TF-COUNT
|
||||
IN? TURTLE,INSIDE-GATE \?ELS39
|
||||
EQUAL? PRSO,P?WEST \?ELS39
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
PRINTR """Uh, no thanks. I prefer to stay near my beach. I don't see much yummy seaweed out that way."""
|
||||
?ELS39: IN? TURTLE,DIM-DESCENT \?ELS45
|
||||
EQUAL? PRSO,P?DOWN,P?SOUTH \?ELS45
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
PRINTR """Uh, no thanks. It looks dark and scary down there, and I get a kind of bad feeling about it, like you get when you eat old seaweed."""
|
||||
?ELS45: EQUAL? PRSO,P?UP \?ELS51
|
||||
LOC TURTLE
|
||||
CALL GLOBAL-IN?,STAIRS,STACK
|
||||
ZERO? STACK /?ELS51
|
||||
ZERO? NEAR? /FALSE
|
||||
PRINTI "The turtle huffs and puffs up the stairs. ""Pretty steep stairs for a turtle, friend..."""
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS51: EQUAL? PRSO,P?DOWN \?ELS61
|
||||
LOC TURTLE
|
||||
CALL GLOBAL-IN?,STAIRS,STACK
|
||||
ZERO? STACK /?ELS61
|
||||
ZERO? NEAR? /?CND64
|
||||
PRINTI """Those stairs are pretty steep. I'll follow you down, but I'm not going alone!"""
|
||||
CRLF
|
||||
?CND64: SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS61: GRTR? TF-COUNT,4 \FALSE
|
||||
MOD TF-COUNT,6
|
||||
ZERO? STACK \FALSE
|
||||
CALL TURTLE-TIRES
|
||||
RFALSE
|
||||
?ELS34: EQUAL? PRSA,V?WHO \?ELS75
|
||||
ZERO? NEAR? /?ELS80
|
||||
PRINTR """Never heard of him."""
|
||||
?ELS80: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS75: EQUAL? PRSA,V?THANK \?ELS87
|
||||
CALL TURTLE-THANKS,NEAR?
|
||||
RSTACK
|
||||
?ELS87: EQUAL? PRSA,V?STAY \?ELS89
|
||||
EQUAL? PRSO,GLOBAL-ROOM,FALSE-VALUE \?ELS89
|
||||
SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
ZERO? NEAR? /?ELS96
|
||||
PRINTR "The turtle hisses, ""Okay, I'll stay here for a while."""
|
||||
?ELS96: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS89: EQUAL? PRSA,V?FOLLOW \?ELS103
|
||||
EQUAL? PRSO,ME,FALSE-VALUE \?ELS108
|
||||
SET 'TURTLE-FOLLOWS,TRUE-VALUE
|
||||
SET 'TF-COUNT,0
|
||||
SET 'TURTLE-TIRED-TELL,FALSE-VALUE
|
||||
ZERO? NEAR? /?ELS113
|
||||
PRINTR "The turtle hisses, ""I will follow you."""
|
||||
?ELS113: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS108: ZERO? NEAR? /?ELS120
|
||||
PRINTR "The turtle hisses, ""I'd follow you, but not that!"""
|
||||
?ELS120: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS103: EQUAL? PRSA,V?BRING,V?TAKE \?ELS127
|
||||
LOC PLAYER
|
||||
IN? TURTLE,STACK /?ELS127
|
||||
EQUAL? PRSA,V?BRING \?CND130
|
||||
SET 'PRSO,PRSI
|
||||
SET 'PRSI,FALSE-VALUE
|
||||
?CND130: CALL ITAKE,FALSE-VALUE
|
||||
EQUAL? PRSA,V?BRING \?CND133
|
||||
EQUAL? HERE,CLOSET \?ELS140
|
||||
PUSH P?NW
|
||||
JUMP ?CND136
|
||||
?ELS140: PUSH P?SE
|
||||
?CND136: CALL DO-WALK,STACK
|
||||
RTRUE
|
||||
?CND133: EQUAL? HERE,CLOSET \TRUE
|
||||
IN? PLAYER,ENGINE-ROOM \TRUE
|
||||
PRINTI "The turtle sticks his head through the door across the mechanical wasteland."
|
||||
IN? DISPEL-SCROLL,TURTLE \?CND150
|
||||
PRINTI " In his mouth is a scroll of some sort."
|
||||
?CND150: CRLF
|
||||
RTRUE
|
||||
?ELS127: EQUAL? PRSA,V?TAKE \?ELS156
|
||||
FSET? PRSO,SCROLLBIT /FALSE
|
||||
ZERO? NEAR? /?ELS166
|
||||
PRINTR """I don't think I can carry that too easily."""
|
||||
?ELS166: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS156: EQUAL? PRSA,V?OPEN \?ELS175
|
||||
FSET? PRSO,DOORBIT \?ELS175
|
||||
ZERO? NEAR? /?ELS182
|
||||
PRINTR """I can't reach the latch. I'm a turtle, not an ostrich."""
|
||||
?ELS182: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS175: EQUAL? PRSA,V?HELLO \?ELS189
|
||||
ZERO? NEAR? /?ELS194
|
||||
PRINTI """"
|
||||
CALL PICK-ONE,TURTLE-REMARKS
|
||||
PRINT STACK
|
||||
PRINTR """"
|
||||
?ELS194: CALL NO-RESPONSE
|
||||
RSTACK
|
||||
?ELS189: LOC PLAYER
|
||||
IN? TURTLE,STACK /?THN202
|
||||
LOC PLAYER
|
||||
LOC STACK
|
||||
IN? TURTLE,STACK \?ELS201
|
||||
?THN202: PRINTR """I'm only a turtle, you know, even if I can talk!"""
|
||||
?ELS201: CALL NO-RESPONSE
|
||||
RTRUE
|
||||
?ELS7: EQUAL? PRSA,V?TELL \?ELS209
|
||||
EQUAL? PRSO,GLOBAL-TURTLE \?ELS209
|
||||
ZERO? TURTLE-TIRED? /?ELS216
|
||||
PRINTI "The turtle remains asleep."
|
||||
CRLF
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
RETURN 2
|
||||
?ELS216: CALL OPPOSITE-SIDES?
|
||||
ZERO? STACK /?ELS223
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
PRINTR "The turtle seems to bend its head as if to listen, but with all this noise it's not very likely that he hears you."
|
||||
?ELS223: SET 'P-MERGED,TRUE-VALUE
|
||||
CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-TURTLE
|
||||
RTRUE
|
||||
?ELS209: EQUAL? PRSO,GLOBAL-TURTLE \?ELS229
|
||||
EQUAL? PRSA,V?YELL,V?WAVE-AT \?ELS229
|
||||
CALL OPPOSITE-SIDES?
|
||||
ZERO? STACK /?ELS229
|
||||
PRINTI "The turtle takes notice, "
|
||||
EQUAL? HERE,CLOSET \?ELS236
|
||||
PRINTR "then glances at the rapidly pounding hammer. With a motion which might correspond to a shrug of the shoulder, he turns away, embarrassed."
|
||||
?ELS236: PRINTI "nods his head, and starts in your direction."
|
||||
CRLF
|
||||
?CND234: SET 'WINNER,TURTLE
|
||||
LOC TURTLE >HERE
|
||||
EQUAL? HERE,CLOSET \?ELS247
|
||||
PUSH P?NW
|
||||
JUMP ?CND243
|
||||
?ELS247: PUSH P?SE
|
||||
?CND243: CALL DO-WALK,STACK
|
||||
RTRUE
|
||||
?ELS229: EQUAL? PRSO,GLOBAL-TURTLE \?ELS251
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS251
|
||||
CALL OPPOSITE-SIDES?
|
||||
ZERO? STACK /?ELS251
|
||||
PRINTR "He is standing on the other side of the machinery."
|
||||
?ELS251: EQUAL? PRSO,GLOBAL-TURTLE \?ELS257
|
||||
CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-TURTLE
|
||||
RTRUE
|
||||
?ELS257: EQUAL? PRSA,V?THROUGH,V?CLIMB-FOO,V?CLIMB-UP \?ELS259
|
||||
PRINTR "The turtle doesn't allow you to get on his back."
|
||||
?ELS259: EQUAL? PRSA,V?RUB \?ELS263
|
||||
PRINTR "The turtle seems to appreciate the attention."
|
||||
?ELS263: EQUAL? PRSA,V?CLEESH \?ELS267
|
||||
PRINTR "As he is already a reptile, the spell has little effect."
|
||||
?ELS267: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS271
|
||||
PRINTR "Come now, you can't do that!"
|
||||
?ELS271: EQUAL? PRSA,V?REZROV \?ELS275
|
||||
PRINTR "The turtle's shell pops off his back. Mortified, he retrieves it."
|
||||
?ELS275: EQUAL? PRSA,V?GUNCHO \?ELS279
|
||||
ZERO? TURTLE-TIRED? /?ELS282
|
||||
PRINTI "The sleeping turtle seems to shrink to nothing, and vanishes!"
|
||||
CRLF
|
||||
JUMP ?CND280
|
||||
?ELS282: PRINTI "The turtle barely has time to retract his head before he is consumed in flame!"
|
||||
CRLF
|
||||
?CND280: REMOVE TURTLE
|
||||
RTRUE
|
||||
?ELS279: EQUAL? PRSA,V?VAXUM \?ELS291
|
||||
ZERO? TURTLE-TIRED? /?ELS296
|
||||
PRINTR "The snoring sounds more friendly."
|
||||
?ELS296: PRINTR "The turtle seems to make a friendly gesture, but then again turtles are pretty friendly anyway."
|
||||
?ELS291: EQUAL? PRSA,V?MUNG \?ELS305
|
||||
PRINTI "The turtle's shell is so thick and hard that your blow has no effect. The lovely colors on his back are not even marred."
|
||||
ZERO? TURTLE-TIRED? /?ELS312
|
||||
PRINTR " He doesn't even wake up."
|
||||
?ELS312: PRINTR " He does withdraw into his shell briefly, but then emerges again."
|
||||
?ELS305: ZERO? TURTLE-TIRED? /?ELS321
|
||||
PRINTI "The turtle remains asleep."
|
||||
CRLF
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
RETURN 2
|
||||
?ELS321: EQUAL? PRSA,V?THANK \?ELS328
|
||||
EQUAL? TALK-TO-ANIMAL?,TURTLE \?ELS328
|
||||
CALL TURTLE-THANKS,TRUE-VALUE
|
||||
RSTACK
|
||||
?ELS328: EQUAL? PRSA,V?TAKE \?ELS332
|
||||
EQUAL? TURTLE,PRSO \?ELS332
|
||||
PRINTR "The turtle is much too large to take."
|
||||
?ELS332: EQUAL? PRSA,V?GIVE \?ELS338
|
||||
PRINTI "The turtle extends his head towards the "
|
||||
PRINTD PRSO
|
||||
PRINTR ", but decides it's not very interesting, and withdraws."
|
||||
?ELS338: EQUAL? PRSA,V?HELLO \FALSE
|
||||
PRINTI """"
|
||||
CALL PICK-ONE,TURTLE-REMARKS
|
||||
PRINT STACK
|
||||
PRINTR """"
|
||||
|
||||
|
||||
.FUNCT TURTLE-THANKS,NEAR?
|
||||
ZERO? TURTLE-POINT \?ELS3
|
||||
MOVE TURTLE,BEACH
|
||||
ZERO? NEAR? /?ELS6
|
||||
PRINTR """Glad to be of help. I think I'll get back to the beach, now."" The turtle departs."
|
||||
?ELS6: PRINTR "There is no response."
|
||||
?ELS3: ZERO? NEAR? /?ELS15
|
||||
PRINTR """You're very welcome! It's nice to have someone to talk to for a change."""
|
||||
?ELS15: CALL NO-RESPONSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT OPPOSITE-SIDES?
|
||||
EQUAL? HERE,ENGINE-ROOM,CLOSET \FALSE
|
||||
LOC TURTLE
|
||||
EQUAL? STACK,ENGINE-ROOM,CLOSET \FALSE
|
||||
LOC TURTLE
|
||||
EQUAL? HERE,STACK \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-TURTLE,LP
|
||||
LOC PLAYER >LP
|
||||
FSET TURTLE,TOUCHBIT
|
||||
ZERO? TURTLE-FOLLOWS /?ELS5
|
||||
IN? TURTLE,LP /?ELS5
|
||||
INC 'TF-COUNT
|
||||
EQUAL? LP,WEST-CASTLE,DUNGEON,BED \?ELS12
|
||||
SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
PRINTR "The turtle won't follow any further."
|
||||
?ELS12: EQUAL? LP,CLOSET \?ELS20
|
||||
IN? TURTLE,ENGINE-ROOM /?THN17
|
||||
?ELS20: EQUAL? LP,ENGINE-ROOM \?ELS16
|
||||
IN? TURTLE,CLOSET \?ELS16
|
||||
?THN17: SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
PRINTR "The turtle seems hesitant to follow you across the room. He looks at you as if he wants an explicit order."
|
||||
?ELS16: MOVE TURTLE,LP
|
||||
EQUAL? LP,ENDLESS-STAIR \?ELS31
|
||||
PRINTI "You notice that the turtle is no longer following you. In fact, he seems to have vanished entirely."
|
||||
CRLF
|
||||
REMOVE TURTLE
|
||||
CALL QUEUE,I-TURTLE,0
|
||||
SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS31: EQUAL? LP,ENGINE-ROOM \?ELS35
|
||||
PRINTR """Pretty steep stairs for a turtle, friend. But if you say so..."""
|
||||
?ELS35: EQUAL? HASTED?,TURTLE \?ELS39
|
||||
PRINTR "The turtle, moving with terrific speed, follows you."
|
||||
?ELS39: GRTR? TF-COUNT,4 \?ELS43
|
||||
CALL TURTLE-TIRES
|
||||
RSTACK
|
||||
?ELS43: PRINTR "The turtle, at his own leisurely pace, follows you."
|
||||
?ELS5: ZERO? TURTLE-REPORT? /?ELS49
|
||||
LOC TURTLE
|
||||
IN? PLAYER,STACK \?ELS49
|
||||
SET 'TURTLE-REPORT?,FALSE-VALUE
|
||||
PRINTR "The returned turtle reports that the door across the way opens into a room with much magic in it: bright lights and other things he doesn't understand too well. He says there is an object of rolled paper lying on the floor as well."
|
||||
?ELS49: IN? DISPEL-SCROLL,TURTLE \FALSE
|
||||
IN? TURTLE,LP \FALSE
|
||||
EQUAL? HERE,CLOSET /FALSE
|
||||
MOVE DISPEL-SCROLL,LP
|
||||
CALL THIS-IS-IT,DISPEL-SCROLL
|
||||
ADD SCORE,TURTLE-POINT >SCORE
|
||||
SET 'TURTLE-POINT,0
|
||||
PRINTR "The turtle drops a brittle scroll at your feet. ""Not bad, huh?"""
|
||||
|
||||
|
||||
.FUNCT TURTLE-TIRES
|
||||
ZERO? TURTLE-FOLLOWS /FALSE
|
||||
GRTR? TF-COUNT,20 \?ELS8
|
||||
SET 'TURTLE-TIRED?,TRUE-VALUE
|
||||
SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
CALL INT,I-TURTLE
|
||||
PUT STACK,0,0
|
||||
PRINTR "The turtle has closed his shell, and fallen asleep. A quiet snoring sound issues from somewhere within."
|
||||
?ELS8: ZERO? TURTLE-TIRED-TELL \?ELS12
|
||||
SET 'TURTLE-TIRED-TELL,TRUE-VALUE
|
||||
PRINTR """How long do you expect me to follow you around, anyway? I'm getting kind of tired, too. You would if you had a shell as heavy as mine. It's all right for now, though."""
|
||||
?ELS12: PRINTR "The turtle, at his own leisurely pace, follows you."
|
||||
|
||||
.ENDI
|
16
gears.zil
16
gears.zil
|
@ -101,7 +101,7 @@ may be controlling the whole thing, for all you know." CR>)>>
|
|||
|
||||
<OBJECT SWITCHES
|
||||
(IN CLOSET)
|
||||
(DESC "glowing control")
|
||||
(DESC "glowing button")
|
||||
(SYNONYM DIAL CONTROL BUTTON DIALS)
|
||||
(ADJECTIVE ARCANE GLOWING)
|
||||
(FLAGS NDESCBIT)
|
||||
|
@ -219,8 +219,9 @@ in fact. You can't dodge them, and you are severely skewered.">)
|
|||
you are succeeding for a while until you set off a trap. A volley of sharp
|
||||
spears, powered by cunning machinery, comes at you from all directions.
|
||||
You are skewered! The huge hammer crashes down for the coup de grace.">)>
|
||||
<CRLF>
|
||||
<COND (<==? ,DEATH-CHEATED ,ME>
|
||||
<TELL CR
|
||||
<TELL
|
||||
"In an astounding feat of magic, you are reassembled and revived.
|
||||
In an even more astounding feat of trap design, you are dispatched again
|
||||
almost before you can take a breath." CR>)>
|
||||
|
@ -299,7 +300,6 @@ the rainbow.")
|
|||
(ACTION TURTLE-F)>
|
||||
|
||||
<OBJECT GLOBAL-TURTLE
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "rainbow turtle")
|
||||
(SYNONYM TURTLE)
|
||||
(ADJECTIVE RAINBOW)
|
||||
|
@ -313,6 +313,7 @@ the rainbow.")
|
|||
<ROUTINE TURTLE-F ("AUX" NEAR?)
|
||||
<SET NEAR? <IN? ,TURTLE <LOC ,PLAYER>>>
|
||||
<COND (<EQUAL? ,WINNER ,TURTLE>
|
||||
<MOVE ,GLOBAL-TURTLE ,GLOBAL-OBJECTS>
|
||||
<COND (,TURTLE-TIRED?
|
||||
<COND (.NEAR?
|
||||
<TELL
|
||||
|
@ -323,10 +324,13 @@ the rainbow.")
|
|||
<ENABLE <QUEUE I-TURTLE -1>>
|
||||
<FSET ,TURTLE ,TOUCHBIT>
|
||||
<COND (<NOT <EQUAL? ,TALK-TO-ANIMAL? ,TURTLE>>
|
||||
<TELL
|
||||
<COND (.NEAR?
|
||||
<TELL
|
||||
"The turtle looks at you quizzically. It's clear he would like to
|
||||
understand you, but he doesn't. He responds, but it's only snaps, hisses,
|
||||
and clicks to you." CR>
|
||||
and clicks to you." CR>)
|
||||
(ELSE
|
||||
<NO-RESPONSE>)>
|
||||
<SETG P-CONT <>>
|
||||
<SETG QUOTE-FLAG <>>
|
||||
<RTRUE>)
|
||||
|
@ -352,7 +356,7 @@ of bad feeling about it, like you get when you eat old seaweed.\"" CR>)
|
|||
<COND (.NEAR?
|
||||
<TELL
|
||||
"The turtle huffs and puffs up the stairs. \"Pretty steep stairs
|
||||
for a turtle, friend....\"" CR>)>
|
||||
for a turtle, friend...\"" CR>)>
|
||||
<RFALSE>)
|
||||
(<AND <EQUAL? ,PRSO ,P?DOWN>
|
||||
<GLOBAL-IN? ,STAIRS <LOC ,TURTLE>>>
|
||||
|
|
|
@ -0,0 +1,424 @@
|
|||
|
||||
|
||||
.FUNCT NULL-F
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT GROUND-F
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-ON,V?CLIMB-UP /?THN6
|
||||
EQUAL? PRSA,V?BOARD \FALSE
|
||||
?THN6: PRINTR "You've got better things to do."
|
||||
|
||||
|
||||
.FUNCT CORRIDOR-F
|
||||
EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE
|
||||
CALL USE-DIRECTIONS
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT WALLS-F
|
||||
EQUAL? WALLS,PRSO \?ELS5
|
||||
EQUAL? HERE,NORTH-CELL \?ELS5
|
||||
CALL PERFORM,PRSA,STONE-WALL
|
||||
RSTACK
|
||||
?ELS5: FSET? HERE,RMUNGBIT \?ELS9
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS14
|
||||
PRINTR "The wall is stained and noisome."
|
||||
?ELS14: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
PRINTR "That's noisome, not noisy!"
|
||||
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
PRINTR "They're translucent, not transparent!"
|
||||
|
||||
|
||||
.FUNCT CRETIN
|
||||
EQUAL? PRSA,V?ESCAPE \?ELS5
|
||||
PRINTR "There's no escaping yourself."
|
||||
?ELS5: EQUAL? PRSA,V?PUT \?ELS9
|
||||
EQUAL? PRSO,EGG \?ELS9
|
||||
PRINTR "If you don't succeed, there will be plenty of egg on your face."
|
||||
?ELS9: EQUAL? PRSA,V?BURN \?ELS15
|
||||
PRINTR "Ouch!"
|
||||
?ELS15: EQUAL? PRSA,V?LISTEN \?ELS19
|
||||
PRINTR "Yes?"
|
||||
?ELS19: EQUAL? PRSA,V?ALARM \?ELS23
|
||||
PRINTR "You are obviously awake already."
|
||||
?ELS23: EQUAL? PRSA,V?GUNCHO \?ELS27
|
||||
PRINTI "You vanish into oblivion where, to the relief of much of the Circle, you will be unable to do much harm."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS27: EQUAL? PRSA,V?FROTZ \?ELS31
|
||||
FSET PLAYER,ONBIT
|
||||
SET 'ALWAYS-LIT,TRUE-VALUE
|
||||
PRINTR "You are bathed in a sickly yellow light, bright enough to read by."
|
||||
?ELS31: EQUAL? PRSA,V?BLORB \?ELS35
|
||||
CALL JIGS-UP,STR?48,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS35: EQUAL? PRSA,V?KULCAD \?ELS37
|
||||
PRINTR "You seem real enough already."
|
||||
?ELS37: EQUAL? PRSA,V?EXAMINE \?ELS41
|
||||
PRINTR "You are not a pretty sight."
|
||||
?ELS41: EQUAL? PRSA,V?GIVE \?ELS45
|
||||
PRINTR "I think you're a little confused."
|
||||
?ELS45: EQUAL? PRSA,V?ATTACK,V?MUNG,V?KILL \?ELS49
|
||||
PRINTR "You don't need my help to do that!"
|
||||
?ELS49: EQUAL? PRSA,V?FIND \?ELS53
|
||||
PRINTR "You're right here!"
|
||||
?ELS53: EQUAL? PRSA,V?CUT \FALSE
|
||||
EQUAL? PRSI,MAGIC-KNIFE \FALSE
|
||||
PRINTR "I should think one experience with that knife would be enough. I wouldn't press my luck."
|
||||
|
||||
|
||||
.FUNCT WINDOW-F
|
||||
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
|
||||
GRTR? TOD,NIGHTFALL \?ELS10
|
||||
PRINTR "It's too dark to make out much of anything."
|
||||
?ELS10: GETP HERE,P?TEXT
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?OPEN \?ELS18
|
||||
PRINTR "You can't open it."
|
||||
?ELS18: EQUAL? PRSA,V?CLOSE \FALSE
|
||||
PRINTR "It already is."
|
||||
|
||||
|
||||
.FUNCT SEA-F
|
||||
EQUAL? HERE,BEACH /?ELS5
|
||||
PRINTR "The sea is off beyond the beach."
|
||||
?ELS5: EQUAL? PRSA,V?THROUGH \?ELS9
|
||||
PRINTR "You would drown."
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The sea is very rough. I wouldn't go in."
|
||||
|
||||
|
||||
.FUNCT FOREST-F
|
||||
EQUAL? PRSA,V?THROUGH \FALSE
|
||||
CALL USE-DIRECTIONS
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TEMPLE-OBJ-F
|
||||
EQUAL? HERE,COURTYARD-2,COURTYARD-3 /?THN6
|
||||
EQUAL? HERE,COURTYARD-4,COURTYARD-7 \FALSE
|
||||
?THN6: EQUAL? PRSA,V?THROUGH \?ELS12
|
||||
CALL GOTO,TEMPLE
|
||||
RTRUE
|
||||
?ELS12: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
PRINTR "You can hear a howling chant coming from inside the temple."
|
||||
|
||||
|
||||
.FUNCT COURTYARD-F
|
||||
EQUAL? PRSA,V?WALK-AROUND \?ELS5
|
||||
EQUAL? HERE,INSIDE-GATE /?ELS5
|
||||
EQUAL? HERE,COURTYARD-7,COURTYARD-6,COURTYARD-4 \?ELS12
|
||||
CALL DO-WALK,P?WEST
|
||||
RSTACK
|
||||
?ELS12: CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?THROUGH \FALSE
|
||||
EQUAL? HERE,INSIDE-GATE \FALSE
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TOWER-F
|
||||
EQUAL? PRSA,V?BOARD,V?CLIMB-FOO,V?CLIMB-UP \?ELS5
|
||||
EQUAL? HERE,PURLOINED-ROOM,SE-TOWER /?THN8
|
||||
EQUAL? HERE,NW-TOWER,SW-TOWER \?ELS5
|
||||
?THN8: CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN \?ELS11
|
||||
EQUAL? HERE,JEWEL-ROOM,MAP-ROOM /?THN14
|
||||
EQUAL? HERE,ENGINE-ROOM,BEDROOM \?ELS11
|
||||
?THN14: CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS11: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
|
||||
PRINTR "They are a bit far away to climb from here, and anyway the walls would be impossible to scale."
|
||||
|
||||
|
||||
.FUNCT JUG-F,E?=0
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS3
|
||||
PRINTR "The jug has no cover. It can't be opened or closed."
|
||||
?ELS3: EQUAL? PRSA,V?MUNG,V?THROW \?ELS7
|
||||
REMOVE PRSO
|
||||
SET 'E?,TRUE-VALUE
|
||||
PRINTI "The jug shatters into innumerable pieces."
|
||||
CRLF
|
||||
JUMP ?CND1
|
||||
?ELS7: EQUAL? PRSA,V?SHAKE \?CND1
|
||||
FSET? PRSO,OPENBIT \?CND1
|
||||
SET 'E?,TRUE-VALUE
|
||||
?CND1: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS19
|
||||
PRINTI "The jug is "
|
||||
IN? WATER,PRSO /?ELS26
|
||||
PRINTR "empty."
|
||||
?ELS26: GETP WATER,P?SIZE
|
||||
GET JUG-AMTS,STACK
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS19: ZERO? E? /FALSE
|
||||
IN? WATER,PRSO \TRUE
|
||||
PRINTI "The water spills to the ground and evaporates."
|
||||
CRLF
|
||||
REMOVE WATER
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT WATER-FUNCTION,AV,W,PI?
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS3
|
||||
EQUAL? PRSO,GLOBAL-WATER \?ELS3
|
||||
EQUAL? HERE,BEACH \?ELS8
|
||||
PRINTR "The ocean streches out as far as the eye can see to the south and east."
|
||||
?ELS8: EQUAL? HERE,FOREST-2 \?ELS12
|
||||
PRINTR "The water is dark and murky, and lily pads cover most of the surface. I wouldn't drink the stuff."
|
||||
?ELS12: PRINTR "The brook runs slowly through thick vegetation."
|
||||
?ELS3: EQUAL? PRSA,V?THROUGH \?ELS20
|
||||
EQUAL? PRSO,GLOBAL-WATER \?ELS20
|
||||
PRINTR "You have better things to do with your time than go swimming."
|
||||
?ELS20: EQUAL? PRSA,V?DRINK-FROM \?ELS26
|
||||
EQUAL? PRSO,GLOBAL-WATER \?ELS26
|
||||
CALL V-DRINK-FROM
|
||||
RTRUE
|
||||
?ELS26: EQUAL? PRSA,V?SGIVE /FALSE
|
||||
EQUAL? PRSA,V?THROUGH \?ELS32
|
||||
PRINTR "Swimming here is fraught with peril."
|
||||
?ELS32: EQUAL? PRSA,V?FILL \?ELS36
|
||||
SET 'W,PRSI
|
||||
SET 'PRSA,V?PUT
|
||||
SET 'PRSI,PRSO
|
||||
SET 'PRSO,W
|
||||
SET 'PI?,FALSE-VALUE
|
||||
JUMP ?CND1
|
||||
?ELS36: EQUAL? PRSO,GLOBAL-WATER,WATER \?ELS38
|
||||
SET 'W,PRSO
|
||||
SET 'PI?,FALSE-VALUE
|
||||
JUMP ?CND1
|
||||
?ELS38: SET 'W,PRSI
|
||||
SET 'PI?,TRUE-VALUE
|
||||
?CND1: EQUAL? W,GLOBAL-WATER \?CND41
|
||||
EQUAL? PRSA,V?DRINK /FALSE
|
||||
SET 'W,WATER
|
||||
EQUAL? PRSA,V?PUT,V?TAKE \?CND41
|
||||
REMOVE W
|
||||
?CND41: ZERO? PI? /?ELS52
|
||||
SET 'PRSI,W
|
||||
JUMP ?CND50
|
||||
?ELS52: SET 'PRSO,W
|
||||
?CND50: LOC WINNER >AV
|
||||
EQUAL? PRSA,V?PUT,V?TAKE \?ELS60
|
||||
ZERO? PI? \?ELS60
|
||||
ZERO? PRSI /?ELS67
|
||||
EQUAL? PRSI,JUG /?ELS67
|
||||
EQUAL? PRSI,SEA,GLOBAL-WATER \?ELS74
|
||||
PRINTI "Ok, but there was plenty enough there already."
|
||||
CRLF
|
||||
REMOVE W
|
||||
RTRUE
|
||||
?ELS74: GETP PRSI,P?CAPACITY
|
||||
ZERO? STACK /?ELS78
|
||||
PRINTI "The water leaks out of the "
|
||||
PRINTD PRSI
|
||||
PRINTI " and evaporates immediately."
|
||||
CRLF
|
||||
REMOVE W
|
||||
RTRUE
|
||||
?ELS78: PRINTI "The "
|
||||
PRINTD PRSI
|
||||
PRINTR " isn't a very good container."
|
||||
?ELS67: IN? JUG,WINNER \?ELS86
|
||||
FSET? JUG,OPENBIT /?ELS91
|
||||
PRINTR "The jug is closed."
|
||||
?ELS91: CALL GLOBAL-IN?,GLOBAL-WATER,HERE
|
||||
ZERO? STACK /?ELS95
|
||||
IN? WATER,JUG \?THN101
|
||||
GETP WATER,P?SIZE
|
||||
LESS? STACK,4 \?ELS100
|
||||
?THN101: MOVE WATER,JUG
|
||||
PUTP WATER,P?SIZE,4
|
||||
PRINTI "The jug is now full of "
|
||||
EQUAL? HERE,BEACH \?ELS107
|
||||
FSET WATER,RMUNGBIT
|
||||
PRINTI "sea"
|
||||
JUMP ?CND105
|
||||
?ELS107: EQUAL? HERE,FOREST-2 \?ELS111
|
||||
FSET WATER,RMUNGBIT
|
||||
PRINTI "foul algae-infested "
|
||||
JUMP ?CND105
|
||||
?ELS111: FCLEAR WATER,RMUNGBIT
|
||||
?CND105: PRINTR "water."
|
||||
?ELS100: PRINTR "The jug is already full."
|
||||
?ELS95: PRINTR "The only water here is in the jug."
|
||||
?ELS86: IN? PRSO,JUG \?ELS127
|
||||
EQUAL? PRSA,V?TAKE \?ELS127
|
||||
ZERO? PRSI \?ELS127
|
||||
SET 'PRSO,JUG
|
||||
CALL ITAKE
|
||||
SET 'PRSO,W
|
||||
RETURN PRSO
|
||||
?ELS127: PRINTR "The water slips through your fingers."
|
||||
?ELS60: ZERO? PI? /?ELS135
|
||||
PRINTR "Nice try."
|
||||
?ELS135: EQUAL? PRSA,V?GIVE,V?DROP \?ELS140
|
||||
REMOVE WATER
|
||||
EQUAL? PRSI,SEA,GLOBAL-WATER \?ELS145
|
||||
PRINTR "Ok, but there was plenty enough there already."
|
||||
?ELS145: PRINTR "The water spills to the ground and evaporates."
|
||||
?ELS140: EQUAL? PRSA,V?POUR-ON \?ELS153
|
||||
REMOVE WATER
|
||||
PRINTI "The water cascades off the "
|
||||
PRINTD PRSI
|
||||
PRINTR " and onto the ground."
|
||||
?ELS153: EQUAL? PRSA,V?THROW \FALSE
|
||||
PRINTI "The water splashes over everything and evaporates."
|
||||
CRLF
|
||||
REMOVE WATER
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SKY-F,EL
|
||||
FSET? HERE,ONBIT \?ELS5
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
DIV TOD,10 >EL
|
||||
PRINTI "It would be "
|
||||
GET TIME-TABLE,EL
|
||||
PRINT STACK
|
||||
PRINTI " now."
|
||||
GRTR? TOD,NIGHTFALL \?CND10
|
||||
PRINTI " Bright stars shine down on the earth."
|
||||
?CND10: CRLF
|
||||
RTRUE
|
||||
?ELS5: PRINTR "That would be difficult from here."
|
||||
|
||||
|
||||
.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ
|
||||
EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3
|
||||
EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3
|
||||
PRINTR "Those things aren't here!"
|
||||
?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS9
|
||||
SET 'TBL,P-PRSO
|
||||
JUMP ?CND1
|
||||
?ELS9: SET 'TBL,P-PRSI
|
||||
SET 'PRSO?,FALSE-VALUE
|
||||
?CND1: ZERO? PRSO? /?CND12
|
||||
EQUAL? PRSA,V?ZIFMIA /?THN19
|
||||
EQUAL? PRSA,V?CAST \?CND12
|
||||
EQUAL? PRSO,SUMMON-SPELL \?CND12
|
||||
?THN19: CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
|
||||
ZERO? OBJ /FALSE
|
||||
EQUAL? OBJ,NOT-HERE-OBJECT \TRUE
|
||||
?CND12: EQUAL? WINNER,PLAYER \?ELS33
|
||||
PRINTI "You can't see any "
|
||||
CALL NOT-HERE-PRINT,PRSO?
|
||||
PRINTI " here!"
|
||||
CRLF
|
||||
JUMP ?CND31
|
||||
?ELS33: PRINTI "The "
|
||||
PRINTD WINNER
|
||||
PRINTI " seems confused. ""I don't see any "
|
||||
CALL NOT-HERE-PRINT,PRSO?
|
||||
PRINTI " here!"""
|
||||
CRLF
|
||||
?CND31: SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
|
||||
CALL MOBY-FIND,TBL >M-F
|
||||
ZERO? DEBUG /?CND1
|
||||
PRINTI "[Moby-found "
|
||||
PRINTN M-F
|
||||
PRINTI " objects"
|
||||
PRINTI "]"
|
||||
CRLF
|
||||
?CND1: GRTR? M-F,1 \?CND7
|
||||
GET TBL,1
|
||||
GETP STACK,P?GLOBAL >OBJ
|
||||
ZERO? OBJ /?CND7
|
||||
SET 'M-F,1
|
||||
SET 'P-MOBY-FOUND,OBJ
|
||||
?CND7: EQUAL? 1,M-F \?ELS16
|
||||
ZERO? DEBUG /?CND17
|
||||
PRINTI "[Namely: "
|
||||
PRINTD P-MOBY-FOUND
|
||||
PRINTI "]"
|
||||
CRLF
|
||||
?CND17: ZERO? PRSO? /?ELS25
|
||||
SET 'PRSO,P-MOBY-FOUND
|
||||
RFALSE
|
||||
?ELS25: SET 'PRSI,P-MOBY-FOUND
|
||||
RFALSE
|
||||
?ELS16: ZERO? PRSO? \?ELS30
|
||||
PRINTI "You wouldn't find any "
|
||||
CALL NOT-HERE-PRINT,PRSO?
|
||||
PRINTR " there."
|
||||
?ELS30: RETURN NOT-HERE-OBJECT
|
||||
|
||||
|
||||
.FUNCT GLOBAL-NOT-HERE-PRINT,OBJ
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
PRINTI "You can't see"
|
||||
EQUAL? OBJ,GLOBAL-KRILL /?CND3
|
||||
PRINTI " any"
|
||||
?CND3: EQUAL? OBJ,PRSO \?ELS10
|
||||
CALL PRSO-PRINT
|
||||
JUMP ?CND8
|
||||
?ELS10: CALL PRSI-PRINT
|
||||
?CND8: PRINTR " here."
|
||||
|
||||
|
||||
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
|
||||
ZERO? P-OFLAG /?ELS5
|
||||
ZERO? P-XADJ /?CND7
|
||||
PRINTB P-XADJN
|
||||
?CND7: ZERO? P-XNAM /FALSE
|
||||
PRINTB P-XNAM
|
||||
RTRUE
|
||||
?ELS5: ZERO? PRSO? /?ELS18
|
||||
GET P-ITBL,P-NC1 >?TMP1
|
||||
GET P-ITBL,P-NC1L
|
||||
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
||||
RSTACK
|
||||
?ELS18: GET P-ITBL,P-NC2 >?TMP1
|
||||
GET P-ITBL,P-NC2L
|
||||
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT BELBOZ-F
|
||||
EQUAL? PRSA,V?ZIFMIA \?ELS5
|
||||
PRINTI "A vision of the great Belboz begins to take shape before you, but "
|
||||
GETP HERE,P?TMAZE
|
||||
ZERO? STACK /?ELS12
|
||||
PRINTR "as soon as he realizes where you are, he disappears, a look of fear upon his face."
|
||||
?ELS12: PRINTR "with a curt word and a waggle of his finger, he disappears again, shaking his head in disappointment."
|
||||
?ELS5: EQUAL? PRSA,V?WHO,V?EXAMINE \FALSE
|
||||
PRINTR "Belboz is, in effect, your boss, professor, patron, and ultimate superior. He is the head of the Circle of Enchanters."
|
||||
|
||||
|
||||
.FUNCT GLOBAL-ROOM-F
|
||||
EQUAL? PRSA,V?EXAMINE,V?LOOK \?ELS5
|
||||
CALL PERFORM,V?LOOK
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?WALK-AROUND \FALSE
|
||||
PRINTR "Walking around the room reveals nothing else of interest. If you want to move elsewhere, simply indicate the direction you wish to move in."
|
||||
|
||||
|
||||
.FUNCT BRAMBLES-F
|
||||
CALL OUTSIDE?,HERE
|
||||
ZERO? STACK \?ELS5
|
||||
PRINTR "The only brambles here are in your head."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \FALSE
|
||||
PRINTR "There's nothing in the brambles now. Count your blessings."
|
||||
|
||||
|
||||
.FUNCT GLOBAL-HOLE-F
|
||||
EQUAL? PRSA,V?DIG \?ELS5
|
||||
PRINTR "It's not worth the bother."
|
||||
?ELS5: CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-HOLE
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
12
globals.zil
12
globals.zil
|
@ -7,6 +7,8 @@
|
|||
without consulting MARC!"
|
||||
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
|
||||
|
||||
<ROUTINE NULL-F () <RFALSE>>
|
||||
|
||||
"SUBTITLE GLOBAL OBJECTS"
|
||||
|
||||
<OBJECT GLOBAL-OBJECTS
|
||||
|
@ -501,11 +503,11 @@ I wouldn't drink the stuff." CR>)
|
|||
<RFALSE>)>)>)>
|
||||
;"Here is the default 'cant see any' printer"
|
||||
<COND (<EQUAL? ,WINNER ,PLAYER>
|
||||
<TELL "You can't see any">
|
||||
<TELL "You can't see any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " here!" CR>)
|
||||
(T
|
||||
<TELL "The " D ,WINNER " seems confused. \"I don't see any">
|
||||
<TELL "The " D ,WINNER " seems confused. \"I don't see any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " here!\"" CR>)>
|
||||
<SETG P-CONT <>>
|
||||
|
@ -530,7 +532,7 @@ I wouldn't drink the stuff." CR>)
|
|||
(T <SETG PRSI ,P-MOBY-FOUND>)>
|
||||
<RFALSE>)
|
||||
(<NOT .PRSO?>
|
||||
<TELL "You wouldn't find any">
|
||||
<TELL "You wouldn't find any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " there." CR>
|
||||
<RTRUE>)
|
||||
|
@ -549,8 +551,8 @@ I wouldn't drink the stuff." CR>)
|
|||
|
||||
<ROUTINE NOT-HERE-PRINT (PRSO?)
|
||||
<COND (,P-OFLAG
|
||||
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
|
||||
<COND (,P-XNAM <TELL " "> <PRINTB ,P-XNAM>)>)
|
||||
<COND (,P-XADJ ;<TELL " "> <PRINTB ,P-XADJN>)>
|
||||
<COND (,P-XNAM ;<TELL " "> <PRINTB ,P-XNAM>)>)
|
||||
(.PRSO?
|
||||
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
|
||||
(T
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,103 @@
|
|||
|
||||
|
||||
.FUNCT JEWELLED-BOX-A
|
||||
IN? HERE,JEWELLED-BOX \TRUE
|
||||
GRTR? BOX-POINT,0 \TRUE
|
||||
ZERO? ROPE-MAGIC? /?ELS8
|
||||
PRINTR "The adventurer notes the box and tries to untie the rope from around it. His frustration is evident by the words he uses to describe the rope."
|
||||
?ELS8: PUTP JEWELLED-BOX,P?LDESC,STR?126
|
||||
PRINTI "The adventurer walks up to the box and becomes quickly entangled in the partly untied rope that is knotted around it. He looks like a cat who has been playing with a ball of yarn."
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT JEWELLED-BOX-F
|
||||
IN? MAGIC-ROPE,JEWELLED-BOX \?ELS5
|
||||
EQUAL? PRSA,V?SHAKE \?ELS10
|
||||
PRINTR "It seems that there's something inside, but it's not clear what."
|
||||
?ELS10: EQUAL? PRSA,V?UNLOCK \?ELS14
|
||||
PRINTR "Who said anything about its being locked?"
|
||||
?ELS14: EQUAL? PRSA,V?REZROV \?ELS18
|
||||
ZERO? ROPE-MAGIC? /?ELS23
|
||||
PRINTR "The magic in the rope is strong enough to prevent the rezrov spell from working."
|
||||
?ELS23: PRINTI "The rope dissolves and the jewelled box flies open!"
|
||||
CRLF
|
||||
CALL ROPE-DISSOLVES
|
||||
FSET JEWELLED-BOX,OPENBIT
|
||||
RTRUE
|
||||
?ELS18: EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \?ELS32
|
||||
PRINTR "With all that rope around it, you haven't a prayer."
|
||||
?ELS32: EQUAL? PRSA,V?EXAMINE \?ELS36
|
||||
PRINTR "It is closed and wrapped in tight coils of thin rope."
|
||||
?ELS36: EQUAL? PRSA,V?CLOSE \?ELS40
|
||||
PRINTR "It isn't open, which seems to be the problem at hand."
|
||||
?ELS40: EQUAL? PRSA,V?PUT \FALSE
|
||||
EQUAL? PRSI,JEWELLED-BOX \FALSE
|
||||
PRINTR "That won't work until the box is open."
|
||||
?ELS5: EQUAL? PRSA,V?OPEN \FALSE
|
||||
IN? PROTECTION-SCROLL,JEWELLED-BOX \FALSE
|
||||
CALL THIS-IS-IT,PROTECTION-SCROLL
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MAGIC-ROPE-F
|
||||
EQUAL? PRSA,V?UNTIE \?ELS5
|
||||
PRINTI "After a few moments of reflection, you tackle the knots, one at a time. Although you succeed with some regularity at untangling small areas of the rope, you "
|
||||
ZERO? ROPE-MAGIC? /?ELS10
|
||||
PRINTI "find that new knots seem to be forming as you watch, taunting you into deep despair."
|
||||
JUMP ?CND8
|
||||
?ELS10: PUTP JEWELLED-BOX,P?LDESC,STR?126
|
||||
PRINTI "can't make any headway against the enormous tangle. It would take forever to finish."
|
||||
?CND8: CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?GUNCHO \?ELS19
|
||||
REMOVE MAGIC-ROPE
|
||||
REMOVE JEWELLED-BOX
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " disappears, but unfortunately the "
|
||||
PRINTD JEWELLED-BOX
|
||||
PRINTR " disappears as well."
|
||||
?ELS19: EQUAL? PRSA,V?REZROV \?ELS23
|
||||
CALL JEWELLED-BOX-F
|
||||
RTRUE
|
||||
?ELS23: EQUAL? PRSA,V?TAKE \?ELS25
|
||||
PRINTR "The rope is so entangled around the box that the idea is ridiculous."
|
||||
?ELS25: EQUAL? PRSA,V?MUNG,V?CUT \?ELS29
|
||||
ZERO? PRSI \?ELS34
|
||||
PRINTR "You can't hurt it with your bare hands."
|
||||
?ELS34: EQUAL? PRSI,MAGIC-KNIFE \?ELS38
|
||||
CALL ROPE-DISSOLVES
|
||||
PRINTR "At the mere touch of the magic knife, the rope gives way. Before your eyes, the strands, now moving this way, now moving that way, untangle themselves into a single strand which falls to the floor alongside the box, where it dissolves into the air without a sound."
|
||||
?ELS38: FSET? PRSI,WEAPONBIT \?ELS42
|
||||
ZERO? ROPE-MAGIC? /?ELS47
|
||||
PRINTR "The rope seems to be pretty strong stuff. You don't seem to be making the least progress in breaking it."
|
||||
?ELS47: PRINTR "The rope cuts cleanly, and falls to pieces on the floor. It must have been pretty rotten."
|
||||
?ELS42: PRINTI "You certainly won't get anywhere using the "
|
||||
PRINTD PRSI
|
||||
PRINTR "!"
|
||||
?ELS29: EQUAL? PRSA,V?KULCAD \?ELS60
|
||||
SET 'ROPE-MAGIC?,FALSE-VALUE
|
||||
PRINTR "Nothing obvious happens, but when you examine the rope, it lacks a certain something you saw in it before. It now looks sort of ordinary, like a clothesline."
|
||||
?ELS60: EQUAL? PRSA,V?DROP \FALSE
|
||||
CALL PERFORM,V?DROP,JEWELLED-BOX
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ROPE-DISSOLVES
|
||||
SET 'ROPE-MAGIC?,FALSE-VALUE
|
||||
ADD SCORE,BOX-POINT >SCORE
|
||||
SET 'BOX-POINT,0
|
||||
REMOVE MAGIC-ROPE
|
||||
MOVE PROTECTION-SCROLL,JEWELLED-BOX
|
||||
FCLEAR JEWELLED-BOX,OPENBIT
|
||||
FSET JEWELLED-BOX,TOUCHBIT
|
||||
PUTP JEWELLED-BOX,P?LDESC,STR?129
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MAGIC-KNIFE-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The dagger is inlaid with fine jewels. It would be a handsome addition to anyone's weapon collection."
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
|
||||
.FUNCT PRINTA,O
|
||||
FSET? O,VOWELBIT \?ELS7
|
||||
PUSH STR?1
|
||||
JUMP ?CND3
|
||||
?ELS7: PUSH STR?2
|
||||
?CND3: PRINT STACK
|
||||
PRINTD O
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RANDOM-ELEMENT,FROB
|
||||
GET FROB,0
|
||||
RANDOM STACK
|
||||
GET FROB,STACK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PICK-ONE,FROB,L,CNT,RND,MSG,RFROB
|
||||
GET FROB,0 >L
|
||||
GET FROB,1 >CNT
|
||||
DEC 'L
|
||||
ADD FROB,2 >FROB
|
||||
MUL CNT,2
|
||||
ADD FROB,STACK >RFROB
|
||||
SUB L,CNT
|
||||
RANDOM STACK >RND
|
||||
GET RFROB,RND >MSG
|
||||
GET RFROB,1
|
||||
PUT RFROB,RND,STACK
|
||||
PUT RFROB,1,MSG
|
||||
INC 'CNT
|
||||
EQUAL? CNT,L \?CND1
|
||||
SET 'CNT,0
|
||||
?CND1: PUT FROB,0,CNT
|
||||
RETURN MSG
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,806 @@
|
|||
|
||||
|
||||
.FUNCT V-SPELLS,CNT,S,ANY=0,OS=0,TMP
|
||||
GET ALL-SPELLS,0 >CNT
|
||||
PRINTI "The gnusto spell, the only thing you seem to have learned well after many years at the University, remains yours forever. Other than that, you have "
|
||||
?PRG3: ZERO? CNT \?CND5
|
||||
ZERO? OS /?CND8
|
||||
CALL SPELL-PRINT,OS,ANY,TRUE-VALUE
|
||||
SET 'ANY,TRUE-VALUE
|
||||
?CND8: ZERO? ANY \?ELS14
|
||||
PRINTI "no spells memorized."
|
||||
JUMP ?CND12
|
||||
?ELS14: PRINTI " committed to memory."
|
||||
?CND12: CRLF
|
||||
RTRUE
|
||||
?CND5: GET ALL-SPELLS,CNT
|
||||
CALL SPELL-TIMES,STACK >TMP
|
||||
ZERO? TMP /?CND21
|
||||
ZERO? OS /?CND24
|
||||
CALL SPELL-PRINT,OS,ANY
|
||||
SET 'ANY,TRUE-VALUE
|
||||
?CND24: SET 'OS,TMP
|
||||
?CND21: DEC 'CNT
|
||||
JUMP ?PRG3
|
||||
|
||||
|
||||
.FUNCT SPELL-TIMES,S
|
||||
GETP S,P?COUNT
|
||||
GRTR? STACK,0 \FALSE
|
||||
IN? S,SPELL-BOOK \?ELS10
|
||||
RETURN S
|
||||
?ELS10: EQUAL? S,DISPEL-SPELL \?ELS12
|
||||
IN? DISPEL-SPELL,DISPEL-SCROLL /?ELS12
|
||||
RETURN S
|
||||
?ELS12: EQUAL? S,BANISH-SPELL \FALSE
|
||||
IN? BANISH-SPELL,BANISH-SCROLL /FALSE
|
||||
RETURN S
|
||||
|
||||
|
||||
.FUNCT SPELL-PRINT,S,ANY,PAND?=0,CNT
|
||||
ZERO? ANY /?CND1
|
||||
ZERO? PAND? /?ELS7
|
||||
PRINTI " and "
|
||||
JUMP ?CND1
|
||||
?ELS7: PRINTI ", "
|
||||
?CND1: PRINTI "the "
|
||||
PRINTD S
|
||||
GETP S,P?COUNT >CNT
|
||||
GRTR? CNT,5 \?ELS19
|
||||
PRINTI " many times"
|
||||
RETURN S
|
||||
?ELS19: PRINTI " "
|
||||
SUB CNT,1
|
||||
GET COUNTERS,STACK
|
||||
PRINT STACK
|
||||
RETURN S
|
||||
|
||||
|
||||
.FUNCT SPELL-BOOK-F,F
|
||||
FIRST? SPELL-BOOK >F /?KLU28
|
||||
?KLU28: EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The title is ""My Spell Book"". The book looks pretty new, and it doesn't seem to have much written in it yet. There are some spells written in the book in glowing letters, with marginal notes about how to cast them and what their effects are."
|
||||
?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS9
|
||||
PRINTR "Thanks to its magic properties, the spell book is always open to the right place at the right time, but it is also always closed. This innovation eliminates tedious page turning and hunting for spells in tight situations. Many wizardly lives have been saved by this small advance in magical technology."
|
||||
?ELS9: EQUAL? PRSA,V?READ \FALSE
|
||||
ZERO? LIT \?CND14
|
||||
PRINTI "Though it is dark, the magic writing of your spells casts enough light that you can read them."
|
||||
CRLF
|
||||
?CND14: PRINTI "
|
||||
My Spell Book
|
||||
|
||||
"
|
||||
?PRG21: ZERO? F /TRUE
|
||||
PRINTI "The "
|
||||
PRINTD F
|
||||
PRINTI " ("
|
||||
GETP F,P?TEXT
|
||||
PRINT STACK
|
||||
PRINTI ")."
|
||||
CRLF
|
||||
NEXT? F >F /?KLU29
|
||||
?KLU29: JUMP ?PRG21
|
||||
|
||||
|
||||
.FUNCT SPELL-CHECK,TBL,WRD,OBJ=0
|
||||
EQUAL? WRD,W?GNUSTO \?ELS3
|
||||
SET 'OBJ,WRITE-MAGIC-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS3: EQUAL? WRD,W?FROTZ \?ELS5
|
||||
SET 'OBJ,LIGHT-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS5: EQUAL? WRD,W?OZMOO \?ELS7
|
||||
SET 'OBJ,CHEAT-DEATH-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS7: EQUAL? WRD,W?ZIFMIA \?ELS9
|
||||
SET 'OBJ,SUMMON-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS9: EQUAL? WRD,W?VAXUM \?ELS11
|
||||
SET 'OBJ,CHARM-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS11: EQUAL? WRD,W?REZROV \?ELS13
|
||||
SET 'OBJ,OPEN-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS13: EQUAL? WRD,W?NITFOL \?ELS15
|
||||
SET 'OBJ,TALK-TO-ANIMALS-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS15: EQUAL? WRD,W?EXEX \?ELS17
|
||||
SET 'OBJ,HASTE-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS17: EQUAL? WRD,W?KULCAD \?ELS19
|
||||
SET 'OBJ,DISPEL-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS19: EQUAL? WRD,W?MELBOR \?ELS21
|
||||
SET 'OBJ,PROTECTION-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS21: EQUAL? WRD,W?BLORB \?ELS23
|
||||
SET 'OBJ,STRONG-BOX-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS23: EQUAL? WRD,W?GUNCHO \?ELS25
|
||||
SET 'OBJ,BANISH-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS25: EQUAL? WRD,W?KREBF \?ELS27
|
||||
SET 'OBJ,REPAIR-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS27: EQUAL? WRD,W?CLEESH \?ELS29
|
||||
SET 'OBJ,NEWT-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS29: EQUAL? WRD,W?IZYUK \?ELS31
|
||||
SET 'OBJ,FLY-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS31: EQUAL? WRD,W?GONDAR \?ELS33
|
||||
SET 'OBJ,QUENCH-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS33: EQUAL? WRD,W?FILFRE \?CND1
|
||||
SET 'OBJ,CREDITS-SPELL
|
||||
?CND1: ZERO? OBJ /TRUE
|
||||
CALL OBJ-FOUND,OBJ,TBL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PRE-QUICK-CAST,MEM?,SPELL,SCROLL
|
||||
EQUAL? PRSA,V?GNUSTO \?ELS5
|
||||
PUSH WRITE-MAGIC-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS5: EQUAL? PRSA,V?FROTZ \?ELS7
|
||||
PUSH LIGHT-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS7: EQUAL? PRSA,V?OZMOO \?ELS9
|
||||
PUSH CHEAT-DEATH-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS9: EQUAL? PRSA,V?ZIFMIA \?ELS11
|
||||
PUSH SUMMON-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS11: EQUAL? PRSA,V?VAXUM \?ELS13
|
||||
PUSH CHARM-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS13: EQUAL? PRSA,V?REZROV \?ELS15
|
||||
PUSH OPEN-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS15: EQUAL? PRSA,V?NITFOL \?ELS17
|
||||
PUSH TALK-TO-ANIMALS-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS17: EQUAL? PRSA,V?EXEX \?ELS19
|
||||
PUSH HASTE-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS19: EQUAL? PRSA,V?KULCAD \?ELS21
|
||||
PUSH DISPEL-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS21: EQUAL? PRSA,V?MELBOR \?ELS23
|
||||
PUSH PROTECTION-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS23: EQUAL? PRSA,V?BLORB \?ELS25
|
||||
PUSH STRONG-BOX-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS25: EQUAL? PRSA,V?GUNCHO \?ELS27
|
||||
PUSH BANISH-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS27: EQUAL? PRSA,V?GONDAR \?ELS29
|
||||
PUSH QUENCH-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS29: EQUAL? PRSA,V?KREBF \?ELS31
|
||||
PUSH REPAIR-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS31: EQUAL? PRSA,V?CLEESH \?ELS33
|
||||
PUSH NEWT-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS33: EQUAL? PRSA,V?IZYUK \?ELS35
|
||||
PUSH FLY-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS35: EQUAL? PRSA,V?FILFRE \?ELS37
|
||||
PUSH CREDITS-SPELL
|
||||
JUMP ?CND1
|
||||
?ELS37: PRINTR "**OOOPS!**"
|
||||
?CND1: SET 'SPELL,STACK
|
||||
FSET? SPELL,RMUNGBIT \?CND42
|
||||
PRINTR "The spell is defaced beyond recognition."
|
||||
?CND42: LOC SPELL >SCROLL
|
||||
ZERO? SCROLL /?CND47
|
||||
FSET? SCROLL,SCROLLBIT \?CND47
|
||||
IN? SCROLL,WINNER \?ELS54
|
||||
REMOVE SCROLL
|
||||
EQUAL? PRSO,KRILL /?CND55
|
||||
PRINTI "As you cast the spell, the "
|
||||
PRINTD SCROLL
|
||||
PRINTI " vanishes!"
|
||||
CRLF
|
||||
?CND55: PUTP SPELL,P?COUNT,1
|
||||
JUMP ?CND47
|
||||
?ELS54: FSET? SPELL,TOUCHBIT /?THN62
|
||||
IN? SCROLL,HERE \?ELS61
|
||||
?THN62: PRINTI "You don't have the "
|
||||
PRINTD SPELL
|
||||
PRINTR " memorized, nor do you have the scroll on which it is written."
|
||||
?ELS61: PRINTI "The "
|
||||
PRINTD SPELL
|
||||
PRINTR " is not committed to memory, and you haven't seen any scroll on which it is written."
|
||||
?CND47: GETP SPELL,P?COUNT >MEM?
|
||||
EQUAL? SPELL,WRITE-MAGIC-SPELL /FALSE
|
||||
GRTR? MEM?,0 /?ELS76
|
||||
PRINTI "You don't have the "
|
||||
PRINTD SPELL
|
||||
PRINTR " committed to memory!"
|
||||
?ELS76: SUB MEM?,1
|
||||
PUTP SPELL,P?COUNT,STACK
|
||||
INC 'SPELL-ROOM
|
||||
EQUAL? PRSA,V?GUNCHO,V?KULCAD \FALSE
|
||||
CALL QUEUE,MORE-PROBE,1
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT SCROLL-F,SPELL
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
FIRST? PRSO >SPELL /?KLU41
|
||||
?KLU41: FSET SPELL,TOUCHBIT
|
||||
RFALSE
|
||||
?ELS5: EQUAL? PRSA,V?CUT \?ELS7
|
||||
EQUAL? PRSI,MAGIC-KNIFE \?ELS7
|
||||
REMOVE PRSO
|
||||
PRINTR "The magic dagger reduces the scroll to shreds. The shreds shrivel up into tiny spitballs. The spitballs evaporate."
|
||||
?ELS7: EQUAL? PRSA,V?BURN \?ELS13
|
||||
EQUAL? PRSI,ETERNAL-FLAME \?ELS13
|
||||
REMOVE PRSO
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " burns cheerily. Interestingly, the flame is sort of purple and rather bright. Not even ashes remain."
|
||||
?ELS13: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
FIRST? PRSO >SPELL \?ELS24
|
||||
FSET? SPELL,RMUNGBIT \?CND25
|
||||
PRINTR "The scroll is defaced. The spell on it cannot be read."
|
||||
?CND25: PRINTI "The scroll reads """
|
||||
PRINTD SPELL
|
||||
PRINTI ": "
|
||||
GETP SPELL,P?TEXT
|
||||
PRINT STACK
|
||||
PRINTI """."
|
||||
EQUAL? SPELL,BANISH-SPELL,DISPEL-SPELL \?CND32
|
||||
PRINTI " The spell seems very long and extremely complicated."
|
||||
?CND32: CRLF
|
||||
RTRUE
|
||||
?ELS24: PRINTR "Nothing useful can be made out on the scroll."
|
||||
|
||||
|
||||
.FUNCT SPELL-F,MEM?,FORGET=0
|
||||
EQUAL? PRSA,V?READ \?ELS5
|
||||
IN? PRSO,SPELL-BOOK /FALSE
|
||||
LOC PRSO
|
||||
IN? STACK,WINNER /FALSE
|
||||
PRINTR "You can't do that without having the spell in your book or on a scroll in your hand."
|
||||
?ELS5: EQUAL? PRSA,V?LEARN,V?MEMORIZE \?ELS16
|
||||
IN? PRSO,SPELL-BOOK /?ELS21
|
||||
LOC PRSO
|
||||
IN? STACK,WINNER \?ELS26
|
||||
PRINTR "You haven't written that spell into your book yet. Until you do, you can't memorize the spell."
|
||||
?ELS26: CALL V-LEARN
|
||||
RSTACK
|
||||
?ELS21: IN? SPELL-BOOK,WINNER /?ELS32
|
||||
PRINTR "You don't have your spell book. How do you expect to memorize a spell without a spell book?"
|
||||
?ELS32: EQUAL? PRSO,WRITE-MAGIC-SPELL \?ELS36
|
||||
PRINTR "You already know that spell by heart."
|
||||
?ELS36: ZERO? LIT \?ELS40
|
||||
PRINTR "It will be hard to learn that spell in the dark."
|
||||
?ELS40: GETP PRSO,P?COUNT >MEM?
|
||||
ZERO? SPELL-ROOM \?ELS47
|
||||
EQUAL? SPELL-MAX,1 \?ELS50
|
||||
PRINTR "You can't concentrate well enough to learn the spell."
|
||||
?ELS50: EQUAL? MEM?,SPELL-MAX \?ELS54
|
||||
JUMP ?CND45
|
||||
?ELS54: CALL FORGET-SPELL,PRSO
|
||||
INC 'MEM?
|
||||
PUTP PRSO,P?COUNT,MEM?
|
||||
SET 'FORGET,TRUE-VALUE
|
||||
JUMP ?CND45
|
||||
?ELS47: DEC 'SPELL-ROOM
|
||||
INC 'MEM?
|
||||
PUTP PRSO,P?COUNT,MEM?
|
||||
?CND45: PRINTI "Using your best study habits, you learn the "
|
||||
PRINTD PRSO
|
||||
GRTR? MEM?,1 \?CND61
|
||||
PRINTI " yet another time"
|
||||
?CND61: PRINTI "."
|
||||
CRLF
|
||||
ZERO? FORGET /TRUE
|
||||
PRINTR "You have so much buzzing around in your head, though, that it's likely that something may have been forgotten in the shuffle."
|
||||
?ELS16: EQUAL? PRSA,V?DROP,V?TAKE \FALSE
|
||||
CALL PICK-ONE,YUKS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FORGET-SPELL,SPL,NSPL,F,CNT,TBL,NUM=0,SP=0
|
||||
FIRST? SPELL-BOOK >F /?KLU26
|
||||
?KLU26: SET 'TBL,FORGET-TBL
|
||||
?PRG1: ZERO? F \?ELS5
|
||||
JUMP ?REP2
|
||||
?ELS5: GETP F,P?COUNT >CNT
|
||||
GRTR? CNT,0 \?CND3
|
||||
?PRG8: SET 'SP,F
|
||||
PUT TBL,1,F
|
||||
INC 'NUM
|
||||
ADD TBL,2 >TBL
|
||||
DLESS? 'CNT,1 \?PRG8
|
||||
?CND3: NEXT? F >F /?KLU27
|
||||
?KLU27: JUMP ?PRG1
|
||||
?REP2: GRTR? NUM,0 \?CND13
|
||||
GETP SP,P?COUNT
|
||||
EQUAL? STACK,NUM \?CND13
|
||||
SUB NUM,1
|
||||
PUTP SP,P?COUNT,STACK
|
||||
RTRUE
|
||||
?CND13: PUT FORGET-TBL,0,NUM
|
||||
ZERO? NUM /TRUE
|
||||
?PRG21: CALL RANDOM-ELEMENT,FORGET-TBL >NSPL
|
||||
EQUAL? NSPL,SPL /?PRG21
|
||||
GETP NSPL,P?COUNT
|
||||
SUB STACK,1
|
||||
PUTP NSPL,P?COUNT,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FORGET-ALL,F
|
||||
SET 'SPELL-ROOM,SPELL-MAX
|
||||
FIRST? SPELL-BOOK >F /?KLU8
|
||||
?KLU8:
|
||||
?PRG1: ZERO? F /TRUE
|
||||
PUTP F,P?COUNT,0
|
||||
NEXT? F >F /?KLU9
|
||||
?KLU9: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT V-CAST,VRB
|
||||
FSET? PRSO,SPELLBIT /?ELS5
|
||||
PRINTI "You might as well be casting with a fly rod, as to try to cast "
|
||||
CALL PRINTA,PRSO
|
||||
PRINTR "."
|
||||
?ELS5: EQUAL? PRSO,WRITE-MAGIC-SPELL \?ELS14
|
||||
PUSH V?GNUSTO
|
||||
JUMP ?CND10
|
||||
?ELS14: EQUAL? PRSO,LIGHT-SPELL \?ELS16
|
||||
PUSH V?FROTZ
|
||||
JUMP ?CND10
|
||||
?ELS16: EQUAL? PRSO,CHEAT-DEATH-SPELL \?ELS18
|
||||
PUSH V?OZMOO
|
||||
JUMP ?CND10
|
||||
?ELS18: EQUAL? PRSO,SUMMON-SPELL \?ELS20
|
||||
PUSH V?ZIFMIA
|
||||
JUMP ?CND10
|
||||
?ELS20: EQUAL? PRSO,CHARM-SPELL \?ELS22
|
||||
PUSH V?VAXUM
|
||||
JUMP ?CND10
|
||||
?ELS22: EQUAL? PRSO,OPEN-SPELL \?ELS24
|
||||
PUSH V?REZROV
|
||||
JUMP ?CND10
|
||||
?ELS24: EQUAL? PRSO,TALK-TO-ANIMALS-SPELL \?ELS26
|
||||
PUSH V?NITFOL
|
||||
JUMP ?CND10
|
||||
?ELS26: EQUAL? PRSO,HASTE-SPELL \?ELS28
|
||||
PUSH V?EXEX
|
||||
JUMP ?CND10
|
||||
?ELS28: EQUAL? PRSO,DISPEL-SPELL \?ELS30
|
||||
PUSH V?KULCAD
|
||||
JUMP ?CND10
|
||||
?ELS30: EQUAL? PRSO,PROTECTION-SPELL \?ELS32
|
||||
PUSH V?MELBOR
|
||||
JUMP ?CND10
|
||||
?ELS32: EQUAL? PRSO,STRONG-BOX-SPELL \?ELS34
|
||||
PUSH V?BLORB
|
||||
JUMP ?CND10
|
||||
?ELS34: EQUAL? PRSO,BANISH-SPELL \?ELS36
|
||||
PUSH V?GUNCHO
|
||||
JUMP ?CND10
|
||||
?ELS36: EQUAL? PRSO,QUENCH-SPELL \?ELS38
|
||||
PUSH V?GONDAR
|
||||
JUMP ?CND10
|
||||
?ELS38: EQUAL? PRSO,REPAIR-SPELL \?ELS40
|
||||
PUSH V?KREBF
|
||||
JUMP ?CND10
|
||||
?ELS40: EQUAL? PRSO,NEWT-SPELL \?ELS42
|
||||
PUSH V?CLEESH
|
||||
JUMP ?CND10
|
||||
?ELS42: EQUAL? PRSO,FLY-SPELL \?ELS44
|
||||
PUSH V?IZYUK
|
||||
JUMP ?CND10
|
||||
?ELS44: EQUAL? PRSO,CREDITS-SPELL \?ELS46
|
||||
PUSH V?FILFRE
|
||||
JUMP ?CND10
|
||||
?ELS46: PRINTR "**OOPS**"
|
||||
?CND10: SET 'VRB,STACK
|
||||
ZERO? PRSI \?ELS53
|
||||
EQUAL? VRB,V?KREBF,V?FILFRE \?ELS53
|
||||
CALL PERFORM,VRB
|
||||
RTRUE
|
||||
?ELS53: ZERO? PRSI \?ELS57
|
||||
PRINTR "You might as well be casting it away as not cast it on something."
|
||||
?ELS57: CALL PERFORM,VRB,PRSI
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT V-LEARN
|
||||
PRINTR "You don't have that spell, if indeed that is a spell."
|
||||
|
||||
|
||||
.FUNCT V-MEMORIZE
|
||||
CALL V-LEARN
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-GNUSTO,SCROLL
|
||||
IN? SPELL-BOOK,WINNER /?ELS5
|
||||
PRINTR "The spell quests around in your hands, looking for your spell book, and not finding it, fades reluctantly."
|
||||
?ELS5: FSET? PRSO,SPELLBIT /?ELS9
|
||||
PRINTI "You can't inscribe "
|
||||
EQUAL? PRSO,ME \?ELS14
|
||||
PRINTI "yourself"
|
||||
JUMP ?CND12
|
||||
?ELS14: CALL PRINTA,PRSO
|
||||
?CND12: PRINTR " in your spell book!"
|
||||
?ELS9: IN? PRSO,SPELL-BOOK \?ELS24
|
||||
PRINTR "You already have that spell inscribed in your book!"
|
||||
?ELS24: FSET? PRSO,RMUNGBIT \?ELS28
|
||||
PRINTR "The spell is defaced beyond recognition."
|
||||
?ELS28: LOC PRSO >SCROLL
|
||||
FSET? SCROLL,SCROLLBIT \?ELS37
|
||||
CALL HELD?,SCROLL
|
||||
ZERO? STACK /?ELS37
|
||||
EQUAL? PRSO,DISPEL-SPELL,BANISH-SPELL,CREDITS-SPELL \?ELS42
|
||||
PRINTI "Your spell book begins to glow softly. In a spectacular effort of magic, the powers of the gnusto spell attempt to copy the "
|
||||
PRINTD PRSO
|
||||
PRINTI " into your book, but the spell is too long, too complicated, and too powerful. The glow fades, but fortunately the "
|
||||
PRINTD SCROLL
|
||||
PRINTI " remains intact."
|
||||
CRLF
|
||||
EQUAL? PRSO,DISPEL-SPELL,BANISH-SPELL \TRUE
|
||||
CALL MORE-PROBE,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS42: REMOVE SCROLL
|
||||
MOVE PRSO,SPELL-BOOK
|
||||
PUTP PRSO,P?COUNT,0
|
||||
PRINTI "Your spell book begins to glow softly. Slowly, ornately, the words of the "
|
||||
PRINTD PRSO
|
||||
PRINTR " are inscribed, glowing even more brightly than the book itself. The book's brightness fades, but the spell remains! However, the scroll on which it was written vanishes as the last word is copied."
|
||||
?ELS37: PRINTR "You must have a legible spell scroll in your hands before the gnusto spell will work on it."
|
||||
|
||||
|
||||
.FUNCT MORE-PROBE,CAST?=1
|
||||
EQUAL? HERE,PIT,REAL-STAIR,ENDLESS-STAIR /TRUE
|
||||
EQUAL? HERE,WARLOCK-TOWER /TRUE
|
||||
IGRTR? 'PROBE,3 \?ELS9
|
||||
PRINTI "The warlock Krill appears before you, clad in deepest black. ""You are a fool, wizard-worm! You and your Circle!"" He spits in your face, causing a wound through which a foul poison enters your body. Krill's demonic laughter is the last sound you hear."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS9: CRLF
|
||||
GET PROBE-TBL,PROBE
|
||||
PRINT STACK
|
||||
CRLF
|
||||
ZERO? CAST? \?THN19
|
||||
EQUAL? PROBE,2 \?CND16
|
||||
IN? KRILL,HERE /?CND16
|
||||
?THN19: ZERO? BELBOZ-WARNING \?CND16
|
||||
SET 'BELBOZ-WARNING,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTI "Belboz appears before you, hard and stern. ""While you have quested for Krill's lair, the Circle has not been idle. We have tried to shield your presence from him, but "
|
||||
ZERO? CAST? /?ELS30
|
||||
PRINTI "your use of such a powerful spell might endanger us all!"
|
||||
JUMP ?CND28
|
||||
?ELS30: PRINTI "your foolish attempt to copy such a powerful spell cannot be ignored!"
|
||||
?CND28: PRINTI " As we have sensed it, so surely must Krill! Be careful, brave Enchanter!"" His image fades."
|
||||
CRLF
|
||||
?CND16: INC 'LOSSAGE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT V-FROTZ,OLIT
|
||||
SET 'OLIT,LIT
|
||||
IN? PRSO,LOCAL-GLOBALS /?ELS5
|
||||
FSET? PRSO,TAKEBIT /?THN8
|
||||
FSET? PRSO,VICBIT \?ELS5
|
||||
?THN8: FSET PRSO,LIGHTBIT
|
||||
FSET PRSO,ONBIT
|
||||
PRINTI "There is an almost blinding flash of light as the "
|
||||
PRINTD PRSO
|
||||
PRINTI " begins to glow! It slowly fades to a less painful level, but the "
|
||||
PRINTD PRSO
|
||||
PRINTI " is now quite usable as a light source."
|
||||
CRLF
|
||||
ADD SCORE,LIGHT-POINT >SCORE
|
||||
SET 'LIGHT-POINT,0
|
||||
CALL LIT?,HERE >LIT
|
||||
ZERO? OLIT \TRUE
|
||||
ZERO? LIT /TRUE
|
||||
CRLF
|
||||
CALL PERFORM,V?LOOK
|
||||
RTRUE
|
||||
?ELS5: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-OZMOO
|
||||
PRINTI "A huge puff of orange smoke envelops "
|
||||
SET 'DEATH-CHEATED,PRSO
|
||||
EQUAL? PRSO,ME \?ELS7
|
||||
CALL QUEUE,I-DEATH-CHEATED-END,8
|
||||
PUT STACK,0,1
|
||||
PRINTR "you, but you feel no different."
|
||||
?ELS7: PRINTI "the "
|
||||
PRINTD PRSO
|
||||
PRINTR ". Other than that, not much happens."
|
||||
|
||||
|
||||
.FUNCT I-DEATH-CHEATED-END
|
||||
SET 'DEATH-CHEATED,FALSE-VALUE
|
||||
EQUAL? DEATH-CHEATED,ME \TRUE
|
||||
PRINTR "You feel a bit lightheaded for a moment, but the feeling quickly passes."
|
||||
|
||||
|
||||
.FUNCT V-ZIFMIA
|
||||
FSET? PRSO,TAKEBIT /?THN6
|
||||
IN? PRSO,LOCAL-GLOBALS \?ELS5
|
||||
?THN6: PRINTR "The zifmia spell is for summoning beings, not things!"
|
||||
?ELS5: FSET? PRSO,VICBIT \?ELS11
|
||||
IN? PRSO,HERE /?ELS11
|
||||
CALL NO-ZIF
|
||||
RSTACK
|
||||
?ELS11: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NO-ZIF
|
||||
PRINTR "If you will remember from Thaumaturgy 201, summoning of beings works only if the being can be seen, unless the being possesses great magic of his own."
|
||||
|
||||
|
||||
.FUNCT V-VAXUM
|
||||
PRINTR "Although you complete the spell, nothing seems to have happened."
|
||||
|
||||
|
||||
.FUNCT V-GONDAR
|
||||
CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-REZROV
|
||||
FSET? PRSO,CONTBIT \?ELS5
|
||||
FSET? PRSO,OPENBIT \?ELS8
|
||||
PRINTI "It's open already. Why bother?"
|
||||
CRLF
|
||||
JUMP ?CND6
|
||||
?ELS8: PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " opens. Kind of like swatting a fly with a sledge hammer, if you ask me."
|
||||
CRLF
|
||||
?CND6: FSET PRSO,OPENBIT
|
||||
RTRUE
|
||||
?ELS5: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-TALK-TO-ANIMAL
|
||||
EQUAL? TALK-TO-ANIMAL?,TURTLE \?CND1
|
||||
ZERO? TURTLE-FOLLOWS /?CND1
|
||||
SET 'TURTLE-FOLLOWS,FALSE-VALUE
|
||||
IN? TURTLE,HERE \?CND1
|
||||
PRINTI "The turtle no longer seems to understand you, loses interest in you, and stops following."
|
||||
CRLF
|
||||
?CND1: SET 'TALK-TO-ANIMAL?,FALSE-VALUE
|
||||
RETURN TALK-TO-ANIMAL?
|
||||
|
||||
|
||||
.FUNCT V-NITFOL
|
||||
FSET? PRSO,VILLAIN \?ELS5
|
||||
SET 'TALK-TO-ANIMAL?,PRSO
|
||||
CALL QUEUE,I-TALK-TO-ANIMAL,20
|
||||
PUT STACK,0,1
|
||||
EQUAL? PRSO,ME \?ELS10
|
||||
PRINTR "You now understand everything you say to yourself, which is more than I can do. You didn't study too hard in Thaumaturgy 101, did you? This spell should be cast on the creature you wish to talk to!"
|
||||
?ELS10: EQUAL? PRSO,FROG \?ELS17
|
||||
PRINTI "One of the frogs"
|
||||
JUMP ?CND15
|
||||
?ELS17: PRINTI "The "
|
||||
PRINTD PRSO
|
||||
?CND15: PRINTR " looks at you for a moment, and you look at it. ""Hello,"" it says."
|
||||
?ELS5: PRINTI "This seems to have no effect on "
|
||||
CALL PRINTA,PRSO
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT I-HASTE
|
||||
EQUAL? HASTED?,ME \?CND1
|
||||
ADD HUNGER-COUNT,2 >HUNGER-COUNT
|
||||
CALL QUEUE,I-HUNGER,3
|
||||
PUT STACK,0,1
|
||||
ADD THIRST-COUNT,2 >THIRST-COUNT
|
||||
CALL QUEUE,I-THIRST,4
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-TIRED,5
|
||||
PUT STACK,0,1
|
||||
PRINTI "The effects of the exex spell have worn off. You are ravenous, parched, and tired."
|
||||
CRLF
|
||||
?CND1: SET 'HASTED?,FALSE-VALUE
|
||||
RETURN HASTED?
|
||||
|
||||
|
||||
.FUNCT V-EXEX
|
||||
ZERO? HASTED? /?ELS5
|
||||
PRINTR "Nothing seems to happen. Perhaps the spell needs time before it can be cast again."
|
||||
?ELS5: FSET? PRSO,VILLAIN \?ELS10
|
||||
SET 'HASTED?,PRSO
|
||||
EQUAL? PRSO,ME \?ELS15
|
||||
SET 'HASTED?,PLAYER
|
||||
EQUAL? HERE,WARLOCK-TOWER \?ELS20
|
||||
PRINTR "Krill, nobody's fool, hears you start the exex spell and hastily improvises one of his own which entirely counteracts it. The spell acts so well, in fact, that you are frozen solid."
|
||||
?ELS20: CALL QUEUE,I-HASTE,45
|
||||
PUT STACK,0,1
|
||||
PRINTR "You feel energetic and zippy."
|
||||
?ELS15: CALL QUEUE,I-HASTE,15
|
||||
PUT STACK,0,1
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " shimmers, then vibrates in place for a few seconds, but doesn't take any notice of the change."
|
||||
?ELS10: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-KULCAD
|
||||
PRINTI "It appears that the "
|
||||
PRINTD PRSO
|
||||
PRINTR " was real, since nothing happens."
|
||||
|
||||
|
||||
.FUNCT V-MELBOR
|
||||
EQUAL? PRSO,ME \?ELS5
|
||||
SET 'PROTECTED-FROM-EVIL,TRUE-VALUE
|
||||
PRINTR "A wave of warmth courses through you, leaving you with a feeling of great internal strength."
|
||||
?ELS5: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-BLORB,OBJ
|
||||
ZERO? STRONG-BOX-FLAG /?CND1
|
||||
CALL V-VAXUM
|
||||
RTRUE
|
||||
?CND1: FSET? PRSO,TAKEBIT /?THN10
|
||||
EQUAL? PRSO,ADVENTURER \?ELS9
|
||||
?THN10: EQUAL? PRSO,ADVENTURER,TURTLE \?ELS14
|
||||
REMOVE PRSO
|
||||
EQUAL? PRSO,ADVENTURER \?ELS17
|
||||
CALL QUEUE,I-ADVENTURER,0
|
||||
JUMP ?CND12
|
||||
?ELS17: CALL QUEUE,I-TURTLE,0
|
||||
JUMP ?CND12
|
||||
?ELS14: MOVE PRSO,STRONG-BOX
|
||||
?CND12: SET 'STRONG-BOX-FLAG,TRUE-VALUE
|
||||
MOVE STRONG-BOX,HERE
|
||||
PRINTI "A glowing strong box forms out of the air, carefully enclosing the "
|
||||
PRINTD PRSO
|
||||
PRINTR ", which disappears from view. The strong box rests on the ground."
|
||||
?ELS9: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT STRONG-BOX-F,OBJ
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
PRINTR "The strong box is apparently stuck to the ground, or welded there, or tied with magical ropes. It won't move."
|
||||
?ELS5: EQUAL? PRSA,V?KULCAD,V?REZROV,V?OPEN \FALSE
|
||||
SET 'STRONG-BOX-FLAG,FALSE-VALUE
|
||||
FIRST? STRONG-BOX >OBJ \?CND10
|
||||
MOVE OBJ,HERE
|
||||
CALL THIS-IS-IT,OBJ
|
||||
?CND10: REMOVE STRONG-BOX
|
||||
EQUAL? PRSA,V?OPEN \?ELS19
|
||||
PUSH STR?122
|
||||
JUMP ?CND15
|
||||
?ELS19: EQUAL? PRSA,V?REZROV \?ELS21
|
||||
PUSH STR?123
|
||||
JUMP ?CND15
|
||||
?ELS21: EQUAL? PRSA,V?KULCAD \?PRD17
|
||||
PUSH STR?124
|
||||
JUMP ?CND15
|
||||
?PRD17: PUSH 0
|
||||
?CND15: PRINT STACK
|
||||
PRINTI " the strong box, it vanishes, and "
|
||||
ZERO? OBJ /?ELS26
|
||||
PRINTI "the "
|
||||
PRINTD OBJ
|
||||
PRINTI " re"
|
||||
JUMP ?CND24
|
||||
?ELS26: PRINTI "nothing "
|
||||
?CND24: PRINTR "appears in its place."
|
||||
|
||||
|
||||
.FUNCT V-GUNCHO
|
||||
FSET? PRSO,VICBIT \?ELS5
|
||||
REMOVE PRSO
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " disappears, fading with stately speed into a misty shadow, shimmering and wavering, which then is gone."
|
||||
?ELS5: CALL V-VAXUM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-KREBF
|
||||
ZERO? PRSO /?THN6
|
||||
EQUAL? PRSO,GLOBAL-ROOM \?ELS5
|
||||
?THN6: FSET? HERE,RMUNGBIT \?ELS12
|
||||
FCLEAR HERE,RMUNGBIT
|
||||
FCLEAR HERE,TOUCHBIT
|
||||
PRINTR "There is a slow brightening of the illumination, and color flows back into your surroundings. There is a touch of spring in the air."
|
||||
?ELS12: PRINTR "Nothing happens. Perhaps there was no damage here to repair."
|
||||
?ELS5: FSET? PRSO,SCROLLBIT \?CND21
|
||||
FIRST? PRSO \?CND21
|
||||
FIRST? PRSO >PRSO /?KLU46
|
||||
?KLU46:
|
||||
?CND21: FSET? PRSO,RMUNGBIT /?ELS30
|
||||
PRINTR "Nothing happens."
|
||||
?ELS30: FCLEAR PRSO,RMUNGBIT
|
||||
FSET? PRSO,SPELLBIT \?ELS39
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " becomes readable again."
|
||||
?ELS39: PRINTR "Nothing obvious happens."
|
||||
|
||||
|
||||
.FUNCT V-CLEESH
|
||||
EQUAL? PRSO,ME \?ELS5
|
||||
PRINTI "You are turned into a newt, and scurry off to find your friends in the swamp. You are distracted by various yummy insects along the way, but eventually settle into a nice gooey part of the morass and live happily ever after, at least until you are devoured by a heron."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSO,ADVENTURER,ADVENTURER-LG \?ELS9
|
||||
CALL NO-MORE-ADVENTURER
|
||||
CALL QUEUE,I-ADVENTURER,0
|
||||
REMOVE ADVENTURER
|
||||
PRINTR "The adventurer turns into a fairly large newt, which scuttles off and is lost to sight."
|
||||
?ELS9: FSET? PRSO,VICBIT \?ELS13
|
||||
FSET? PRSO,VILLAIN \?ELS13
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " looks sort of green and slimy for a moment, but he gets better."
|
||||
?ELS13: PRINTI "Turning the "
|
||||
PRINTD PRSO
|
||||
PRINTR " into a newt is a remarkable idea."
|
||||
|
||||
|
||||
.FUNCT V-IZYUK
|
||||
ZERO? PRSO /?THN6
|
||||
EQUAL? PRSO,ME \?ELS5
|
||||
?THN6: SET 'FLYING?,TRUE-VALUE
|
||||
CALL QUEUE,I-FLY,4
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-FALL-FOREVER,0
|
||||
PRINTR "Your descent slows, and you are floating serenely in midair. The tower surrounds you, with wide-cut openings to the east and west. You could probably fly in either direction if you wished."
|
||||
?ELS5: PRINTI "You can't make the "
|
||||
PRINTD PRSO
|
||||
PRINTR " fly!"
|
||||
|
||||
|
||||
.FUNCT I-FLY
|
||||
SET 'FLYING?,FALSE-VALUE
|
||||
LOC WINNER
|
||||
EQUAL? STACK,PIT,REAL-STAIR \?ELS5
|
||||
PRINTI "The izyuk spell has worn off! 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."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS5: PRINTR "You settle gently to the ground."
|
||||
|
||||
|
||||
.FUNCT V-FILFRE
|
||||
PRINTI "In a blinding burst of pyrotechnics, the air lights up with fireworks and dazzling explosions of multicolored fire! In sizzling sparks and roiling smoke is written:
|
||||
"
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
Enchanter
|
||||
by
|
||||
Dave Lebling
|
||||
and
|
||||
Marc Blank
|
||||
|
||||
Copyright 1983, by Infocom, Inc.
|
||||
|
||||
"
|
||||
CALL FIXED-FONT-OFF
|
||||
PRINTR "After a while, the smoke dissipates and the lights dim. You remain slightly dazzled for a while, but fortunately, this wears off."
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,325 @@
|
|||
|
||||
|
||||
.FUNCT GO
|
||||
START::
|
||||
|
||||
?FCN: PUTB P-LEXV,0,59
|
||||
CALL QUEUE,I-TIRED,MOVES-PER-DAY
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-THIRST,41
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-HUNGER,67
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-TIME,-1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-SCURRY,5
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-MUNG-ROOM,50
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-GUARDS-ARRIVE,0
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-ADVENTURER,0
|
||||
PUT STACK,0,1
|
||||
SET 'LIT,TRUE-VALUE
|
||||
SET 'WINNER,PLAYER
|
||||
SET 'HERE,WEST-FORK
|
||||
SET 'P-IT-OBJECT,FALSE-VALUE
|
||||
FSET? HERE,TOUCHBIT /?CND1
|
||||
PRINTI "It must be the warlock Krill. The odd disappearances, the mysterious dissolution of regions sacred to the Circle, the lessening of the Powers -- these could only be his handiwork. The Circle gathers and its leader, the esteemed Belboz, reveals to them an ancient document which portends evil days much like our own.
|
||||
|
||||
""Krill's evil must be unmade,"" he begins, ""but to send a powerful Enchanter is ill-omened. It would be ruinous to reveal oversoon our full powers."" A ripple of concern spreads over the face of each Enchanter. Belboz pauses, and collects his resolve. ""Have hope! This has been written by a hand far wiser than mine!""
|
||||
|
||||
He recites a short spell and you appear. Belboz approaches, transfixing you with his gaze, and hands you the document. The other Enchanters await his decree. ""These words, written ages ago, can have only one meaning. You, a novice Enchanter with but a few simple spells in your Book, must seek out Krill, explore the Castle he has overthrown, and learn his secrets. Only then may his vast evil be lessened or, with good fortune, destroyed.""
|
||||
|
||||
The Circle rises and intones a richly woven spell, whose many textures imbue the small, darkened chamber with warmth and hope. There is a surge of power; you are Sent."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL V-VERSION
|
||||
CRLF
|
||||
?CND1: MOVE WINNER,HERE
|
||||
CALL V-LOOK
|
||||
CALL MAIN-LOOP
|
||||
JUMP ?FCN
|
||||
|
||||
|
||||
.FUNCT MAIN-LOOP,TRASH
|
||||
?PRG1: CALL MAIN-LOOP-1 >TRASH
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?TMP1
|
||||
SET 'CNT,0
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
SET 'PTBL,TRUE-VALUE
|
||||
CALL PARSER >P-WON
|
||||
ZERO? P-WON /?ELS3
|
||||
GET P-PRSI,P-MATCHLEN >ICNT
|
||||
GET P-PRSO,P-MATCHLEN >OCNT
|
||||
ZERO? P-IT-OBJECT /?CND4
|
||||
CALL ACCESSIBLE?,P-IT-OBJECT
|
||||
ZERO? STACK /?CND4
|
||||
SET 'TMP,FALSE-VALUE
|
||||
?PRG9: IGRTR? 'CNT,ICNT \?ELS13
|
||||
JUMP ?REP10
|
||||
?ELS13: GET P-PRSI,CNT
|
||||
EQUAL? STACK,IT \?PRG9
|
||||
PUT P-PRSI,CNT,P-IT-OBJECT
|
||||
SET 'TMP,TRUE-VALUE
|
||||
?REP10: ZERO? TMP \?CND19
|
||||
SET 'CNT,0
|
||||
?PRG22: IGRTR? 'CNT,OCNT \?ELS26
|
||||
JUMP ?CND19
|
||||
?ELS26: GET P-PRSO,CNT
|
||||
EQUAL? STACK,IT \?PRG22
|
||||
PUT P-PRSO,CNT,P-IT-OBJECT
|
||||
?CND19: SET 'CNT,0
|
||||
?CND4: ZERO? OCNT \?ELS36
|
||||
PUSH OCNT
|
||||
JUMP ?CND32
|
||||
?ELS36: GRTR? OCNT,1 \?ELS38
|
||||
SET 'TBL,P-PRSO
|
||||
ZERO? ICNT \?ELS41
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
JUMP ?CND39
|
||||
?ELS41: GET P-PRSI,1 >OBJ
|
||||
?CND39: PUSH OCNT
|
||||
JUMP ?CND32
|
||||
?ELS38: GRTR? ICNT,1 \?ELS45
|
||||
SET 'PTBL,FALSE-VALUE
|
||||
SET 'TBL,P-PRSI
|
||||
GET P-PRSO,1 >OBJ
|
||||
PUSH ICNT
|
||||
JUMP ?CND32
|
||||
?ELS45: PUSH 1
|
||||
?CND32: SET 'NUM,STACK
|
||||
ZERO? OBJ \?CND48
|
||||
EQUAL? ICNT,1 \?CND48
|
||||
GET P-PRSI,1 >OBJ
|
||||
?CND48: EQUAL? PRSA,V?WALK \?ELS55
|
||||
CALL PERFORM,PRSA,PRSO >V
|
||||
JUMP ?CND53
|
||||
?ELS55: ZERO? NUM \?ELS57
|
||||
GETB P-SYNTAX,P-SBITS
|
||||
BAND STACK,P-SONUMS
|
||||
ZERO? STACK \?ELS60
|
||||
CALL PERFORM,PRSA >V
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
JUMP ?CND53
|
||||
?ELS60: ZERO? LIT \?ELS62
|
||||
PRINTI "It's too dark to see."
|
||||
CRLF
|
||||
JUMP ?CND53
|
||||
?ELS62: PRINTI "There isn't anything to "
|
||||
GET P-ITBL,P-VERBN >TMP
|
||||
ZERO? P-OFLAG \?THN72
|
||||
ZERO? P-MERGED /?ELS71
|
||||
?THN72: GET TMP,0
|
||||
PRINTB STACK
|
||||
JUMP ?CND69
|
||||
?ELS71: GETB TMP,2 >?TMP1
|
||||
GETB TMP,3
|
||||
CALL WORD-PRINT,?TMP1,STACK
|
||||
?CND69: PRINTI "!"
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND53
|
||||
?ELS57: SET 'P-NOT-HERE,0
|
||||
SET 'P-MULT,FALSE-VALUE
|
||||
GRTR? NUM,1 \?CND80
|
||||
SET 'P-MULT,TRUE-VALUE
|
||||
?CND80: SET 'TMP,FALSE-VALUE
|
||||
?PRG83: IGRTR? 'CNT,NUM \?ELS87
|
||||
GRTR? P-NOT-HERE,0 \?ELS90
|
||||
PRINTI "The "
|
||||
EQUAL? P-NOT-HERE,NUM /?CND93
|
||||
PRINTI "other "
|
||||
?CND93: PRINTI "object"
|
||||
EQUAL? P-NOT-HERE,1 /?CND100
|
||||
PRINTI "s"
|
||||
?CND100: PRINTI " that you mentioned "
|
||||
EQUAL? P-NOT-HERE,1 /?ELS109
|
||||
PRINTI "are"
|
||||
JUMP ?CND107
|
||||
?ELS109: PRINTI "is"
|
||||
?CND107: PRINTI "n't here."
|
||||
CRLF
|
||||
JUMP ?REP84
|
||||
?ELS90: ZERO? TMP \?REP84
|
||||
PRINTI "I don't know what you're referring to."
|
||||
CRLF
|
||||
JUMP ?REP84
|
||||
?ELS87: ZERO? PTBL /?ELS126
|
||||
GET P-PRSO,CNT >OBJ1
|
||||
JUMP ?CND124
|
||||
?ELS126: GET P-PRSI,CNT >OBJ1
|
||||
?CND124: ZERO? PTBL /?ELS134
|
||||
PUSH OBJ1
|
||||
JUMP ?CND130
|
||||
?ELS134: PUSH OBJ
|
||||
?CND130: SET 'PRSO,STACK
|
||||
ZERO? PTBL /?ELS142
|
||||
PUSH OBJ
|
||||
JUMP ?CND138
|
||||
?ELS142: PUSH OBJ1
|
||||
?CND138: SET 'PRSI,STACK
|
||||
EQUAL? PRSA,V?ERASE-LINE,V?MAKE-LINE \?ELS148
|
||||
JUMP ?CND146
|
||||
?ELS148: GRTR? NUM,1 /?THN151
|
||||
GET P-ITBL,P-NC1
|
||||
GET STACK,0
|
||||
EQUAL? STACK,W?ALL \?CND146
|
||||
?THN151: EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS155
|
||||
INC 'P-NOT-HERE
|
||||
JUMP ?PRG83
|
||||
?ELS155: EQUAL? P-GETFLAGS,P-ALL \?ELS157
|
||||
EQUAL? PRSA,V?TAKE \?ELS157
|
||||
LOC OBJ1
|
||||
EQUAL? STACK,WINNER,HERE,OBJ /?ELS157
|
||||
JUMP ?PRG83
|
||||
?ELS157: EQUAL? PRSA,V?TAKE \?ELS161
|
||||
ZERO? PRSI /?ELS161
|
||||
GET P-ITBL,P-NC1
|
||||
GET STACK,0
|
||||
EQUAL? STACK,W?ALL \?ELS161
|
||||
IN? PRSO,PRSI /?ELS161
|
||||
JUMP ?PRG83
|
||||
?ELS161: EQUAL? OBJ1,IT \?ELS168
|
||||
PRINTD P-IT-OBJECT
|
||||
JUMP ?CND166
|
||||
?ELS168: PRINTD OBJ1
|
||||
?CND166: PRINTI ": "
|
||||
?CND146: SET 'TMP,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,PRSO,PRSI >V
|
||||
EQUAL? V,M-FATAL \?PRG83
|
||||
JUMP ?CND53
|
||||
?REP84:
|
||||
?CND53: EQUAL? V,M-FATAL /?CND176
|
||||
LOC WINNER
|
||||
ZERO? STACK /?CND176
|
||||
LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-END >V
|
||||
?CND176: EQUAL? PRSA,V?SCORE,V?RESTORE,V?SAVE /?CND182
|
||||
EQUAL? PRSA,V?VERSION \?ELS184
|
||||
JUMP ?CND182
|
||||
?ELS184: SET 'L-PRSA,PRSA
|
||||
SET 'L-PRSO,PRSO
|
||||
SET 'L-PRSI,PRSI
|
||||
?CND182: EQUAL? V,M-FATAL \?CND1
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
JUMP ?CND1
|
||||
?ELS3: SET 'P-CONT,FALSE-VALUE
|
||||
?CND1: ZERO? P-WON /FALSE
|
||||
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE
|
||||
EQUAL? PRSA,V?VERSION,V?SAVE,V?VERBOSE /TRUE
|
||||
EQUAL? PRSA,V?RESTART,V?QUIT,V?TIME /TRUE
|
||||
EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT,V?SCORE /TRUE
|
||||
EQUAL? PRSA,V?RESTORE /TRUE
|
||||
CALL CLOCKER >V
|
||||
RETURN V
|
||||
|
||||
|
||||
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
|
||||
SET 'OA,PRSA
|
||||
SET 'OO,PRSO
|
||||
SET 'OI,PRSI
|
||||
EQUAL? IT,I,O \?CND1
|
||||
CALL ACCESSIBLE?,P-IT-OBJECT
|
||||
ZERO? STACK \?CND1
|
||||
PRINTI "I don't see what you are referring to."
|
||||
CRLF
|
||||
RETURN 2
|
||||
?CND1: EQUAL? O,IT \?CND10
|
||||
SET 'O,P-IT-OBJECT
|
||||
?CND10: EQUAL? I,IT \?CND13
|
||||
SET 'I,P-IT-OBJECT
|
||||
?CND13: SET 'PRSA,A
|
||||
SET 'PRSO,O
|
||||
ZERO? PRSO /?CND16
|
||||
EQUAL? PRSA,V?WALK /?CND16
|
||||
SET 'P-IT-OBJECT,PRSO
|
||||
?CND16: SET 'PRSI,I
|
||||
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS23
|
||||
CALL NOT-HERE-OBJECT-F >V
|
||||
ZERO? V /?ELS23
|
||||
SET 'P-WON,FALSE-VALUE
|
||||
JUMP ?CND21
|
||||
?ELS23: SET 'O,PRSO
|
||||
SET 'I,PRSI
|
||||
GETP WINNER,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS30
|
||||
JUMP ?CND21
|
||||
?ELS30: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-BEG >V
|
||||
ZERO? V /?ELS32
|
||||
JUMP ?CND21
|
||||
?ELS32: GET PREACTIONS,A
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS34
|
||||
JUMP ?CND21
|
||||
?ELS34: ZERO? I /?ELS36
|
||||
GETP I,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS36
|
||||
JUMP ?CND21
|
||||
?ELS36: ZERO? O /?ELS40
|
||||
EQUAL? A,V?WALK /?ELS40
|
||||
LOC O
|
||||
ZERO? STACK /?ELS40
|
||||
LOC O
|
||||
GETP STACK,P?CONTFCN
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS40
|
||||
JUMP ?CND21
|
||||
?ELS40: ZERO? O /?ELS44
|
||||
EQUAL? A,V?WALK /?ELS44
|
||||
GETP O,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS44
|
||||
JUMP ?CND21
|
||||
?ELS44: GET ACTIONS,A
|
||||
CALL STACK >V
|
||||
ZERO? V /?CND21
|
||||
?CND21: SET 'PRSA,OA
|
||||
SET 'PRSO,OO
|
||||
SET 'PRSI,OI
|
||||
RETURN V
|
||||
|
||||
|
||||
.FUNCT I-TIME
|
||||
EQUAL? HASTED?,ME \?ELS3
|
||||
MOD MOVES,2
|
||||
ZERO? STACK /TRUE
|
||||
?ELS3: IGRTR? 'TOD,127 \?CND1
|
||||
SET 'TOD,0
|
||||
SUB NIGHTFALL,20 >NIGHTFALL
|
||||
INC 'LOSSAGE
|
||||
SUB DUSK,20 >DUSK
|
||||
ADD MOLESTED,5 >MOLESTED
|
||||
ADD MUNCHED,5 >MUNCHED
|
||||
LESS? NIGHTFALL,0 \?CND1
|
||||
PRINTI "Belboz appears before you, in a magical sending. He speaks, his voice soft and saddened. ""You have failed. Universal night has now fallen. Krill and his creatures now may freely roam the earth. The power of the Circle is diminished, if not broken. I go to prepare the last defense."" The sending vanishes."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
?CND1: EQUAL? TOD,NIGHTFALL \?ELS17
|
||||
LOC PLAYER
|
||||
FSET? STACK,ONBIT \?ELS17
|
||||
PRINTI "The darkened sky is now full of bright stars. It is night."
|
||||
CRLF
|
||||
LESS? NIGHTFALL,97 \TRUE
|
||||
PRINTR "Today seemed shorter than yesterday, somehow."
|
||||
?ELS17: EQUAL? TOD,SUNRISE \?ELS28
|
||||
LOC PLAYER
|
||||
FSET? STACK,ONBIT \?ELS28
|
||||
PRINTR "The sun has now risen above the hills."
|
||||
?ELS28: EQUAL? TOD,DUSK \FALSE
|
||||
LOC PLAYER
|
||||
FSET? STACK,ONBIT \FALSE
|
||||
PRINTI "The sun starts to set behind the Lonely Mountain in the west."
|
||||
CRLF
|
||||
LESS? NIGHTFALL,97 \TRUE
|
||||
PRINTR "The day is coming to an end earlier than you would have expected."
|
||||
|
||||
.ENDI
|
48
main.zil
48
main.zil
|
@ -45,7 +45,6 @@
|
|||
<SETG LIT T>
|
||||
<SETG WINNER ,PLAYER>
|
||||
<SETG HERE ,WEST-FORK>
|
||||
<SETG P-IT-LOC ,HERE>
|
||||
<SETG P-IT-OBJECT <>>
|
||||
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
|
||||
<TELL
|
||||
|
@ -81,17 +80,41 @@ you are Sent." CR>
|
|||
<AGAIN>>
|
||||
|
||||
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
|
||||
<ROUTINE MAIN-LOOP ("AUX" TRASH)
|
||||
<REPEAT ()
|
||||
<SET TRASH <MAIN-LOOP-1>>>>
|
||||
|
||||
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
|
||||
#DECL ((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ) <OR FALSE OBJECT>
|
||||
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
|
||||
<REPEAT ()
|
||||
<SET CNT 0>
|
||||
<SET OBJ <>>
|
||||
<SET PTBL T>
|
||||
<COND (<SETG P-WON <PARSER>>
|
||||
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
|
||||
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
|
||||
<COND (<AND ,P-IT-OBJECT <ACCESSIBLE? ,P-IT-OBJECT>>
|
||||
<SET TMP <>>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
|
||||
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
|
||||
<SET TMP T>
|
||||
<RETURN>)>)>>
|
||||
<COND (<NOT .TMP>
|
||||
<SET CNT 0>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
|
||||
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
|
||||
<RETURN>)>)>>)>
|
||||
<SET CNT 0>)>
|
||||
<SET NUM
|
||||
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .OCNT)
|
||||
<COND (<0? .OCNT> .OCNT)
|
||||
(<G? .OCNT 1>
|
||||
<SET TBL ,P-PRSO>
|
||||
<COND (<0? .ICNT> <SET OBJ <>>)
|
||||
|
@ -164,7 +187,8 @@ you are Sent." CR>
|
|||
<NOT <EQUAL?
|
||||
<LOC .OBJ1>
|
||||
,WINNER
|
||||
,HERE>>>
|
||||
,HERE
|
||||
.OBJ>>>
|
||||
<AGAIN>)
|
||||
(<AND <VERB? TAKE>
|
||||
,PRSI
|
||||
|
@ -189,7 +213,7 @@ you are Sent." CR>
|
|||
<SET V
|
||||
<APPLY <GETP <LOC ,WINNER> ,P?ACTION>
|
||||
,M-END>>)>)>
|
||||
<COND (<VERB? AGAIN ;WALK SAVE RESTORE SCORE VERSION> T)
|
||||
<COND (<VERB? ;AGAIN ;WALK SAVE RESTORE SCORE VERSION> T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
<SETG L-PRSO ,PRSO>
|
||||
|
@ -200,7 +224,7 @@ you are Sent." CR>
|
|||
<COND (,P-WON
|
||||
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
|
||||
TIME QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
|
||||
(T <SET V <CLOCKER>>)>)>>>
|
||||
(T <SET V <CLOCKER>>)>)>>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
|
@ -222,7 +246,7 @@ you are Sent." CR>
|
|||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
|
||||
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
|
||||
<TELL "I don't see what you are referring to." CR>
|
||||
<RFATAL>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
|
||||
|
@ -230,8 +254,7 @@ you are Sent." CR>
|
|||
<SETG PRSA .A>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>
|
||||
<SETG P-IT-OBJECT ,PRSO>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
||||
<SET V <NOT-HERE-OBJECT-F>>>
|
||||
|
@ -277,7 +300,7 @@ you are Sent." CR>
|
|||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
|
||||
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
|
||||
<TELL "I don't see what you are referring to." CR>
|
||||
<RFATAL>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
|
||||
|
@ -285,8 +308,7 @@ you are Sent." CR>
|
|||
<SETG PRSA .A>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>
|
||||
<SETG P-IT-OBJECT ,PRSO>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
||||
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
|
||||
|
|
|
@ -0,0 +1,324 @@
|
|||
|
||||
|
||||
.FUNCT WEST-CASTLE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are outside the western entrance to the castle. To the east stands an iron gate which is "
|
||||
FSET? IRON-GATE,OPENBIT \?ELS10
|
||||
PRINTI "wide open"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "closed and chained"
|
||||
?CND8: PRINTR ". A winding road starts here and proceeds to the west."
|
||||
|
||||
|
||||
.FUNCT UNDERGROWTH-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The undergrowth is thick. You would never get through it."
|
||||
?ELS5: EQUAL? PRSA,V?MUNG,V?CUT \FALSE
|
||||
PRINTR "You could spend a few days doing this without much progress."
|
||||
|
||||
|
||||
.FUNCT PATH-SIGN-F
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
- Shady Brook Trail -
|
||||
|
||||
Old Lingolf House
|
||||
1000 feet
|
||||
"
|
||||
CALL FIXED-FONT-OFF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FOUNDATION-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
PRINTR "No way."
|
||||
?ELS5: EQUAL? PRSA,V?WHO \?ELS9
|
||||
PRINTR "There's no way of knowing."
|
||||
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \FALSE
|
||||
PRINTR "There is nothing but stone there."
|
||||
|
||||
|
||||
.FUNCT DISTANT-CASTLE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The castle is far to the east and flanked by dark towers. From this distance, not much detail can be discerned."
|
||||
?ELS5: EQUAL? PRSA,V?WALK-TO \FALSE
|
||||
PRINTR "There's no direct path from here, although roads lead there. Try specifying a compass direction in order to move around."
|
||||
|
||||
|
||||
.FUNCT SHACK-OBJ-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,SHACK-ROOM \?ELS5
|
||||
CALL GOTO,SHACK
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?DROP \FALSE
|
||||
EQUAL? HERE,SHACK \FALSE
|
||||
CALL GOTO,SHACK-ROOM
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT BATTERED-LANTERN-F
|
||||
EQUAL? PRSA,V?ERASE-LINE \?ELS5
|
||||
PRINTR "Aladdin you're not."
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS9
|
||||
PRINTR "The lamp seems to be broken, most likely beyond repair."
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS13
|
||||
PRINTR "The lamp is made of brass and is old and battered. It doesn't seem likely that any use can be made of it."
|
||||
?ELS13: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
||||
FSET? PRSO,ONBIT /FALSE
|
||||
PRINTR "It isn't on!"
|
||||
|
||||
|
||||
.FUNCT SHACK-STUFF
|
||||
EQUAL? PRSA,V?PUT \FALSE
|
||||
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
|
||||
PRINTR "They are overturned and don't make good surfaces."
|
||||
|
||||
|
||||
.FUNCT SHACK-OVEN-F
|
||||
EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON \?ELS5
|
||||
PRINTR "It's not working."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "Strangely, the oven is still slightly warm, as if it had been used recently."
|
||||
|
||||
|
||||
.FUNCT BREAD-F,AMT,S
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "There's "
|
||||
GETP BREAD,P?SIZE
|
||||
GET BREAD-EXAMINES,STACK
|
||||
PRINT STACK
|
||||
PRINTR " left."
|
||||
?ELS5: EQUAL? PRSA,V?EAT \?ELS9
|
||||
CALL INT,I-HUNGER
|
||||
GET STACK,C-TICK >S
|
||||
GRTR? S,60 \?CND10
|
||||
PRINTR "You aren't the least bit hungry."
|
||||
?CND10: GETP BREAD,P?SIZE
|
||||
SUB STACK,1 >AMT
|
||||
PUTP BREAD,P?SIZE,AMT
|
||||
ADD SCORE,EAT-POINT >SCORE
|
||||
SET 'EAT-POINT,0
|
||||
PRINTI "Mmm. That tasted great! "
|
||||
GET BREAD-AMTS,AMT
|
||||
PRINT STACK
|
||||
CRLF
|
||||
ZERO? AMT \?CND19
|
||||
REMOVE BREAD
|
||||
?CND19: ADD S,47
|
||||
CALL QUEUE,I-HUNGER,STACK
|
||||
SET 'HUNGER-COUNT,0
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?BURN \?ELS23
|
||||
EQUAL? PRSI,ETERNAL-FLAME \?ELS23
|
||||
PRINTR "Toast without jam? What a silly idea!"
|
||||
?ELS23: EQUAL? PRSA,V?MUNG,V?CUT \FALSE
|
||||
EQUAL? PRSI,MAGIC-KNIFE \FALSE
|
||||
PRINTR "It seems silly to cut up your bread when it's more easily carried in one piece. Besides, you might get crumbs all over your spell book."
|
||||
|
||||
|
||||
.FUNCT TREES-F
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?ELS5
|
||||
PRINTR "The trees are not suitable for climbing."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
FSET? HERE,RMUNGBIT \?ELS14
|
||||
PRINTR "The trees are short and stunted and covered in a thick, grey ash. The roots themselves are blackened and foul-smelling."
|
||||
?ELS14: PRINTR "The trees are mostly short and stunted."
|
||||
|
||||
|
||||
.FUNCT HOVEL-F
|
||||
EQUAL? HERE,VILLAGE \FALSE
|
||||
EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE
|
||||
CALL DO-WALK,P?SOUTH
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT HOVEL-KLUDGE
|
||||
PRINTI "It is dark and smoky in here, but this is a place of great disorder, and its odor is indescribable. A pile of rags sits near a small pot which is bubbling and steaming over a tiny fire. The pile of rags sports a gnarled hand which busies itself with the noisome stew. A closer look reveals a withered crone at the other end of the hand."
|
||||
CRLF
|
||||
ZERO? CRONE-MOVE \?ELS5
|
||||
CRLF
|
||||
PRINTI "The creature looks you over keenly and speaks: ""I should have thought they would send someone more ... more ..."" She laughs in an unsettling way. ""They've all left! A great storm is brewing in the east, my friend, and all have fled before it!"" She starts to chuckle. ""Take this and begone!"" With a wave of her hand, you find yourself reeling out of the door of the hovel, holding some sort of scroll in your hand."
|
||||
CRLF
|
||||
MOVE OPEN-SCROLL,WINNER
|
||||
SET 'CRONE-MOVE,MOVES
|
||||
RFALSE
|
||||
?ELS5: SUB MOVES,CRONE-MOVE
|
||||
LESS? STACK,20 \?ELS9
|
||||
PRINTI "As you enter the crone's hovel, she booms at you: ""Are you here again? What a wizard!"" Her emphasis on the word ""wizard"" is filled with derision. ""Make a small effort, would you, to make your Circle proud of you?"" The same horrible emphasis on ""proud"" fills you with revulsion. ""Go!"" You find yourself back in the village."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS9: SET 'CRONE-MOVE,MOVES
|
||||
PRINTI "As you enter, the woman in rags wags her head slowly. ""You've returned, have you? You need help perhaps? Well, I've given you all the help in my meager store. You want more? Leave me!"" You find yourself in the village."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT GLOBAL-CRONE-F
|
||||
EQUAL? PRSA,V?ZIFMIA \?ELS5
|
||||
PRINTR "Slowly, the old woman, swathed in rags, appears before you. She seems to be staring through you and speaks slowly and sullenly: ""I thought I might see you again, my friend! I gave you all the aid that I can. The rest is up to you..."" She disappears."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
||||
PRINTR "The crone was presumably the village wise woman and its last remaining inhabitant."
|
||||
?ELS9: PRINTR "The crone isn't here."
|
||||
|
||||
|
||||
.FUNCT LONG-ROAD-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are walking along the road. It wends its way through low hills, sparse forests, and occasional subsistence farms. To the west, things seem lighter and more pleasant. To the east they seem oppressive and dark. A worn sign sits beside the road here."
|
||||
EQUAL? ROAD-LOC,ROAD-START \?CND8
|
||||
PRINTI " The deserted village is to the east."
|
||||
?CND8: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FARM-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH,V?EXAMINE \FALSE
|
||||
PRINTR "It's a poor, run-down farm, and not of interest."
|
||||
|
||||
|
||||
.FUNCT LONG-ROAD-SIGN-F
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
SUB ROAD-LOC,ROAD-START
|
||||
GRTR? STACK,11 \?ELS10
|
||||
PRINTR "The sign is too worn to be read."
|
||||
?ELS10: PRINTI """"
|
||||
SUB ROAD-LOC,ROAD-START
|
||||
GET SIGN-TBL,STACK
|
||||
PRINT STACK
|
||||
PRINTR """"
|
||||
|
||||
|
||||
.FUNCT LONG-ROAD-EXIT-F
|
||||
EQUAL? ROAD-LOC,ROAD-START \?ELS5
|
||||
EQUAL? PRSO,P?EAST \?ELS5
|
||||
RETURN WEST-FORK
|
||||
?ELS5: FCLEAR LONG-ROAD,TOUCHBIT
|
||||
CALL ROAD-TO-TABLE,ROAD-LOC
|
||||
EQUAL? PRSO,P?WEST \?ELS12
|
||||
INC 'ROAD-LOC
|
||||
JUMP ?CND10
|
||||
?ELS12: EQUAL? PRSO,P?EAST \?CND10
|
||||
DEC 'ROAD-LOC
|
||||
?CND10: CALL TABLE-TO-ROAD,ROAD-LOC
|
||||
RETURN LONG-ROAD
|
||||
|
||||
|
||||
.FUNCT ROAD-TO-TABLE,SLOC,TBL,CNT=0,F,N
|
||||
FIRST? LONG-ROAD >F /?KLU21
|
||||
?KLU21: SET 'TBL,ROAD-TABLE
|
||||
?PRG1: ZERO? F /TRUE
|
||||
NEXT? F >N /?KLU22
|
||||
?KLU22: EQUAL? F,WINNER \?ELS11
|
||||
JUMP ?CND9
|
||||
?ELS11: FSET? F,TAKEBIT \?CND9
|
||||
?PRG14: GET TBL,CNT
|
||||
ZERO? STACK \?ELS18
|
||||
PUT TBL,CNT,SLOC
|
||||
ADD CNT,1
|
||||
PUT TBL,STACK,F
|
||||
ADD CNT,2 >CNT
|
||||
REMOVE F
|
||||
JUMP ?CND9
|
||||
?ELS18: ADD CNT,2 >CNT
|
||||
JUMP ?PRG14
|
||||
?CND9: SET 'F,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT TABLE-TO-ROAD,SLOC,TBL,CNT=0
|
||||
SET 'TBL,ROAD-TABLE
|
||||
?PRG1: LESS? CNT,ROAD-TABLE-LENGTH \TRUE
|
||||
GET TBL,CNT
|
||||
EQUAL? STACK,SLOC \?CND3
|
||||
PUT TBL,CNT,0
|
||||
ADD CNT,1
|
||||
GET TBL,STACK
|
||||
MOVE STACK,LONG-ROAD
|
||||
?CND3: ADD CNT,2 >CNT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT ROAD-F
|
||||
EQUAL? PRSA,V?TAKE,V?FOLLOW \?ELS5
|
||||
PRINTR "You should supply a compass direction in which to follow the path."
|
||||
?ELS5: EQUAL? PRSA,V?DROP \FALSE
|
||||
CALL OUTSIDE?,HERE
|
||||
ZERO? STACK /?ELS14
|
||||
PRINTR "It's much safer to stay on the path, especially in these times."
|
||||
?ELS14: PRINTR "You'll have to give a direction."
|
||||
|
||||
|
||||
.FUNCT HILLS-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The hills are mostly low and shrouded in a fine mist-like haze. They stretch out mainly to the west."
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
|
||||
CALL PERFORM,V?LEAVE,ROAD
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MOUNTAIN-F
|
||||
EQUAL? PRSA,V?LEAP \?ELS5
|
||||
EQUAL? HERE,VISTA \?ELS5
|
||||
CALL JIGS-UP,STR?343
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \?ELS9
|
||||
EQUAL? HERE,VISTA \?ELS14
|
||||
PRINTR "You are here!"
|
||||
?ELS14: EQUAL? HERE,VILLAGE,MOUNTAIN-TRAIL \?ELS18
|
||||
CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS18: PRINTR "There's no way up the mountain from here."
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The mountain is tall and proud, and its shining peak stands above the low-hanging clouds."
|
||||
|
||||
|
||||
.FUNCT OUTSIDE?,RM
|
||||
FSET? RM,LIGHTBIT \FALSE
|
||||
EQUAL? RM,SHACK,INSIDE-GATE /FALSE
|
||||
EQUAL? RM,PEBBLED-PATH,COURTYARD-1 /FALSE
|
||||
EQUAL? RM,COURTYARD-2,COURTYARD-3,COURTYARD-4 /FALSE
|
||||
EQUAL? RM,COURTYARD-5,COURTYARD-6,COURTYARD-7 /FALSE
|
||||
EQUAL? RM,SHACK-ROOM,BEDROOM \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-SCURRY
|
||||
RANDOM 20
|
||||
ADD 15,STACK
|
||||
CALL QUEUE,I-SCURRY,STACK
|
||||
PUT STACK,0,1
|
||||
RANDOM 100
|
||||
GRTR? 25,STACK \FALSE
|
||||
CALL OUTSIDE?,HERE
|
||||
ZERO? STACK /?ELS10
|
||||
LESS? NIGHTFALL,70 \?ELS15
|
||||
RANDOM 100
|
||||
GRTR? 50,STACK \?ELS15
|
||||
PRINTR "You hear noises in the brambles. Snorting noises are followed by loud crashing and finally a hideous squeal of triumph."
|
||||
?ELS15: PRINTR "You hear a rustling in the brambles nearby, and you catch a glimpse of something small and furry as it scurries away."
|
||||
?ELS10: EQUAL? HERE,PIT,REAL-STAIR,PURLOINED-ROOM /FALSE
|
||||
EQUAL? HERE,WARLOCK-TOWER /FALSE
|
||||
GETP HERE,P?TMAZE
|
||||
ZERO? STACK \FALSE
|
||||
LOC WINNER
|
||||
EQUAL? STACK,DUNGEON,NORTH-CELL /?THN32
|
||||
LOC WINNER
|
||||
EQUAL? STACK,SECRET-PASSAGE \?ELS31
|
||||
?THN32: PRINTR "You hear, almost beyond your hearing, the soft rattle of chains, and a cold wind blows over the back of your neck."
|
||||
?ELS31: GRTR? TOD,NIGHTFALL \?ELS37
|
||||
CALL PICK-ONE,NIGHT-GLIMPSES
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS37: CALL PICK-ONE,GLIMPSES
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT GLIMPSE-F
|
||||
GRTR? MOVES,0 \?ELS5
|
||||
PRINTR "You can't see that anymore."
|
||||
?ELS5: PRINTR "You see no such thing."
|
||||
|
||||
.ENDI
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
51
parser.zil
51
parser.zil
|
@ -41,7 +41,6 @@
|
|||
<GLOBAL P-CONT <>>
|
||||
|
||||
<GLOBAL P-IT-OBJECT <>>
|
||||
<GLOBAL P-IT-LOC <>>
|
||||
|
||||
;"Orphan flag"
|
||||
|
||||
|
@ -635,7 +634,7 @@ or creatures." CR>
|
|||
<TELL "the ">)>
|
||||
<COND (<OR ,P-OFLAG ,P-MERGED> <PRINTB .WRD>)
|
||||
(<AND <==? .WRD ,W?IT>
|
||||
<==? ,P-IT-LOC ,HERE>>
|
||||
<ACCESSIBLE? ,P-IT-OBJECT>>
|
||||
<PRINTD ,P-IT-OBJECT>)
|
||||
(T
|
||||
<WORD-PRINT <GETB .BEG 2>
|
||||
|
@ -993,6 +992,8 @@ or creatures." CR>
|
|||
<RETURN>)>>>
|
||||
|
||||
|
||||
<GLOBAL LAST-PSEUDO-LOC <>>
|
||||
|
||||
<ROUTINE GLOBAL-CHECK (TBL "AUX" LEN RMG RMGL (CNT 0) OBJ OBITS FOO)
|
||||
#DECL ((TBL) TABLE (RMG) <OR FALSE TABLE> (RMGL CNT) FIX (OBJ) OBJECT)
|
||||
<SET LEN <GET .TBL ,P-MATCHLEN>>
|
||||
|
@ -1008,6 +1009,7 @@ or creatures." CR>
|
|||
<SET CNT 0>
|
||||
<REPEAT ()
|
||||
<COND (<==? ,P-NAM <GET .RMG <* .CNT 2>>>
|
||||
<SETG LAST-PSEUDO-LOC ,HERE>
|
||||
<PUTP ,PSEUDO-OBJECT
|
||||
,P?ACTION
|
||||
<GET .RMG <+ <* .CNT 2> 1>>>
|
||||
|
@ -1086,7 +1088,13 @@ or creatures." CR>
|
|||
<COND (<L? <SET PTR <- .PTR 1>> 0> <RETURN>)
|
||||
(T
|
||||
<SET OBJ <GET .TBL <+ .PTR 1>>>
|
||||
<COND (<==? .OBJ ,IT> <SET OBJ ,P-IT-OBJECT>)>
|
||||
<COND (<==? .OBJ ,IT>
|
||||
<COND (<NOT <ACCESSIBLE? ,P-IT-OBJECT>>
|
||||
<TELL
|
||||
"I don't see what you're referring to." CR>
|
||||
<RFALSE>)
|
||||
(T
|
||||
<SET OBJ ,P-IT-OBJECT>)>)>
|
||||
<COND (<NOT <IN? .OBJ ,WINNER>>
|
||||
<SETG PRSO .OBJ>
|
||||
<COND (<FSET? .OBJ ,TRYTAKEBIT>
|
||||
|
@ -1186,3 +1194,40 @@ or creatures." CR>
|
|||
<==? <GET <SET PTR <GET ,P-ITBL ,P-NC2>> 0> ,W?IT>>
|
||||
<TELL " " D ,PRSO>)
|
||||
(T <BUFFER-PRINT .PTR <GET ,P-ITBL ,P-NC2L> <>>)>>
|
||||
|
||||
<ROUTINE ACCESSIBLE? (OBJ "AUX" (L <LOC .OBJ>)) ;"can player TOUCH object?"
|
||||
;"revised 5/2/84 by SEM and SWG"
|
||||
<COND (<FSET? .OBJ ,INVISIBLE>
|
||||
<RFALSE>)
|
||||
;(<EQUAL? .OBJ ,PSEUDO-OBJECT>
|
||||
<COND (<EQUAL? ,LAST-PSEUDO-LOC ,HERE>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>)
|
||||
(<NOT .L>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .L ,GLOBAL-OBJECTS>
|
||||
<RTRUE>)
|
||||
(<AND <EQUAL? .L ,LOCAL-GLOBALS>
|
||||
<GLOBAL-IN? .OBJ ,HERE>>
|
||||
<RTRUE>)
|
||||
(<NOT <EQUAL? <META-LOC .OBJ> ,HERE <LOC ,WINNER>>>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .L ,WINNER ,HERE <LOC ,WINNER>>
|
||||
<RTRUE>)
|
||||
(<AND <FSET? .L ,OPENBIT>
|
||||
<ACCESSIBLE? .L>>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE META-LOC (OBJ)
|
||||
<REPEAT ()
|
||||
<COND (<NOT .OBJ>
|
||||
<RFALSE>)
|
||||
(<IN? .OBJ ,GLOBAL-OBJECTS>
|
||||
<RETURN ,GLOBAL-OBJECTS>)>
|
||||
<COND (<IN? .OBJ ,ROOMS>
|
||||
<RETURN .OBJ>)
|
||||
(T
|
||||
<SET OBJ <LOC .OBJ>>)>>>
|
||||
|
|
|
@ -0,0 +1,775 @@
|
|||
|
||||
|
||||
.FUNCT MAPS-F
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
PRINTR "Most of the maps are murals painted onto the walls. The others are securely mounted."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The maps on the walls were made in the Elder days, when the face of the earth was different. You can recognize the ancient cities of Galepath and Mareilon on the shores of the Sea from your legends class at the University, but you have trouble discerning any other places. One map shows a proud castle standing on a cliff rising above the Sea. Largoneth it was, the once-proud home of Entharion the Wise, King of Quendor. As you realize that this place was the King's Map Room, you are filled with wonder at the ancient days."
|
||||
|
||||
|
||||
.FUNCT ENTHARION-F
|
||||
EQUAL? PRSA,V?WHO,V?EXAMINE \?ELS5
|
||||
PRINTR "You can remember little of the legends of Entharion the Wise. Perhaps you should have paid more attention in Legends class."
|
||||
?ELS5: EQUAL? PRSA,V?ZIFMIA \FALSE
|
||||
PRINTR "Poor Entharion, he's been dead these many years. You would need more than a summoning spell to get him here."
|
||||
|
||||
|
||||
.FUNCT GLOBE-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The globe represents the world as it was thought to be in the ancient days. Very little can be recognized of the seas or land masses."
|
||||
|
||||
|
||||
.FUNCT PEDESTAL-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "A globe is sitting on it."
|
||||
|
||||
|
||||
.FUNCT PURLOINED-ROOM-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
ZERO? DOOR-ILLUSION-GONE \?ELS10
|
||||
PRINTI "A more incongruous place than this would be difficult to believe. The room itself is nothing more than a small room at the base of the northeast tower with a narrow passageway entering from the west. Standing in front of you to the north, however, is a door surpassing anything you could have imagined. For starters, its massive lock is wrapped in a dozen six-inch thick iron chains. In addition, a certain five-headed monster sporting razor-sharp spears for tongues seems to be imbedded within its heavy oak frame. One is almost embarrassed to mention the gargoyles spewing flame and sulphurous ash which ornament either side of the door, or the ninety-seven slimy groping tentacles which taunt you ever closer to certain death. A sign, floating serenely above the door and glowing hideously in purple letters, offers the following rude understatement: "
|
||||
GETP FLOATING-SIGN,P?TEXT
|
||||
PRINT STACK
|
||||
PRINTR "."
|
||||
?ELS10: PRINTI "This rather unobtrusive room at the base of the northwest tower sports a small passageway to the west and a small, rickety door to the north which is "
|
||||
FSET? DOOR-REALITY,OPENBIT \?ELS21
|
||||
PRINTI "open"
|
||||
JUMP ?CND19
|
||||
?ELS21: PRINTI "closed"
|
||||
?CND19: PRINTR "."
|
||||
?ELS5: EQUAL? RARG,M-BEG \FALSE
|
||||
EQUAL? PRSA,V?WALK \FALSE
|
||||
EQUAL? PRSO,P?UP,P?NORTH \FALSE
|
||||
ZERO? DOOR-ILLUSION-GONE \FALSE
|
||||
EQUAL? WINNER,PLAYER \?ELS38
|
||||
CALL PERFORM,V?OPEN,DOOR-ILLUSION
|
||||
RTRUE
|
||||
?ELS38: PRINTR """I'd like to, but the door's closed."""
|
||||
|
||||
|
||||
.FUNCT DOOR-ILLUSION-F
|
||||
ZERO? DOOR-ILLUSION-GONE \FALSE
|
||||
EQUAL? PRSA,V?KULCAD \?ELS10
|
||||
PRINTI "As the last syllable of the kulcad spell echoes through the chamber, the door itself seems to dissolve. Slowly at first, then quickly, each of its rather unlovely ornaments turns pale, then transparent, then - nothing! What remains is a simple, wooden door which is standing shut. You move hesitantly toward the door. Nothing. You pause for a moment to regain your composure."
|
||||
CRLF
|
||||
SET 'DOOR-KULCAD,TRUE-VALUE
|
||||
FSET DOOR-ILLUSION,INVISIBLE
|
||||
FCLEAR DOOR-REALITY,INVISIBLE
|
||||
FCLEAR DOOR-REALITY,OPENBIT
|
||||
FCLEAR DOOR-REALITY,LOCKEDBIT
|
||||
SET 'DOOR-ILLUSION-GONE,TRUE-VALUE
|
||||
REMOVE MONSTERS-1
|
||||
REMOVE MONSTERS-2
|
||||
REMOVE MONSTERS-3
|
||||
RTRUE
|
||||
?ELS10: EQUAL? PRSA,V?SHOW \?ELS14
|
||||
EQUAL? PRSI,ADVENTURER \?ELS14
|
||||
CALL PERFORM,V?POINT,PRSO
|
||||
RTRUE
|
||||
?ELS14: EQUAL? PRSA,V?POINT \?ELS18
|
||||
IN? ADVENTURER,HERE \?ELS18
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
ZERO? ADVENTURER-CHARMED /?ELS25
|
||||
PRINTI "As you motion toward the monstrous door, the adventurer follows the imaginary line which proceeds thence from your outstretched arm."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL NO-ILLUSIONS
|
||||
RTRUE
|
||||
?ELS25: PRINTR "The adventurer seems frightened, and he backs up toward the door."
|
||||
?ELS18: EQUAL? PRSA,V?UNLOCK,V?RUB,V?OPEN /?THN35
|
||||
EQUAL? PRSA,V?ATTACK,V?KILL,V?MUNG /?THN35
|
||||
EQUAL? PRSA,V?KNOCK \?ELS34
|
||||
?THN35: IGRTR? 'BEATEN-UP,4 \?CND37
|
||||
CALL JIGS-UP,STR?132
|
||||
RTRUE
|
||||
?CND37: CALL PICK-ONE,ILLUSION-HACKS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
CALL PICK-ONE,SIGN-TEXTS
|
||||
PUTP FLOATING-SIGN,P?TEXT,STACK
|
||||
RTRUE
|
||||
?ELS34: EQUAL? PRSA,V?REZROV \FALSE
|
||||
PRINTR "As you cast the rezrov spell, the door shudders briefly, and a few tentacles pause in their unending motion. The two gargoyles look at each other, perplexed. After a tense moment, the sign above the door flashes briefly: ""Fat Chance""."
|
||||
|
||||
|
||||
.FUNCT MIRROR-F
|
||||
FSET? HERE,NDESCBIT \?ELS5
|
||||
EQUAL? PRSA,V?KREBF \?ELS10
|
||||
FCLEAR HERE,NDESCBIT
|
||||
PRINTR "Shards of glass fly into the air, solving a jigsaw puzzle of a million pieces. The mirror is repaired!"
|
||||
?ELS10: PRINTR "There's no mirror left here after the way you treated it."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?ELS18
|
||||
PRINTI "The scene behind the ""mirror"" is an underground landscape."
|
||||
FSET? ADVENTURER-LG,INVISIBLE /?CND21
|
||||
PRINTI " A weary adventurer is standing there, dejected."
|
||||
?CND21: CRLF
|
||||
RTRUE
|
||||
?ELS18: EQUAL? PRSA,V?ATTACK,V?MUNG \FALSE
|
||||
PRINTI "The mirror here smashes into tiny shards. Behind the mirror is a bare rock wall."
|
||||
CRLF
|
||||
CALL NO-MORE-ADVENTURER
|
||||
FSET HERE,NDESCBIT
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SHARDS-F
|
||||
FSET? HERE,NDESCBIT /?ELS5
|
||||
PRINTR "There are no shards of glass here...yet."
|
||||
?ELS5: EQUAL? PRSA,V?PUT,V?MOVE,V?TAKE /?THN10
|
||||
EQUAL? PRSA,V?RUB \FALSE
|
||||
?THN10: PRINTR "You would slice your fingers on them."
|
||||
|
||||
|
||||
.FUNCT MIRROR-HALL-F,RARG,RM
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
GETP HERE,P?COUNT >RM
|
||||
GET MIRROR-HALL-TBL1,RM
|
||||
PRINT STACK
|
||||
FSET? HERE,NDESCBIT \?ELS10
|
||||
PRINTI " Hall of Mirrors. Where there used to be a large mirror mounted on the wall is only an empty frame. Shards of mirror cover the floor."
|
||||
CRLF
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI " Hall of Mirrors. The hall itself is astounding and not a little bit confusing. To be sure, its northern wall is glass, but it does not seem to reflect anything within the hall. Rather, it seems to be a window on another world. This other world appears to be a large underground labyrinth, filled with tunnels, caves, and peculiar rock formations."
|
||||
CRLF
|
||||
?CND8: ZERO? ADVENTURER-LOC /FALSE
|
||||
CALL DESCRIBE-ADVENTURER
|
||||
RSTACK
|
||||
?ELS5: EQUAL? RARG,M-ENTER \?ELS24
|
||||
MOVE GLOBAL-ADVENTURER,GLOBAL-OBJECTS
|
||||
RFALSE
|
||||
?ELS24: EQUAL? RARG,M-END \FALSE
|
||||
FSET? HERE,NDESCBIT /FALSE
|
||||
ZERO? ADVENTURER-SUMMONED \FALSE
|
||||
FSET? ADVENTURER-LG,INVISIBLE \FALSE
|
||||
RANDOM 100
|
||||
GRTR? 15,STACK \FALSE
|
||||
SET 'ADVENTURER-LOC,HERE
|
||||
CALL QUEUE,I-LG-ADVENTURER,-1
|
||||
PUT STACK,0,1
|
||||
PRINTI "From the other side of the ""mirror"" a bedraggled adventurer comes into view, carrying a brass lantern and an elvish sword, which is glowing dimly. He stops and stares in your direction."
|
||||
CRLF
|
||||
SET 'ADVENTURER-SEEN,TRUE-VALUE
|
||||
FCLEAR ADVENTURER-LG,INVISIBLE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MIRROR-STUFF-F
|
||||
FSET? HERE,NDESCBIT \?ELS5
|
||||
CALL GLOBAL-NOT-HERE-PRINT,MIRROR-STUFF
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The scene is an underground world, quite dissimilar from your own."
|
||||
|
||||
|
||||
.FUNCT NO-MORE-ADVENTURER
|
||||
FSET ADVENTURER-LG,INVISIBLE
|
||||
SET 'ADVENTURER-LOC,FALSE-VALUE
|
||||
CALL QUEUE,I-LG-ADVENTURER,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-LG-ADVENTURER
|
||||
ZERO? ADVENTURER-SUMMONED \?THN6
|
||||
EQUAL? HERE,ADVENTURER-LOC /?ELS5
|
||||
?THN6: CALL NO-MORE-ADVENTURER
|
||||
RFALSE
|
||||
?ELS5: RANDOM 100
|
||||
GRTR? 25,STACK \FALSE
|
||||
PRINTI "The adventurer, after checking his compass, walks off."
|
||||
CRLF
|
||||
CALL NO-MORE-ADVENTURER
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DESCRIBE-ADVENTURER
|
||||
PRINTI "A bedraggled adventurer, carrying a brass lantern and a dimly glowing elvish sword, can be seen through the ""mirror"". He "
|
||||
CALL PICK-ONE,ADVENTURER-FEEBLES
|
||||
PRINT STACK
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT GLOBAL-ADVENTURER-F
|
||||
EQUAL? PRSA,V?ZIFMIA \?ELS5
|
||||
CALL NO-ZIF
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?FOLLOW \?ELS7
|
||||
ZERO? ADVENTURER-SUMMONED /?ELS7
|
||||
EQUAL? ADV-OLD-LOC,HERE \?ELS14
|
||||
CALL GOTO,ADV-NEW-LOC
|
||||
RTRUE
|
||||
?ELS14: PRINTR "You have lost track of him."
|
||||
?ELS7: CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-ADVENTURER
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-LG-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
CALL DESCRIBE-ADVENTURER
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?WAVE-AT \?ELS7
|
||||
PRINTR "He doesn't seem to notice your gesture."
|
||||
?ELS7: EQUAL? PRSA,V?ZIFMIA \?ELS11
|
||||
PRINTI "All at once, the bedraggled adventurer appears before you, brightly glowing sword in hand. His jaw has dropped and his eyes are bulging. His eyes dart this way and that, as if looking for a way to escape."
|
||||
CRLF
|
||||
ADD SCORE,SUMMON-POINT >SCORE
|
||||
SET 'SUMMON-POINT,0
|
||||
MOVE ADVENTURER,HERE
|
||||
SET 'ADVENTURER-SUMMONED,TRUE-VALUE
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
CALL QUEUE,I-ADVENTURER,-1
|
||||
PUT STACK,0,1
|
||||
CALL THIS-IS-IT,ADVENTURER
|
||||
RTRUE
|
||||
?ELS11: EQUAL? PRSA,V?CLEESH \?ELS15
|
||||
PRINTR "The spell has no effect, perhaps because he isn't here."
|
||||
?ELS15: EQUAL? PRSA,V?GUNCHO \FALSE
|
||||
PRINTI "Behind the ""mirror"", the luckless adventurer seems to fade away. He shimmers briefly and then vanishes without a trace."
|
||||
CRLF
|
||||
CALL NO-MORE-ADVENTURER
|
||||
SET 'ADVENTURER-SUMMONED,TRUE-VALUE
|
||||
RETURN ADVENTURER-SUMMONED
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-C
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
CALL PERFORM,V?ASK-FOR,ADVENTURER,PRSO
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?READ \FALSE
|
||||
ZERO? ADVENTURER-CHARMED \?ELS12
|
||||
PRINTR "The adventurer pulls back as you approach."
|
||||
?ELS12: PRINTI "The adventurer moves closer so that you might read it."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-D,RARG
|
||||
PRINTI "There is a bedraggled and weary adventurer standing here. He is carrying "
|
||||
CALL PRINT-CONTENTS,ADVENTURER
|
||||
ZERO? ADVENTURER-CHARMED /?CND3
|
||||
PRINTI ". He seems pleased to see you and frequently smiles in your direction"
|
||||
?CND3: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT SWORD-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The sword is of elvish workmanship and is glowing brightly."
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-ACTOR
|
||||
EQUAL? PRSA,V?FOLLOW \?ELS5
|
||||
ZERO? ADVENTURER-CHARMED /?ELS10
|
||||
PRINTR """Sorry, but I've got better things to do than follow you."""
|
||||
?ELS10: PRINTR """I'd sooner follow Dimwit Flathead!"""
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS19
|
||||
ZERO? ADVENTURER-CHARMED \?ELS24
|
||||
PRINTR "He glances suspiciously at it."
|
||||
?ELS24: EQUAL? PRSO,DOOR-ILLUSION \?ELS28
|
||||
PRINTR """It's a door."""
|
||||
?ELS28: PRINTI """It's "
|
||||
CALL PRINTA,PRSO
|
||||
PRINTR "."""
|
||||
?ELS19: EQUAL? PRSA,V?THROUGH,V?OPEN \?ELS36
|
||||
EQUAL? PRSO,DOOR-ILLUSION \?ELS36
|
||||
ZERO? ADVENTURER-CHARMED /?ELS43
|
||||
SET 'WINNER,PLAYER
|
||||
LOC WINNER >HERE
|
||||
CALL PERFORM,V?POINT,DOOR-ILLUSION
|
||||
RTRUE
|
||||
?ELS43: PRINTR "The adventurer looks at you suspiciously. ""Can't you open it yourself?"""
|
||||
?ELS36: EQUAL? PRSA,V?HELLO \?ELS50
|
||||
ZERO? ADVENTURER-CHARMED /?ELS55
|
||||
PRINTR """Hello. Nice to meet you."""
|
||||
?ELS55: ZERO? PRSO /?ELS60
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " steps away from you."
|
||||
?ELS60: PRINTR "The adventurer steps warily away."
|
||||
?ELS50: EQUAL? PRSA,V?UNTIE \?ELS69
|
||||
EQUAL? PRSO,MAGIC-ROPE \?ELS69
|
||||
ZERO? ADVENTURER-CHARMED /?ELS69
|
||||
PRINTR "The adventurer tries to untie the rope, but he only becomes entangled. He gives up and glares suspiciously at you."
|
||||
?ELS69: EQUAL? PRSA,V?ATTACK,V?MUNG \?ELS75
|
||||
EQUAL? PRSO,DOOR-ILLUSION \?ELS75
|
||||
PRINTR "He pauses as if searching for the right thing to say. ""I've known strange people, but fighting a wooden door?"""
|
||||
?ELS75: EQUAL? PRSA,V?MUNG,V?CUT \?ELS81
|
||||
EQUAL? PRSO,MAGIC-ROPE \?ELS81
|
||||
ZERO? ADVENTURER-CHARMED \?ELS88
|
||||
PRINTR """Not bloody likely! There's magic there!"""
|
||||
?ELS88: ZERO? ROPE-MAGIC? \?ELS92
|
||||
CALL ROPE-DISSOLVES
|
||||
MOVE JEWELLED-BOX,ADVENTURER
|
||||
LOC ADVENTURER
|
||||
MOVE PROTECTION-SCROLL,STACK
|
||||
PRINTR "The adventurer draws his sword and slices the rope cleanly into so much fluff. He opens the box, revealing a scroll! He drops this on the ground disdainfully but retains the box."
|
||||
?ELS92: ZERO? PRSI /?THN97
|
||||
EQUAL? PRSI,SWORD \?ELS96
|
||||
?THN97: PRINTR """Ooo! Nice idea!"" He slashes at the rope with his sword, but to no avail. The rope is impervious to the magic of this weapon! He looks crestfallen."
|
||||
?ELS96: PRINTR """I doubt that would work."""
|
||||
?ELS81: EQUAL? PRSA,V?SSHOW,V?SGIVE /FALSE
|
||||
EQUAL? PRSA,V?SHOW,V?GIVE \?ELS108
|
||||
EQUAL? PRSI,ME \?ELS108
|
||||
EQUAL? PRSA,V?GIVE \?ELS113
|
||||
CALL PERFORM,V?ASK-FOR,ADVENTURER,PRSO
|
||||
RTRUE
|
||||
?ELS113: ZERO? ADVENTURER-CHARMED /?ELS115
|
||||
PRINTI "The "
|
||||
PRINTD ADVENTURER
|
||||
PRINTI " allows you a quick look at the "
|
||||
PRINTD PRSO
|
||||
PRINTR "."
|
||||
?ELS115: PRINTI "The "
|
||||
PRINTD ADVENTURER
|
||||
PRINTR " gives you a suspicious look and attempts to conceal his possessions."
|
||||
?ELS108: PRINTR """I'll do what I please, thank you."""
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-F
|
||||
EQUAL? WINNER,ADVENTURER \?ELS5
|
||||
CALL ADVENTURER-ACTOR
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?WAVE-AT \?ELS7
|
||||
ZERO? ADVENTURER-CHARMED /?ELS12
|
||||
PRINTR "The adventurer waves right back."
|
||||
?ELS12: PRINTR "The adventurer steps back a few paces."
|
||||
?ELS7: EQUAL? PRSA,V?FOLLOW \?ELS21
|
||||
PRINTR "He's right here!"
|
||||
?ELS21: EQUAL? PRSA,V?KILL,V?ATTACK \?ELS25
|
||||
SET 'ADVENTURER-CHARMED,FALSE-VALUE
|
||||
CALL JIGS-UP,STR?150
|
||||
RSTACK
|
||||
?ELS25: EQUAL? PRSA,V?NITFOL \?ELS27
|
||||
PRINTR "He already speaks your language, but now a bit better."
|
||||
?ELS27: EQUAL? PRSA,V?GUNCHO \?ELS31
|
||||
PRINTI "The adventurer blurs as though you were seeing him from a distance, wavers like a mirage, and then vanishes."
|
||||
CRLF
|
||||
REMOVE ADVENTURER
|
||||
CALL QUEUE,I-ADVENTURER,0
|
||||
RSTACK
|
||||
?ELS31: EQUAL? PRSA,V?FROTZ \?ELS35
|
||||
PRINTI "The adventurer is now bathed in light, much to his amazement."
|
||||
CRLF
|
||||
SET 'ADVENTURER-CHARMED,FALSE-VALUE
|
||||
FSET ADVENTURER,LIGHTBIT
|
||||
FSET ADVENTURER,ONBIT
|
||||
RTRUE
|
||||
?ELS35: EQUAL? PRSA,V?VAXUM \?ELS39
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
SET 'ADVENTURER-CHARMED,TRUE-VALUE
|
||||
CALL QUEUE,I-ADVENTURER-UNCHARM,20
|
||||
PUT STACK,0,1
|
||||
PRINTR "The adventurer smiles at you with an air of good will."
|
||||
?ELS39: EQUAL? PRSA,V?HELLO \?ELS43
|
||||
ZERO? ADVENTURER-CHARMED /?ELS48
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " waves back and says ""Hello!"""
|
||||
?ELS48: PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " keeps his distance, eyeing you cautiously."
|
||||
?ELS43: EQUAL? PRSA,V?SEARCH \?ELS57
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " isn't inclined to allow himself to be searched."
|
||||
?ELS57: EQUAL? PRSA,V?MUNG \?ELS61
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " dodges your blow and becomes very wary of you."
|
||||
CRLF
|
||||
SET 'ADVENTURER-CHARMED,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS61: EQUAL? PRSA,V?GIVE \?ELS65
|
||||
EQUAL? PRSI,ADVENTURER \?ELS65
|
||||
ZERO? ADVENTURER-CHARMED \?ELS72
|
||||
PRINTI "The "
|
||||
PRINTD PRSI
|
||||
PRINTI " eyes you suspiciously. Why, he thinks, is this sorcerer handing me something"
|
||||
FSET? PRSO,TREASURE \?CND75
|
||||
PRINTI ", especially something valuable"
|
||||
?CND75: PRINTR "?"
|
||||
?ELS72: ZERO? SAILOR? /?ELS83
|
||||
SUB MOVES,SAILOR?
|
||||
LESS? STACK,2 \?ELS83
|
||||
MOVE PRSO,ADVENTURER
|
||||
PRINTI "A wide smile comes over his face as he takes the "
|
||||
PRINTD PRSO
|
||||
PRINTR ", as though your action resolved for him some great mystery."
|
||||
?ELS83: FSET? PRSO,TREASURE \?ELS89
|
||||
PRINTI "The "
|
||||
PRINTD PRSI
|
||||
PRINTI " gratefully accepts the offer of the "
|
||||
PRINTD PRSO
|
||||
PRINTI ". He is fascinated by its beauty and stops to thank you."
|
||||
CRLF
|
||||
MOVE PRSO,ADVENTURER
|
||||
RTRUE
|
||||
?ELS89: PRINTI "The "
|
||||
PRINTD PRSI
|
||||
PRINTR " refuses your offer politely."
|
||||
?ELS65: EQUAL? PRSA,V?SHOW \?ELS97
|
||||
EQUAL? PRSI,ADVENTURER \?ELS97
|
||||
ZERO? ADVENTURER-CHARMED \?ELS104
|
||||
PRINTR "He ignores you pointedly."
|
||||
?ELS104: EQUAL? PRSO,DOOR-ILLUSION /FALSE
|
||||
FSET? PRSO,TREASURE \?ELS110
|
||||
PRINTI "His eyes light up at the sight of the "
|
||||
PRINTD PRSO
|
||||
PRINTI "."
|
||||
CRLF
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
RETURN ADVENTURER-STAY
|
||||
?ELS110: PRINTR "He yawns briefly, indicating his disinterest."
|
||||
?ELS97: EQUAL? PRSA,V?TAKE \FALSE
|
||||
EQUAL? PRSI,ADVENTURER \FALSE
|
||||
CALL PERFORM,V?ASK-FOR,PRSI,PRSO
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-ADVENTURER-UNCHARM
|
||||
SET 'ADVENTURER-CHARMED,FALSE-VALUE
|
||||
IN? ADVENTURER,HERE \FALSE
|
||||
PRINTR "The adventurer looks at you as if seeing you for the first time. It's not clear that he likes what he sees, either."
|
||||
|
||||
|
||||
.FUNCT I-ADVENTURER,L,NL
|
||||
LOC ADVENTURER >L
|
||||
FSET? L,ONBIT \?ELS3
|
||||
FCLEAR LANTERN,ONBIT
|
||||
JUMP ?CND1
|
||||
?ELS3: FSET LANTERN,ONBIT
|
||||
?CND1: INC 'ADVENTURER-MOVE
|
||||
ZERO? ADVENTURER-MOVE /TRUE
|
||||
GETP L,P?ADVFCN
|
||||
CALL STACK
|
||||
ZERO? STACK \TRUE
|
||||
ZERO? ADVENTURER-STAY /?ELS14
|
||||
SET 'ADVENTURER-STAY,FALSE-VALUE
|
||||
EQUAL? HERE,L \FALSE
|
||||
ZERO? ADVENTURER-CHARMED /FALSE
|
||||
PRINTI "The adventurer"
|
||||
CALL PICK-ONE,ADVENTURER-LOITERS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS14: EQUAL? L,MIRROR-HALL-1,MIRROR-HALL-2,MIRROR-HALL-3 /?THN27
|
||||
EQUAL? L,MIRROR-HALL-4,NORTH-GATE \?ELS26
|
||||
?THN27: CALL NEXT-HALL,L,TRUE-VALUE >NL
|
||||
CALL TREASURE-HERE?,NL
|
||||
ZERO? STACK /?ELS33
|
||||
CALL MOVE-ADVENTURER,NL
|
||||
RSTACK
|
||||
?ELS33: LESS? ADVENTURER-MOVE,5 \?ELS35
|
||||
CALL NEXT-HALL,L,FALSE-VALUE
|
||||
CALL MOVE-ADVENTURER,STACK
|
||||
RSTACK
|
||||
?ELS35: CALL ADVENTURER-DECIDE,L
|
||||
RSTACK
|
||||
?ELS26: RANDOM 100
|
||||
GRTR? 25,STACK \?ELS39
|
||||
EQUAL? HERE,L \?ELS39
|
||||
PRINTI "The adventurer "
|
||||
ZERO? ADVENTURER-CHARMED /?ELS48
|
||||
ZERO? SAILOR? \?ELS54
|
||||
RANDOM 100
|
||||
GRTR? 16,STACK \?ELS54
|
||||
SET 'SAILOR?,MOVES
|
||||
PRINTR "waves at you and asks ""Hello, Sailor?"" Strange, you've never even been to sea."
|
||||
?ELS54: CALL PICK-ONE,ADVENTURER-NICE
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS48: CALL PICK-ONE,ADVENTURER-QUIPS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS39: CALL ADVENTURER-TAKE,L
|
||||
ZERO? STACK /?ELS68
|
||||
SET 'ADVENTURER-STAY,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS68: ZERO? ADV-HASTE \?ELS73
|
||||
EQUAL? HASTED?,ADVENTURER \?ELS73
|
||||
SET 'ADV-HASTE,TRUE-VALUE
|
||||
CALL ADVENTURER-DECIDE,L
|
||||
CALL I-ADVENTURER
|
||||
RTRUE
|
||||
?ELS73: SET 'ADV-HASTE,FALSE-VALUE
|
||||
CALL ADVENTURER-DECIDE,L
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MOVE-ADVENTURER,RM,L,CNT=0,OBJ,DIR
|
||||
LOC ADVENTURER >L
|
||||
EQUAL? L,NORTH-GATE \?ELS3
|
||||
EQUAL? RM,PURLOINED-ROOM \?ELS3
|
||||
CALL TREASURE-HERE?,RM
|
||||
ZERO? STACK \?ELS3
|
||||
FSET PURLOINED-ROOM,VILLAIN
|
||||
EQUAL? HERE,L \TRUE
|
||||
PRINTR "The adventurer starts toward the east but, seeing nothing of interest, changes his mind."
|
||||
?ELS3: EQUAL? RM,TEMPLE \?ELS12
|
||||
EQUAL? HERE,L \?CND13
|
||||
PRINTI "The adventurer looks as if he might go into the temple, but then he thinks better of it."
|
||||
CRLF
|
||||
?CND13: FSET TEMPLE,VILLAIN
|
||||
RTRUE
|
||||
?ELS12: EQUAL? RM,T-A \?ELS19
|
||||
EQUAL? HERE,L \?CND20
|
||||
PRINTI "The adventurer starts to descend further, but chickens out. He won't make Dungeon Master at that rate!"
|
||||
CRLF
|
||||
?CND20: FSET T-A,VILLAIN
|
||||
SET 'RM,DIM-DESCENT
|
||||
JUMP ?CND1
|
||||
?ELS19: EQUAL? RM,WEST-CASTLE \?CND1
|
||||
EQUAL? HERE,L \?CND27
|
||||
PRINTI "The adventurer peers through the gate, but he decides against passing through."
|
||||
CRLF
|
||||
?CND27: FSET WEST-CASTLE,VILLAIN
|
||||
SET 'RM,COURTYARD-1
|
||||
?CND1: EQUAL? HERE,L \?ELS34
|
||||
PRINTI "The adventurer "
|
||||
EQUAL? HASTED?,ADVENTURER \?ELS39
|
||||
PRINTI "rockets out of"
|
||||
JUMP ?CND37
|
||||
?ELS39: PRINTI "leaves"
|
||||
?CND37: PRINTI " the room"
|
||||
CALL DOOR-FROM?,L,RM >OBJ
|
||||
ZERO? OBJ /?CND48
|
||||
PRINTI " through the "
|
||||
PRINTD OBJ
|
||||
?CND48: PRINTI ", heading "
|
||||
CALL DIR-FROM,L,RM >DIR
|
||||
EQUAL? DIR,P?UP,P?DOWN /?CND55
|
||||
PRINTI "to "
|
||||
?CND55: CALL DIR-PRINT,DIR
|
||||
SET 'ADV-NEW-LOC,RM
|
||||
SET 'ADV-OLD-LOC,L
|
||||
PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND32
|
||||
?ELS34: EQUAL? HERE,RM \?CND32
|
||||
EQUAL? HERE,PURLOINED-ROOM \?ELS66
|
||||
FSET? MAP-ROOM,VILLAIN /?ELS66
|
||||
CALL TREASURE-HERE?,HERE
|
||||
ZERO? STACK /?ELS66
|
||||
PRINTI "An adventurer peeks into the room, sees the "
|
||||
CALL TREASURE-HERE?,HERE
|
||||
PRINTD STACK
|
||||
PRINTI ", and enters."
|
||||
CRLF
|
||||
JUMP ?CND32
|
||||
?ELS66: PRINTI "A bedraggled adventurer "
|
||||
EQUAL? HASTED?,ADVENTURER \?ELS77
|
||||
PRINTI "speeds"
|
||||
JUMP ?CND75
|
||||
?ELS77: PRINTI "walks"
|
||||
?CND75: PRINTI " into the room from "
|
||||
CALL DIR-FROM,RM,L
|
||||
CALL DIR-PRINT,STACK
|
||||
CALL DOOR-FROM?,RM,L >OBJ
|
||||
ZERO? OBJ /?CND86
|
||||
PRINTI ", coming through the "
|
||||
PRINTD OBJ
|
||||
?CND86: PRINTI "."
|
||||
CRLF
|
||||
?CND32: MOVE ADVENTURER,RM
|
||||
FSET RM,VILLAIN
|
||||
EQUAL? RM,PURLOINED-ROOM /FALSE
|
||||
CALL ADVENTURER-TAKE,RM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DOOR-FROM?,HERE,THERE,P,L,TX
|
||||
SET 'P,0
|
||||
?PRG1: NEXTP HERE,P >P
|
||||
ZERO? P /FALSE
|
||||
LESS? P,LOW-DIRECTION /?PRG1
|
||||
GETPT HERE,P >TX
|
||||
PTSIZE TX >L
|
||||
EQUAL? L,DEXIT \?PRG1
|
||||
GETB TX,REXIT
|
||||
EQUAL? STACK,THERE \?PRG1
|
||||
GETB TX,DEXITOBJ
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-TAKE,RM,F,N,TR=0,CNT=0,OBJ
|
||||
FIRST? RM >F /?KLU47
|
||||
?KLU47:
|
||||
?PRG1: ZERO? F \?ELS5
|
||||
JUMP ?REP2
|
||||
?ELS5: NEXT? F >N /?KLU48
|
||||
?KLU48: FSET? F,TAKEBIT \?CND8
|
||||
FSET? F,INVISIBLE /?CND8
|
||||
EQUAL? F,STRONG-BOX /?CND8
|
||||
FSET? F,TREASURE /?THN13
|
||||
RANDOM 100
|
||||
GRTR? 25,STACK \?CND8
|
||||
?THN13: GETP F,P?ADVFCN
|
||||
CALL STACK
|
||||
ZERO? STACK \?CND8
|
||||
MOVE F,ADVENTURER
|
||||
INC 'CNT
|
||||
SET 'OBJ,F
|
||||
FSET? F,TREASURE \?CND15
|
||||
SET 'TR,TRUE-VALUE
|
||||
?CND15:
|
||||
?CND8: SET 'F,N
|
||||
JUMP ?PRG1
|
||||
?REP2: EQUAL? HERE,RM \FALSE
|
||||
GRTR? CNT,0 \FALSE
|
||||
PRINTI "The adventurer stoops over and picks up "
|
||||
EQUAL? CNT,1 \?ELS32
|
||||
PRINTI "the "
|
||||
PRINTD OBJ
|
||||
JUMP ?CND30
|
||||
?ELS32: PRINTI "some objects"
|
||||
?CND30: ZERO? TR /?CND39
|
||||
PRINTI " and seems pleased by his discovery"
|
||||
?CND39: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT DIR-FROM,HERE,THERE,P,L,TX,O
|
||||
SET 'P,0
|
||||
?PRG1: NEXTP HERE,P >P
|
||||
ZERO? P /FALSE
|
||||
EQUAL? P,P?IN \?ELS7
|
||||
JUMP ?PRG1
|
||||
?ELS7: LESS? P,LOW-DIRECTION /?PRG1
|
||||
GETPT HERE,P >TX
|
||||
PTSIZE TX >L
|
||||
EQUAL? L,DEXIT,UEXIT,CEXIT \?PRG1
|
||||
GETB TX,REXIT
|
||||
EQUAL? STACK,THERE \?PRG1
|
||||
RETURN P
|
||||
|
||||
|
||||
.FUNCT DIR-PRINT,DIR,CNT=0
|
||||
?PRG1: GET DIR-STRINGS,CNT
|
||||
EQUAL? STACK,DIR \?CND3
|
||||
EQUAL? DIR,P?UP,P?DOWN /?CND6
|
||||
PRINTI "the "
|
||||
?CND6: ADD CNT,1
|
||||
GET DIR-STRINGS,STACK
|
||||
PRINT STACK
|
||||
RTRUE
|
||||
?CND3: INC 'CNT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-DECIDE,L,P,S,TX
|
||||
NEXTP L,0 >P
|
||||
PUT ADV-POSS,0,0
|
||||
?PRG1: LESS? P,LOW-DIRECTION \?ELS5
|
||||
JUMP ?REP2
|
||||
?ELS5: GETPT L,P >TX
|
||||
PTSIZE TX >S
|
||||
EQUAL? S,UEXIT /?THN11
|
||||
EQUAL? S,DEXIT \?ELS14
|
||||
GETB TX,DEXITOBJ
|
||||
FSET? STACK,LOCKEDBIT \?THN11
|
||||
?ELS14: EQUAL? S,CEXIT \?CND3
|
||||
GETB TX,CEXITFLAG
|
||||
VALUE STACK
|
||||
ZERO? STACK /?CND3
|
||||
?THN11: GETB TX,REXIT >S
|
||||
GET ADV-POSS,0
|
||||
ADD STACK,1 >TX
|
||||
PUT ADV-POSS,0,TX
|
||||
PUT ADV-POSS,TX,S
|
||||
?CND3: NEXTP L,P >P
|
||||
JUMP ?PRG1
|
||||
?REP2: GET ADV-POSS,0 >S
|
||||
ZERO? S \?ELS21
|
||||
PRINTI "**BUG: Can't move from "
|
||||
LOC ADVENTURER
|
||||
PRINTD STACK
|
||||
PRINTR "!"
|
||||
?ELS21: EQUAL? S,1 \?ELS25
|
||||
GET ADV-POSS,1
|
||||
CALL MOVE-ADVENTURER,STACK
|
||||
RSTACK
|
||||
?ELS25: SET 'P,0
|
||||
?PRG28: IGRTR? 'P,S \?ELS32
|
||||
JUMP ?REP29
|
||||
?ELS32: GET ADV-POSS,P >TX
|
||||
FSET? TX,VILLAIN /?PRG28
|
||||
CALL MOVE-ADVENTURER,TX
|
||||
RTRUE
|
||||
?REP29: CALL RANDOM-ELEMENT,ADV-POSS
|
||||
CALL MOVE-ADVENTURER,STACK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NEXT-HALL,RM,L-R=1,TBL,OFFS=0,NR
|
||||
SET 'TBL,HALL-TBL
|
||||
?PRG1: GET TBL,OFFS >NR
|
||||
EQUAL? NR,RM \?CND3
|
||||
ZERO? L-R /?ELS8
|
||||
ADD OFFS,1
|
||||
GET TBL,STACK
|
||||
RSTACK
|
||||
?ELS8: SUB OFFS,1
|
||||
GET TBL,STACK
|
||||
RSTACK
|
||||
?CND3: INC 'OFFS
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT TREASURE-HERE?,RM,F
|
||||
FIRST? RM >F /?KLU10
|
||||
?KLU10:
|
||||
?PRG1: ZERO? F /FALSE
|
||||
FSET? F,TREASURE \?ELS7
|
||||
RETURN F
|
||||
?ELS7: NEXT? F >F /?KLU11
|
||||
?KLU11: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT PURLOINED-ROOM-A,TX
|
||||
CALL TREASURE-HERE?,PURLOINED-ROOM >TX
|
||||
ZERO? TX /?ELS3
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
EQUAL? HERE,PURLOINED-ROOM \FALSE
|
||||
MOVE TX,ADVENTURER
|
||||
FSET? DOOR-REALITY,INVISIBLE \FALSE
|
||||
PRINTI "The adventurer stops to pick up the "
|
||||
PRINTD TX
|
||||
PRINTI ". As he rises, he casts a cursory glance at the door, then he notices you. "
|
||||
ZERO? ADVENTURER-CHARMED /?ELS15
|
||||
PRINTI "He smiles at you as he pockets the "
|
||||
PRINTD TX
|
||||
PRINTI "."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS15: PRINTI "He straightens quickly, glaring at you with distrust."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS3: ZERO? ADVENTURER-NOTES-DOOR \FALSE
|
||||
SET 'ADVENTURER-NOTES-DOOR,TRUE-VALUE
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
FSET? DOOR-REALITY,INVISIBLE \FALSE
|
||||
PRINTI "The adventurer glances around the room in a businesslike way and makes a few notes on his map."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NO-ILLUSIONS
|
||||
FSET DOOR-ILLUSION,INVISIBLE
|
||||
FCLEAR DOOR-REALITY,INVISIBLE
|
||||
FCLEAR DOOR-REALITY,LOCKEDBIT
|
||||
FSET DOOR-REALITY,OPENBIT
|
||||
SET 'DOOR-ILLUSION-GONE,TRUE-VALUE
|
||||
PRINTI "The seemingly fearless adventurer shrugs and walks purposefully toward the door, ignoring all harm to his person in the form of knives, tentacles, and molten lead. As three buckets of the latter pour over his head, he casts you a perplexed look.
|
||||
""Did you try the doorknob?"" he asks, as twenty-seven knives delicately skewer him.
|
||||
Before you can answer, he reaches for one of the gargoyle heads which, by sheerest coincidence, has just flooded him in red-orange flame, and turns it gently.
|
||||
""I think it's unlocked,"" he says, stoically ignoring the host of human-sized rats which feed on his incinerated torso.
|
||||
His left hand, broken and bloodied, pulls at the gargoyle head.
|
||||
""I'm going on ahead!"" he cries, opening a simple wooden door.
|
||||
Wooden door? You rub your eyes for a moment and look again as he goes through it. Yes, just a plain wooden door."
|
||||
CRLF
|
||||
ADD SCORE,DOOR-POINT >SCORE
|
||||
SET 'DOOR-POINT,0
|
||||
MOVE ADVENTURER,MAP-ROOM
|
||||
SET 'ADVENTURER-STAY,TRUE-VALUE
|
||||
RETURN ADVENTURER-STAY
|
||||
|
||||
.ENDI
|
|
@ -273,7 +273,7 @@ senseless, and return, the last closing the door behind it.">>
|
|||
(GLOBAL ADVENTURER-LG MIRROR MIRROR-STUFF SHARDS)>
|
||||
|
||||
<OBJECT GLOBAL-ADVENTURER
|
||||
(IN GLOBAL-OBJECTS)
|
||||
;(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM ADVENTURER)
|
||||
(DESC "adventurer")
|
||||
(ACTION GLOBAL-ADVENTURER-F)
|
||||
|
@ -375,6 +375,9 @@ underground labyrinth, filled with tunnels, caves, and peculiar rock
|
|||
formations." CR>)>
|
||||
<COND (,ADVENTURER-LOC
|
||||
<DESCRIBE-ADVENTURER>)>)
|
||||
(<EQUAL? .RARG ,M-ENTER>
|
||||
<MOVE ,GLOBAL-ADVENTURER ,GLOBAL-OBJECTS>
|
||||
<RFALSE>)
|
||||
(<AND <EQUAL? .RARG ,M-END>
|
||||
<NOT <FSET? ,HERE ,NDESCBIT>>
|
||||
<NOT ,ADVENTURER-SUMMONED>
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
|
||||
.FUNCT V-$COMMAND
|
||||
DIRIN 1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT V-$RANDOM
|
||||
EQUAL? PRSO,INTNUM /?ELS5
|
||||
PRINTR "Illegal call to #RANDOM."
|
||||
?ELS5: SUB 0,P-NUMBER
|
||||
RANDOM STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT V-$RECORD
|
||||
DIROUT D-RECORD-ON
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT V-$UNRECORD
|
||||
DIROUT D-RECORD-OFF
|
||||
RTRUE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,210 @@
|
|||
|
||||
|
||||
.FUNCT V-TIME,EL
|
||||
DIV TOD,10 >EL
|
||||
PRINTI "It would be "
|
||||
GET TIME-TABLE,EL
|
||||
PRINT STACK
|
||||
PRINTR " now."
|
||||
|
||||
|
||||
.FUNCT GLOBAL-SLEEP-F
|
||||
EQUAL? PRSA,V?TAKE,V?WALK-TO \?ELS5
|
||||
IN? WINNER,BEDROOM \?CND6
|
||||
MOVE WINNER,BED
|
||||
?CND6: CALL PERFORM,V?SLEEP
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?FIND \FALSE
|
||||
PRINTR "Why not find a bed to sleep in?"
|
||||
|
||||
|
||||
.FUNCT I-THIRST
|
||||
IGRTR? 'THIRST-COUNT,5 \?ELS5
|
||||
SET 'THIRST-COUNT,0
|
||||
CALL QUEUE,I-THIRST,40
|
||||
SET 'WINNER,PLAYER
|
||||
CALL JIGS-UP,STR?240,FALSE-VALUE
|
||||
RSTACK
|
||||
?ELS5: GET THIRST-TABLE,THIRST-COUNT
|
||||
PRINT STACK
|
||||
CRLF
|
||||
CALL QUEUE,I-THIRST,10
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-HUNGER
|
||||
IGRTR? 'HUNGER-COUNT,5 \?ELS5
|
||||
SET 'HUNGER-COUNT,0
|
||||
CALL QUEUE,I-HUNGER,47
|
||||
SET 'WINNER,PLAYER
|
||||
CALL JIGS-UP,STR?247,FALSE-VALUE
|
||||
RSTACK
|
||||
?ELS5: GET HUNGER-TABLE,HUNGER-COUNT
|
||||
PRINT STACK
|
||||
CRLF
|
||||
CALL QUEUE,I-HUNGER,10
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-TIRED,FORG=0
|
||||
IN? WINNER,BED \?CND1
|
||||
PRINTI "The bed sure is comfortable and you are becoming tired."
|
||||
CRLF
|
||||
CALL V-SLEEP,TRUE-VALUE
|
||||
RETURN 2
|
||||
?CND1: GRTR? LOAD-ALLOWED,10 \?CND8
|
||||
SUB LOAD-ALLOWED,10 >LOAD-ALLOWED
|
||||
?CND8: GRTR? FUMBLE-NUMBER,1 \?CND11
|
||||
DEC 'FUMBLE-NUMBER
|
||||
?CND11: INC 'FUMBLE-PROB
|
||||
GRTR? SPELL-MAX,1 \?CND14
|
||||
DEC 'SPELL-MAX
|
||||
ZERO? SPELL-ROOM /?CND17
|
||||
DEC 'SPELL-ROOM
|
||||
?CND17: ZERO? SPELL-ROOM \?CND14
|
||||
SET 'FORG,TRUE-VALUE
|
||||
CALL FORGET-SPELL,DISPEL-SPELL
|
||||
?CND14: CALL QUEUE,I-TIRED,10
|
||||
PUT STACK,0,1
|
||||
INC 'AWAKE
|
||||
GRTR? AWAKE,10 \?ELS27
|
||||
PRINTI "You drop in your tracks from exhaustion."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL V-SLEEP
|
||||
RETURN 2
|
||||
?ELS27: PRINTI "You are "
|
||||
GET TIRED-TELL,AWAKE
|
||||
PRINT STACK
|
||||
ZERO? FORG /?CND36
|
||||
PRINTI " and the spells you've memorized are becoming confused"
|
||||
?CND36: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT V-DIAGNOSE
|
||||
LESS? AWAKE,0 \?ELS3
|
||||
PRINTI "You are wide awake"
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI "You are "
|
||||
GET TIRED-TELL,AWAKE
|
||||
PRINT STACK
|
||||
?CND1: PRINTI ". You are "
|
||||
GET THIRST-TELL,THIRST-COUNT
|
||||
PRINT STACK
|
||||
PRINTI " and "
|
||||
GET HUNGER-TELL,HUNGER-COUNT
|
||||
PRINT STACK
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT V-SLEEP,TOLD?=0,TILL-TIRED,MUNGED?
|
||||
SUB MOVES,LAST-SLEEP
|
||||
SUB MOVES-PER-DAY,STACK >TILL-TIRED
|
||||
EQUAL? HERE,REAL-STAIR,PIT \?ELS5
|
||||
PRINTR "To sleep here would be fatal!"
|
||||
?ELS5: GRTR? TILL-TIRED,10 \?ELS9
|
||||
PRINTR "You settle down to sleep, but you really aren't tired, so you thrash around for a while and then give up."
|
||||
?ELS9: EQUAL? HERE,ENGINE-ROOM,CLOSET,SE-TOWER \?ELS13
|
||||
PRINTR "You try to sleep but it's too noisy."
|
||||
?ELS13: EQUAL? HERE,BEDROOM \?ELS17
|
||||
IN? WINNER,BED /?ELS17
|
||||
ZERO? BED-WARNING \?ELS17
|
||||
GRTR? AWAKE,10 /?ELS17
|
||||
SET 'BED-WARNING,TRUE-VALUE
|
||||
PRINTR "You might try getting into the bed first. It would be more comfortable."
|
||||
?ELS17: GRTR? TILL-TIRED,0 \?CND24
|
||||
IN? WINNER,BED \?CND24
|
||||
ZERO? TOLD? \?CND24
|
||||
PRINTI "You're not all that tired, but the bed is very comfortable."
|
||||
CRLF
|
||||
?CND24: INC 'REAL-SPELL-MAX
|
||||
SET 'SPELL-MAX,REAL-SPELL-MAX
|
||||
SET 'SPELL-ROOM,SPELL-MAX
|
||||
SET 'LAST-SLEEP,MOVES
|
||||
ADD MOVES,MOVES-PER-SLEEP >MOVES
|
||||
ADD TOD,MOVES-PER-SLEEP
|
||||
MOD STACK,128 >TOD
|
||||
SET 'LOAD-ALLOWED,LOAD-MAX
|
||||
SET 'FUMBLE-NUMBER,7
|
||||
SET 'FUMBLE-PROB,8
|
||||
CALL QUEUE,I-TIRED,MOVES-PER-DAY
|
||||
PUT STACK,0,1
|
||||
SET 'AWAKE,-1
|
||||
CALL FORGET-ALL
|
||||
FSET? HERE,RMUNGBIT /?PRD31
|
||||
PUSH 0
|
||||
JUMP ?PRD32
|
||||
?PRD31: PUSH 1
|
||||
?PRD32: SET 'MUNGED?,STACK
|
||||
CALL I-MUNG-ROOM,FALSE-VALUE
|
||||
CALL I-MUNG-ROOM,FALSE-VALUE
|
||||
CALL I-MUNG-ROOM,FALSE-VALUE
|
||||
ZERO? MUNGED? \?ELS35
|
||||
FSET? HERE,RMUNGBIT \?ELS35
|
||||
PRINTR "You fall asleep quickly and begin to dream. The dream turns into a nightmare of decay and desolation, as your surroundings turn grey and lifeless. You feel a great weight, like a pile of ashes, constricting your movements, and then you bolt awake!"
|
||||
?ELS35: IN? WINNER,BED \?CND33
|
||||
IN? BEDPOST-BUTTON,BED /?CND33
|
||||
GRTR? CHARM-POINT,0 \?CND33
|
||||
MOVE BEDPOST-BUTTON,BED
|
||||
PRINTR "You fall asleep quickly, the bed being so comfortable. You dream as well, of this very room. A beautiful damsel, obviously noble, is standing by the bed holding a scroll in one hand and resting the other on the bedpost. Turning to block your view, she does something you can't see. Then she gets in bed and turns out the light, but before she does you can see she is no longer carrying the scroll... You wake."
|
||||
?CND33: PRINTI "Ah, sleep! It's been a long day, indeed. The rest will do you good. "
|
||||
IN? WINNER,BED \?ELS50
|
||||
PRINTI "You make yourself comfortable on the bed"
|
||||
JUMP ?CND48
|
||||
?ELS50: CALL OUTSIDE?,HERE
|
||||
ZERO? STACK /?ELS54
|
||||
PRINTI "You spread your cloak under the open sky"
|
||||
JUMP ?CND48
|
||||
?ELS54: PRINTI "You spread your cloak on the floor"
|
||||
?CND48: PRINTI " and drift off, renewing your powers and refreshing your mind ... Time passes as you snore blissfully."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL OUTSIDE?,HERE
|
||||
ZERO? STACK /?ELS67
|
||||
ZERO? PROTECTED-FROM-EVIL \?ELS67
|
||||
RANDOM 100
|
||||
GRTR? MOLESTED,STACK \?ELS67
|
||||
RANDOM 100
|
||||
GRTR? MUNCHED,STACK \?ELS74
|
||||
CALL JIGS-UP,STR?277
|
||||
RETURN 2
|
||||
?ELS74: CALL ROB,WINNER
|
||||
CALL ROB,HERE
|
||||
PRINTR "You don't sleep too well, and you awake at least once with the feeling that something has jostled you in the dark."
|
||||
?ELS67: ZERO? GALLERY-POINT /?ELS82
|
||||
ZERO? GALLERY-DREAM \?ELS82
|
||||
SET 'GALLERY-DREAM,TRUE-VALUE
|
||||
PRINTR "After a while, your sleep is disturbed by a strange dream. You are wandering in a darkened place, for you have no light or other possessions. You feel that you are being watched! You are surrounded by faces, their eyes following you. They drift in and out, staring at you with proud indifference. One face, brightly lit (unlike the rest), draws you closer and closer. As you touch it, you wake."
|
||||
?ELS82: ZERO? GALLERY-POINT /?ELS88
|
||||
RANDOM 100
|
||||
GRTR? 70,STACK \?ELS88
|
||||
PRINTR "Your sleep is disturbed by the strange dream of an earlier night. You are in the dark, with no light or other possessions. You are surrounded by many faces, their eyes following you. The one brightly lit face beckons you closer and closer. You wake, convinced that the dream holds a message for you."
|
||||
?ELS88: ZERO? DOOR-KULCAD \?ELS94
|
||||
ZERO? DOOR-DREAM \?ELS94
|
||||
FSET? DOOR-REALITY,INVISIBLE \?ELS94
|
||||
SET 'DOOR-DREAM,TRUE-VALUE
|
||||
PRINTR "You dream of a nondescript room in which a cartoonish figure casually opens a simple wooden door and ascends the flight of stairs which lies behind. The scene fades to black, but you awaken in a cold sweat."
|
||||
?ELS94: ZERO? DOOR-KULCAD /?ELS100
|
||||
ZERO? DOOR-DREAM-2 \?ELS100
|
||||
SET 'DOOR-DREAM-2,TRUE-VALUE
|
||||
PRINTR "You dream of climbing in an unfamiliar place. You seem to climb forever, beyond reason. A fleeting hope arises in you, and you search furiously in your spell book and possessions for something. After a moment, you become frantic as you realize that you don't have it! You bolt awake in a cold sweat."
|
||||
?ELS100: ZERO? PROTECTED-FROM-EVIL \?ELS106
|
||||
RANDOM 100
|
||||
GRTR? 50,STACK \?ELS106
|
||||
CALL ROB,HERE,WARLOCK-TOWER
|
||||
RANDOM 100
|
||||
GRTR? 50,STACK \?CND109
|
||||
CALL ROB,WINNER,WARLOCK-TOWER
|
||||
?CND109: LOC WINNER
|
||||
EQUAL? HERE,STACK /?CND112
|
||||
LOC WINNER
|
||||
CALL ROB,STACK,WARLOCK-TOWER
|
||||
?CND112: PRINTR "You sleep fitfully. At one point it seems that some evil presence is searching nearby. The tense feeling passes, but it's replaced by one of foreboding."
|
||||
?ELS106: RANDOM 100
|
||||
GRTR? 50,STACK \?ELS118
|
||||
PRINTR "You sleep uneventfully, dreamlessly, and awake refreshed."
|
||||
?ELS118: CALL PICK-ONE,DREAMS
|
||||
PRINT STACK
|
||||
PRINTR " You awaken."
|
||||
|
||||
.ENDI
|
|
@ -175,7 +175,8 @@ thrash around for a while and then give up." CR>)
|
|||
<TELL "You try to sleep but it's too noisy." CR>)
|
||||
(<AND <EQUAL? ,HERE ,BEDROOM>
|
||||
<NOT <IN? ,WINNER ,BED>>
|
||||
<NOT ,BED-WARNING>>
|
||||
<NOT ,BED-WARNING>
|
||||
<NOT <G? ,AWAKE 10>>>
|
||||
<SETG BED-WARNING T>
|
||||
<TELL
|
||||
"You might try getting into the bed first. It would be more comfortable." CR>)
|
||||
|
|
|
@ -0,0 +1,450 @@
|
|||
|
||||
|
||||
.FUNCT LANDING-EXIT-F
|
||||
ZERO? STAIR-SOLVED? /?ELS5
|
||||
PRINTI "There is no floor there, and the pit beneath you is of great, if not infinite, depth. You fall forever."
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS5: RETURN ENDLESS-STAIR
|
||||
|
||||
|
||||
.FUNCT ADVENTURER-DROPS-OUT
|
||||
PRINTI "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."
|
||||
CRLF
|
||||
REMOVE ADVENTURER
|
||||
CALL QUEUE,I-ADVENTURER,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT STAIRS-F
|
||||
EQUAL? HERE,JUNCTION \?ELS5
|
||||
PRINTR "The stairs are to the east. You'll have to go there to get a look."
|
||||
?ELS5: EQUAL? HERE,ENDLESS-STAIR \FALSE
|
||||
EQUAL? PRSA,V?KULCAD \FALSE
|
||||
CALL STAIR-DISPEL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT STAIR-DISPEL
|
||||
CALL QUEUE,I-HUNGER,0
|
||||
CALL QUEUE,I-THIRST,0
|
||||
CALL QUEUE,I-TIRED,0
|
||||
CALL QUEUE,I-TURTLE,0
|
||||
SET 'STAIR-SOLVED?,TRUE-VALUE
|
||||
ADD SCORE,STAIR-POINT >SCORE
|
||||
SET 'STAIR-POINT,0
|
||||
CALL DESTROY-ALL,WINNER,REAL-STAIR >DROPPED-SOME?
|
||||
MOVE FLY-SCROLL,WINNER
|
||||
PRINTI "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"
|
||||
ZERO? DROPPED-SOME? /?CND3
|
||||
PRINTI ", dropping your heavier possessions in your desire to save yourself"
|
||||
?CND3: PRINTI "! But the bannister shifts and dissolves as well, leaving you grasping what appears to be an ornate scroll."
|
||||
CRLF
|
||||
CALL THIS-IS-IT,FLY-SCROLL
|
||||
CALL QUEUE,I-FALL-FOREVER,5
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-FALL,-1
|
||||
PUT STACK,0,1
|
||||
CALL INT,I-TIRED
|
||||
PUT STACK,0,0
|
||||
CALL GOTO,REAL-STAIR,FALSE-VALUE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ENDLESS-UP
|
||||
CALL ENDLESS-UP-DOWN,TRUE-VALUE
|
||||
RETURN ENDLESS-STAIR
|
||||
|
||||
|
||||
.FUNCT ENDLESS-DOWN
|
||||
CALL ENDLESS-UP-DOWN,FALSE-VALUE
|
||||
RETURN ENDLESS-STAIR
|
||||
|
||||
|
||||
.FUNCT ENDLESS-UP-DOWN,UP?
|
||||
FCLEAR ENDLESS-STAIR,TOUCHBIT
|
||||
CALL STAIR-TO-TABLE,STAIR-LOC
|
||||
PRINTI "You "
|
||||
ZERO? UP? /?ELS5
|
||||
PRINTI "climb"
|
||||
INC 'STAIR-LOC
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "descend"
|
||||
DEC 'STAIR-LOC
|
||||
?CND3: PRINTI " the stairs, making one circuit of the tower."
|
||||
CRLF
|
||||
CALL TABLE-TO-STAIR,STAIR-LOC
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT ENDLESS-STAIR-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
PRINTI "This is a winding stair, stretching up and down out of sight. The walls are mossy and damp."
|
||||
EQUAL? STAIR-LOC,STAIR-START \?CND8
|
||||
PRINTI " An exit leads west to a landing."
|
||||
?CND8: CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-ENTER \FALSE
|
||||
EQUAL? WINNER,PLAYER /FALSE
|
||||
LOC PLAYER
|
||||
IN? WINNER,STACK /FALSE
|
||||
REMOVE WINNER
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT ENDLESS-EXIT-F
|
||||
EQUAL? STAIR-LOC,STAIR-START \?ELS5
|
||||
RETURN LANDING
|
||||
?ELS5: PRINTI "You can't go that way."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT STAIR-TO-TABLE,SLOC,TBL,CNT=0,F,N
|
||||
FIRST? ENDLESS-STAIR >F /?KLU21
|
||||
?KLU21: SET 'TBL,STAIR-TABLE
|
||||
?PRG1: ZERO? F /TRUE
|
||||
NEXT? F >N /?KLU22
|
||||
?KLU22: EQUAL? F,WINNER \?ELS11
|
||||
JUMP ?CND9
|
||||
?ELS11: FSET? F,TAKEBIT \?CND9
|
||||
?PRG14: GET TBL,CNT
|
||||
ZERO? STACK \?ELS18
|
||||
PUT TBL,CNT,SLOC
|
||||
ADD CNT,1
|
||||
PUT TBL,STACK,F
|
||||
ADD CNT,2 >CNT
|
||||
REMOVE F
|
||||
JUMP ?CND9
|
||||
?ELS18: ADD CNT,2 >CNT
|
||||
JUMP ?PRG14
|
||||
?CND9: SET 'F,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT TABLE-TO-STAIR,SLOC,TBL,CNT=0
|
||||
SET 'TBL,STAIR-TABLE
|
||||
?PRG1: LESS? CNT,STAIR-TABLE-LENGTH \TRUE
|
||||
GET TBL,CNT
|
||||
EQUAL? STACK,SLOC \?CND3
|
||||
PUT TBL,CNT,0
|
||||
ADD CNT,1
|
||||
GET TBL,STACK
|
||||
MOVE STACK,ENDLESS-STAIR
|
||||
?CND3: ADD CNT,2 >CNT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT REAL-STAIR-EXIT-F
|
||||
SET 'FALL-COUNT,0
|
||||
ZERO? FLYING? /?ELS5
|
||||
PRINTI "Effortlessly, you float "
|
||||
EQUAL? PRSO,P?DOWN \?ELS13
|
||||
SET 'FALL-COUNT,1
|
||||
PRINTI "downward."
|
||||
CRLF
|
||||
CALL DESTROY-ALL,HERE,PIT
|
||||
RETURN PIT
|
||||
?ELS13: EQUAL? PRSO,P?EAST \?ELS17
|
||||
ADD SCORE,FLY-POINT >SCORE
|
||||
SET 'FLY-POINT,0
|
||||
CALL STOP-FLYING
|
||||
PRINTI "eastward and settle to the ground."
|
||||
CRLF
|
||||
RETURN WARLOCK-TOWER
|
||||
?ELS17: EQUAL? PRSO,P?WEST \FALSE
|
||||
CALL STOP-FLYING
|
||||
PRINTI "westward and settle to the ground."
|
||||
CRLF
|
||||
RETURN LANDING
|
||||
?ELS5: PRINTI "You must think you can fly."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PIT-EXIT-F
|
||||
ZERO? FLYING? /?ELS5
|
||||
PRINTI "Effortlessly, you float "
|
||||
EQUAL? PRSO,P?DOWN \?ELS11
|
||||
INC 'FALL-COUNT
|
||||
PRINTI "downward."
|
||||
CRLF
|
||||
JUMP ?CND9
|
||||
?ELS11: DEC 'FALL-COUNT
|
||||
PRINTI "upward."
|
||||
CRLF
|
||||
?CND9: ZERO? FALL-COUNT \?ELS22
|
||||
CALL DESTROY-ALL,HERE,REAL-STAIR
|
||||
RETURN REAL-STAIR
|
||||
?ELS22: CALL DESTROY-ALL,HERE,PIT
|
||||
FCLEAR PIT,TOUCHBIT
|
||||
RETURN PIT
|
||||
?ELS5: PRINTI "You must think you can fly."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PIT-F,RARG
|
||||
EQUAL? RARG,M-BEG \FALSE
|
||||
EQUAL? PRSA,V?DROP \?ELS10
|
||||
CALL HELD?,PRSO
|
||||
ZERO? STACK /?ELS10
|
||||
FSET PRSO,NDESCBIT
|
||||
FCLEAR PRSO,TAKEBIT
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " falls out of sight below you."
|
||||
?ELS10: EQUAL? PRSA,V?EXAMINE,V?TAKE \FALSE
|
||||
CALL HELD?,PRSO
|
||||
ZERO? STACK \FALSE
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " is out of reach below you."
|
||||
|
||||
|
||||
.FUNCT STOP-FLYING
|
||||
SET 'FLYING?,FALSE-VALUE
|
||||
CALL QUEUE,I-FALL,0
|
||||
CALL QUEUE,I-FALL-FOREVER,0
|
||||
CALL QUEUE,I-FLY,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-FALL
|
||||
ZERO? FLYING? \TRUE
|
||||
INC 'FALL-COUNT
|
||||
PRINTI "You plummet downward, deeper into the pit, but the bottom is still not visible."
|
||||
ZERO? DROPPED-SOME? /TRUE
|
||||
PRINTR " Far ahead of you fall your former possessions."
|
||||
|
||||
|
||||
.FUNCT I-FALL-FOREVER
|
||||
PRINTI "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."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DESTROY-ALL,WHO,WHERE,N,X,DEST?=0
|
||||
FIRST? WHO >X /?KLU11
|
||||
?KLU11:
|
||||
?PRG1: ZERO? X \?CND3
|
||||
RETURN DEST?
|
||||
?CND3: NEXT? X >N /?KLU12
|
||||
?KLU12: EQUAL? X,WINNER /?CND6
|
||||
GETP X,P?SIZE
|
||||
GRTR? STACK,4 \?CND6
|
||||
CALL REMOVE-ALL,X
|
||||
MOVE X,WHERE
|
||||
FSET X,NDESCBIT
|
||||
FCLEAR X,TAKEBIT
|
||||
SET 'DEST?,TRUE-VALUE
|
||||
?CND6: SET 'X,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT REMOVE-ALL,WHAT,N,X
|
||||
FIRST? WHAT >X /?KLU6
|
||||
?KLU6:
|
||||
?PRG1: ZERO? X /TRUE
|
||||
NEXT? X >N /?KLU7
|
||||
?KLU7: REMOVE X
|
||||
SET 'X,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT WARLOCK-TOWER-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
FSET WARLOCK-TOWER,TOUCHBIT
|
||||
PRINTI "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!"""
|
||||
EQUAL? HASTED?,PLAYER \?CND8
|
||||
PRINTI " 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."
|
||||
?CND8: PRINTI " Krill snaps his fingers loudly, and a giant dragon appears, breathing gouts of flame. He moves ever closer, red eyes bulging with malice!"
|
||||
CRLF
|
||||
CRLF
|
||||
MOVE DRAGON,HERE
|
||||
CALL QUEUE,I-DRAGON,2
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT GLOBAL-KRILL-F
|
||||
EQUAL? PRSA,V?GIVE,V?HELLO,V?GUNCHO \?ELS5
|
||||
PRINTR "Krill is not here, and lucky for you."
|
||||
?ELS5: EQUAL? PRSA,V?ZIFMIA \?ELS9
|
||||
CALL JIGS-UP,STR?85,FALSE-VALUE
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?WHO,V?EXAMINE \?ELS11
|
||||
PRINTR "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."
|
||||
?ELS11: CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-KRILL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DRAGON-F
|
||||
EQUAL? PRSA,V?GONDAR \?ELS5
|
||||
PRINTI "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
|
||||
CALL SECOND-ACT
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?NITFOL,V?VAXUM \?ELS9
|
||||
PRINTI "The dragon pauses and roars out a benevolent greeting, which, to your chagrin, fries you to a delicate crisp."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?GUNCHO \?ELS13
|
||||
PRINTI "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."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS13: EQUAL? PRSA,V?CLEESH \?ELS17
|
||||
PRINTR "The dragon, being reptilian himself, is unaffected."
|
||||
?ELS17: EQUAL? PRSA,V?MUNG,V?ATTACK,V?KILL \FALSE
|
||||
PRINTR "Your strength isn't nearly enough to best the dragon!"
|
||||
|
||||
|
||||
.FUNCT SECOND-ACT,GUNCH=0
|
||||
CRLF
|
||||
PRINTI "Krill "
|
||||
ZERO? GUNCH /?ELS5
|
||||
PRINTI "seems shaken, but regains his composure."
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "seems to be somewhat amused."
|
||||
?CND3: CRLF
|
||||
CRLF
|
||||
PRINTI """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!"
|
||||
CRLF
|
||||
CALL QUEUE,I-SHAPE,2
|
||||
PUT STACK,0,1
|
||||
MOVE SHAPE,HERE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-DRAGON
|
||||
IN? DRAGON,HERE \?CND1
|
||||
EQUAL? DEATH-CHEATED,ME /?THN7
|
||||
ZERO? PROTECTED-FROM-EVIL /?CND4
|
||||
?THN7: PRINT NO-LONGER-PROTECTED
|
||||
CRLF
|
||||
?CND4: PRINTI "The dragon engulfs you in flame. As you perish, you can hear Krill's mocking laughter."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
?CND1: CALL QUEUE,I-DRAGON,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SHAPE-F
|
||||
EQUAL? PRSA,V?VAXUM \?ELS5
|
||||
PRINTI "The monster hesitates, stops, smiles, and disappears."
|
||||
CRLF
|
||||
CALL THIRD-ACT
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLEESH \?ELS9
|
||||
PRINTI "The monster hesitates, trembles, then turns into a newt. Poor monster. Its battle axe, now unsupported, falls on it, slicing it neatly in half."
|
||||
CRLF
|
||||
CALL THIRD-ACT
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?NITFOL \?ELS13
|
||||
PRINTI """Yum, yum!"" are the last words you hear."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS13: EQUAL? PRSA,V?GUNCHO \?ELS17
|
||||
PRINTI "The monster pauses for a moment as you begin the guncho spell, then swiftly cleaves you with its axe before you can finish!"
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS17: EQUAL? PRSA,V?MUNG,V?ATTACK,V?KILL \FALSE
|
||||
PRINTR "Your effort is useless. It is still coming closer!"
|
||||
|
||||
|
||||
.FUNCT THIRD-ACT
|
||||
REMOVE SHAPE
|
||||
CRLF
|
||||
PRINTI "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."
|
||||
CRLF
|
||||
SET 'KRILL-KILL,TRUE-VALUE
|
||||
CALL QUEUE,I-BYE,2
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-SHAPE
|
||||
IN? SHAPE,HERE \?CND1
|
||||
EQUAL? DEATH-CHEATED,ME /?THN7
|
||||
ZERO? PROTECTED-FROM-EVIL /?CND4
|
||||
?THN7: PRINT NO-LONGER-PROTECTED
|
||||
CRLF
|
||||
?CND4: PRINTI "The monster hits you with its battle axe! You fall, dead, as the laughter of Krill reaches a crescendo!"
|
||||
CRLF
|
||||
CALL FINISH
|
||||
?CND1: CALL QUEUE,I-SHAPE,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-BYE
|
||||
EQUAL? HERE,WARLOCK-TOWER \FALSE
|
||||
CRLF
|
||||
PRINTI "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!"
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT KRILL-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "Krill is not a pretty sight! Enough said."
|
||||
?ELS5: EQUAL? PRSA,V?GUNCHO \?ELS9
|
||||
ZERO? KRILL-KILL /?ELS9
|
||||
PRINTI "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 bloodcurdling 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."
|
||||
CRLF
|
||||
CRLF
|
||||
ADD SCORE,WARLOCK-POINT >SCORE
|
||||
USL
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?CLEESH \?ELS15
|
||||
PRINTR "Krill shimmers for a moment, then laughs heartily. The laugh sounds vaguely like a croak, but perhaps it is only your imagination."
|
||||
?ELS15: EQUAL? PRSA,V?VAXUM \?ELS19
|
||||
PRINTR "The spell seems to have no influence over Krill. You wouldn't much like to see him smile, anyway."
|
||||
?ELS19: EQUAL? PRSA,V?GUNCHO \?ELS23
|
||||
PRINTI "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 "
|
||||
IN? SHAPE,HERE \?ELS30
|
||||
PUSH STR?88
|
||||
JUMP ?CND26
|
||||
?ELS30: PUSH STR?89
|
||||
?CND26: PRINT STACK
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS23: EQUAL? PRSA,V?HELLO \FALSE
|
||||
PRINTR "Krill grins and the sight is ghastly."
|
||||
|
||||
|
||||
.FUNCT I-MUNG-ROOM,TELL?=1,RM,TBL
|
||||
CALL QUEUE,I-MUNG-ROOM,20
|
||||
PUT STACK,0,1
|
||||
SET 'TBL,MUNG-ROOM-TABLE
|
||||
?PRG1: GET TBL,0 >RM
|
||||
ZERO? RM /?REP2
|
||||
FSET? RM,RMUNGBIT /?CND6
|
||||
JUMP ?REP2
|
||||
?CND6: ADD TBL,2 >TBL
|
||||
JUMP ?PRG1
|
||||
?REP2: ZERO? RM /?CND11
|
||||
FSET RM,RMUNGBIT
|
||||
FCLEAR RM,TOUCHBIT
|
||||
ZERO? TELL? /?CND11
|
||||
EQUAL? RM,HERE \?CND11
|
||||
PRINTI "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."
|
||||
CRLF
|
||||
?CND11: RETURN RM
|
||||
|
||||
.ENDI
|
|
@ -364,7 +364,7 @@ of your death.")
|
|||
(ACTION GLOBAL-KRILL-F)>
|
||||
|
||||
<ROUTINE GLOBAL-KRILL-F ()
|
||||
<COND (<VERB? GUNCHO HELLO>
|
||||
<COND (<VERB? GUNCHO HELLO GIVE>
|
||||
<TELL
|
||||
"Krill is not here, and lucky for you." CR>)
|
||||
(<VERB? ZIFMIA>
|
||||
|
@ -518,7 +518,7 @@ ponder the infinite, beyond all help and hope!" CR>
|
|||
"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
|
||||
back and, with his hands outstretched toward you, lets out a bloodcurdling
|
||||
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
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
.ENDI
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
"SUBTITLE VOCABULARY"
|
||||
|
||||
<BUZZ AGAIN G OOPS>
|
||||
|
||||
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y
|
||||
PRY PLEASE LINE LINES YOU SOME>
|
||||
|
||||
|
@ -61,8 +63,8 @@
|
|||
|
||||
"SUBTITLE REAL VERBS"
|
||||
|
||||
<SYNTAX AGAIN = V-AGAIN>
|
||||
<SYNONYM AGAIN G>
|
||||
;<SYNTAX AGAIN = V-AGAIN>
|
||||
;<SYNONYM AGAIN G>
|
||||
|
||||
<SYNTAX ANSWER = V-ANSWER>
|
||||
<SYNTAX ANSWER OBJECT = V-REPLY>
|
||||
|
|
|
@ -0,0 +1,210 @@
|
|||
|
||||
|
||||
.FUNCT ALTAR-PSEUDO
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "A close examination of the altar nearly sickens you. It fairly screams with the memory of the horrors it has seen since the coming of Krill. Its original white marble has been crusted with blood and desecrated by the minions of the evil Warlock."
|
||||
?ELS5: EQUAL? HERE,TEMPLE \?ELS9
|
||||
EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-FOO,V?CLIMB-UP /?THN12
|
||||
EQUAL? PRSA,V?WALK-TO \?ELS9
|
||||
?THN12: CALL DO-WALK,P?UP
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?RUB,V?WALK-TO,V?CLIMB-ON /?THN16
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
|
||||
?THN16: PRINTR "There is nothing you would like less than nearing the altar."
|
||||
|
||||
|
||||
.FUNCT STATUE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "It is an enormous statue of a loathsome creature, dark and vile, with dripping fangs and razor-sharp talons. It appears almost to be motioning with its outstretched talons for you to approach."
|
||||
?ELS5: EQUAL? PRSA,V?RUB \FALSE
|
||||
PRINTR "Your sensibilities are offended by the very idea."
|
||||
|
||||
|
||||
.FUNCT GANG-OF-N-F
|
||||
EQUAL? PRSA,V?GUNCHO \?ELS5
|
||||
PRINTR "The majority of the mass of figures fades away into nothingness. Enough remain, however, to continue the service (or whatever it is)."
|
||||
?ELS5: EQUAL? PRSA,V?FROTZ \?ELS9
|
||||
PRINTR "A few select figures suddenly start to give off light, to the horror of the remaining ones, who rip them to shreds in an instant."
|
||||
?ELS9: EQUAL? PRSA,V?VAXUM \?ELS13
|
||||
PRINTR "Nothing seems to have happened, although a few of the figures seem to be chanting in a less guttural tone."
|
||||
?ELS13: EQUAL? PRSA,V?ZIFMIA \?ELS17
|
||||
PRINTI "Something appears to have snapped. The figures, who were so peacefully ignoring you, now seem to have taken a different, and less pleasant, tack."
|
||||
CRLF
|
||||
CALL TAKE-TO-TOWER
|
||||
RSTACK
|
||||
?ELS17: EQUAL? PRSA,V?CLEESH \FALSE
|
||||
PRINTR "Some of the figures hunch down even more and scuttle off."
|
||||
|
||||
|
||||
.FUNCT GUARDS-F
|
||||
EQUAL? PRSA,V?VAXUM \?ELS5
|
||||
PRINTR "The guards outside your cell cheer up a bit, upsetting a larger figure who could well be their boss. They are dismissed and replaced by other guards who don't seem to have the air of bonhomie shared by the others."
|
||||
?ELS5: EQUAL? PRSA,V?CLEESH \?ELS9
|
||||
PRINTR "A couple of the guards turn into newts, running this way and that. They are quickly replaced, however, by others. Perhaps turning into a newt is a commonplace around these parts."
|
||||
?ELS9: EQUAL? PRSA,V?GUNCHO \?ELS13
|
||||
PRINTR "A few guards disappear, seeming to vanish with distance while still standing in front of you. They are replaced quite quickly and efficiently by others. To judge by the reaction to your show of magical prowess, you would think these things happen every day."
|
||||
?ELS13: EQUAL? PRSA,V?ZIFMIA \?ELS17
|
||||
PRINTI "Oh, no. You've done it now. The guards approach, and they don't look very pleased."
|
||||
CRLF
|
||||
CALL QUEUE,I-TAKE-TO-ALTAR,1
|
||||
RSTACK
|
||||
?ELS17: EQUAL? PRSA,V?EXAMINE \?ELS21
|
||||
PRINTR "They are hunched and hairy shapes, but more detail cannot be discerned."
|
||||
?ELS21: EQUAL? PRSA,V?MUNG,V?ATTACK,V?KILL \?ELS25
|
||||
PRINTR "You can't reach them from in here, and you wouldn't have a prayer even if you could."
|
||||
?ELS25: EQUAL? PRSA,V?LISTEN \?ELS29
|
||||
PRINTR "The guards make low, grumbling sounds that could pass for speech, but it is incomprehensible to you."
|
||||
?ELS29: EQUAL? PRSA,V?HELLO,V?TELL \?ELS33
|
||||
PRINTR "They go right on ignoring you. They don't seem to be much on conversation, although from time to time they grumble in an unsettling sort of way."
|
||||
?ELS33: ZERO? GUARDS-HEARD \?ELS37
|
||||
EQUAL? PRSA,V?NITFOL \?ELS37
|
||||
SET 'GUARDS-HEARD,TRUE-VALUE
|
||||
PRINTR "The guards are having a delightful conversation, after a fashion:
|
||||
Guard 1: ""Brgh! Last night, good bloodbath!""
|
||||
Guard 2: ""Yes. Quite. Best in weeks. Have you seen the new sacrifice?""
|
||||
Guard 1: ""Brggh! No! Just get here.""
|
||||
Guard 2: ""It's a scrawny one. Not too much meat.""
|
||||
Guard 1: ""Brrrgh! No meat! Not had good meal in many days!""
|
||||
Guard 2: ""Perhaps tonight...""
|
||||
Voice: ""Stop your yapping, both of you!""
|
||||
The yapping stops abruptly."
|
||||
?ELS37: EQUAL? PRSA,V?NITFOL \FALSE
|
||||
PRINTR "The guards aren't speaking much."
|
||||
|
||||
|
||||
.FUNCT TOWER-DOOR-F
|
||||
EQUAL? PRSA,V?OPEN,V?UNLOCK \?ELS5
|
||||
ZERO? LOCKED-IN-TOWER /?ELS5
|
||||
PRINTI "The door is locked from the outside."
|
||||
ZERO? PROTECTED-FROM-EVIL \?CND10
|
||||
PRINTI " even if you could open it, the guards would undoubtedly return you with little difficulty"
|
||||
?CND10: PRINTR "."
|
||||
?ELS5: EQUAL? PRSA,V?KNOCK \?ELS18
|
||||
PRINTR "It would only get the attention of the guards."
|
||||
?ELS18: EQUAL? PRSA,V?REZROV \FALSE
|
||||
PRINTI "The locked cell door opens with a powerful snap! Unfortunately, the guards seem to have heard the snap and approach!"
|
||||
CRLF
|
||||
FSET PRSO,OPENBIT
|
||||
SET 'LOCKED-IN-TOWER,FALSE-VALUE
|
||||
CALL QUEUE,I-TAKE-TO-ALTAR,1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TOWER-S-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
ZERO? SACRIFICED? /?ELS8
|
||||
PRINTI "This prison cell is similar to the one in which you were held captive prior to your sacrifice."
|
||||
JUMP ?CND6
|
||||
?ELS8: PRINTI "This is a small prison cell in the south tower of the temple."
|
||||
?CND6: PRINTI " A window in the cell door looks out on the temple itself."
|
||||
CRLF
|
||||
EQUAL? ANYTHING-TAKEN,SCROLLS-TAKEN /TRUE
|
||||
GRTR? ANYTHING-TAKEN,0 \TRUE
|
||||
GRTR? SCROLLS-TAKEN,0 \TRUE
|
||||
PRINTR "The guards must have brought your possessions here, but something is definitely missing!"
|
||||
|
||||
|
||||
.FUNCT CELL-PSEUDO
|
||||
EQUAL? PRSA,V?ESCAPE \?ELS5
|
||||
ZERO? LOCKED-IN-TOWER /?ELS5
|
||||
PRINTR "That poses a difficult problem. There's only one way out, and that would mean tackling a few hundred unpleasant creatures."
|
||||
?ELS5: EQUAL? PRSA,V?DROP \?ELS11
|
||||
EQUAL? HERE,TOWER-S \?ELS16
|
||||
CALL DO-WALK,P?NORTH
|
||||
RSTACK
|
||||
?ELS16: CALL DO-WALK,P?SOUTH
|
||||
RSTACK
|
||||
?ELS11: EQUAL? PRSA,V?OPEN \?ELS20
|
||||
EQUAL? HERE,TOWER-S \?ELS23
|
||||
CALL PERFORM,V?OPEN,TOWER-S-DOOR
|
||||
RTRUE
|
||||
?ELS23: CALL PERFORM,V?OPEN,TOWER-N-DOOR
|
||||
RTRUE
|
||||
?ELS20: EQUAL? PRSA,V?SEARCH \FALSE
|
||||
CALL PERFORM,V?LOOK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TEMPLE-F,RARG
|
||||
EQUAL? RARG,M-END \FALSE
|
||||
IN? PLAYER,TEMPLE \FALSE
|
||||
ZERO? PROTECTED-FROM-EVIL \FALSE
|
||||
ZERO? LETTER-OF-TRANSIT \FALSE
|
||||
CRLF
|
||||
CALL TAKE-TO-TOWER
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TAKE-TO-TOWER
|
||||
SET 'LOCKED-IN-TOWER,TRUE-VALUE
|
||||
SET 'WINNER,PLAYER
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
SET 'ADVENTURER-CHARMED,FALSE-VALUE
|
||||
CALL QUEUE,I-TURTLE,0
|
||||
PRINTI "A low noise begins behind you, and you turn to see hundreds of hunched and hairy shapes. A guttural chant issues from their throats. Near you stands a figure draped in a robe of deepest black, brandishing a vicious dagger. The chant grows louder as the robed figure approaches the altar. As the shapes grab you, the figure in black speaks: ""Take the victim to the tower. I shall prepare for the sacrifice!"" The figures, whose form you can barely guess, take you from here through the northern door and into a prison cell. They "
|
||||
CALL BLT,PLAYER,TOWER-S >ANYTHING-TAKEN
|
||||
ZERO? ANYTHING-TAKEN /?CND3
|
||||
PRINTI "take your possessions from you and "
|
||||
?CND3: PRINTI "close the door with a crash!"
|
||||
CRLF
|
||||
CRLF
|
||||
SET 'SCROLLS-TAKEN,0
|
||||
CALL GOTO,TOWER-N
|
||||
IN? DISPEL-SCROLL,TOWER-S \?CND10
|
||||
REMOVE DISPEL-SCROLL
|
||||
SET 'SCROLLS-TAKEN,1
|
||||
?CND10: IN? BANISH-SCROLL,TOWER-S \?CND13
|
||||
REMOVE BANISH-SCROLL
|
||||
INC 'SCROLLS-TAKEN
|
||||
?CND13: CALL QUEUE,I-TAKE-TO-ALTAR,4
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-TAKE-TO-ALTAR
|
||||
ZERO? PROTECTED-FROM-EVIL /?CND1
|
||||
PRINTR "A gang of hunched and hairy shapes appear, look around cursorily, and then depart."
|
||||
?CND1: CRLF
|
||||
PRINTI "A host of hunched and hairy shapes appear through the window. The cell door opens and you are marched solemnly to the temple and, from there, up the steps to the altar. The large, black figure approaches menacingly. He reaches into his cloak and pulls out a "
|
||||
ZERO? DAGGER-SEEN /?ELS11
|
||||
PRINTI "blood-drenched scimitar"
|
||||
JUMP ?CND9
|
||||
?ELS11: PRINTI "great, glowing dagger"
|
||||
?CND9: PRINTI ". He pulls you onto the altar, and with a murmur of approval from the throng, he plunges the blade into your heart!"
|
||||
CRLF
|
||||
SET 'SACRIFICED?,TRUE-VALUE
|
||||
EQUAL? DEATH-CHEATED,ME /?ELS25
|
||||
SET 'WINNER,PLAYER
|
||||
CALL JIGS-UP,FALSE-VALUE,FALSE-VALUE
|
||||
RSTACK
|
||||
?ELS25: SET 'LOCKED-IN-TOWER,FALSE-VALUE
|
||||
CRLF
|
||||
PRINTI "You feel yourself filled with a strange warmth as your eyes slowly open. You are lying on the altar"
|
||||
ZERO? DAGGER-SEEN \?CND30
|
||||
PRINTI ", a glowing dagger in your chest"
|
||||
?CND30: PRINTI ". You are in no pain, however. The large figure is gone, but the throng of shapes, taking no notice of your movement, is chanting in the temple below."
|
||||
ZERO? DAGGER-SEEN \?CND37
|
||||
PRINTI " You slowly remove the dagger from your chest, but you are not harmed. The blade shines faintly in the light of the flickering torches."
|
||||
?CND37: CRLF
|
||||
CRLF
|
||||
ADD SCORE,TEMPLE-POINT >SCORE
|
||||
SET 'TEMPLE-POINT,0
|
||||
ZERO? DAGGER-SEEN \?CND42
|
||||
SET 'DAGGER-SEEN,TRUE-VALUE
|
||||
MOVE MAGIC-KNIFE,WINNER
|
||||
?CND42: CALL QUEUE,I-LETTER-OF-TRANSIT,10
|
||||
PUT STACK,0,1
|
||||
SET 'LETTER-OF-TRANSIT,TRUE-VALUE
|
||||
CALL GOTO,ALTAR
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-LETTER-OF-TRANSIT
|
||||
EQUAL? HERE,TEMPLE \?ELS3
|
||||
CALL QUEUE,I-LETTER-OF-TRANSIT,3
|
||||
RFALSE
|
||||
?ELS3: SET 'LETTER-OF-TRANSIT,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
|
@ -110,7 +110,7 @@ temple below is a mass of hunched figures, chanting in hideous tones.")
|
|||
(LDESC
|
||||
"This is a small prison cell in the north tower of the temple. Hideous shapes
|
||||
can be seen through the iron-barred window in the prison door. From the temple,
|
||||
a blood-curdling chant can be heard.")
|
||||
a bloodcurdling chant can be heard.")
|
||||
(SOUTH TO TEMPLE IF TOWER-N-DOOR IS OPEN)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(TEXT
|
||||
|
|
|
@ -0,0 +1,591 @@
|
|||
|
||||
|
||||
.FUNCT TERROR-F
|
||||
EQUAL? PRSA,V?ZIFMIA \?ELS5
|
||||
PRINTR "As you cast the zifmia spell, you are overpowered with such a sense of malice that you cannot continue. All in all, a good thing probably."
|
||||
?ELS5: EQUAL? PRSA,V?VAXUM \?ELS9
|
||||
PRINTR "The terror may be friendlier, but with friends like that...."
|
||||
?ELS9: EQUAL? PRSA,V?GUNCHO \FALSE
|
||||
REMOVE TERROR
|
||||
PRINTR "The room fills with a horrible noise, darkens to pitch blackness, and then lightens. The weight of fear lifts."
|
||||
|
||||
|
||||
.FUNCT TMAP-F
|
||||
EQUAL? PRSA,V?KULCAD \?ELS5
|
||||
PRINTI "At once, a maze of lines forms, connecting all of the spots on the map. Suddenly, the world becomes still and cold."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL END-OF-WORLD
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?PUT,V?CLOSE,V?OPEN \?ELS9
|
||||
PRINTR "You can't do that."
|
||||
?ELS9: EQUAL? PRSA,V?DRAW-ON \?ELS13
|
||||
IN? PENCIL,WINNER \?ELS18
|
||||
CALL WRITE-HINT
|
||||
RTRUE
|
||||
?ELS18: PRINTR "You have nothing to draw with."
|
||||
?ELS13: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?READ \FALSE
|
||||
PRINTI "The map consists of a drawing with nine points, each represented by a strange character, with interconnecting thin pencil lines. Using your native alphabet, it looks like this:"
|
||||
CRLF
|
||||
CALL DRAW-TMAZE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PENCIL-F
|
||||
EQUAL? PRSA,V?KULCAD \?ELS5
|
||||
PRINTI "As the pencil dissolves into nothingness, everything becomes still and cold."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL END-OF-WORLD
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTI "The pencil is very old and covered with finely inlaid runes. The point is "
|
||||
GET PENCIL-TBL,PENCIL-COUNT
|
||||
PRINT STACK
|
||||
PRINTI " and the attached eraser is "
|
||||
GET ERASER-TBL,ERASER-COUNT
|
||||
PRINT STACK
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT BLACK-PASSAGE-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The passages are perfectly round and black; the walls seem to be made of carbon."
|
||||
|
||||
|
||||
.FUNCT TMAZE-F,RARG,TBL,NEX=0,FLG=0,OFFS=0,PLU=0,?TMP1
|
||||
IN? BANISH-SCROLL,WINNER \?CND1
|
||||
EQUAL? HERE,T-A \?CND1
|
||||
ZERO? TERROR-TRAPPED /?CND1
|
||||
GRTR? TERROR-POINT,0 \?CND1
|
||||
PRINTI "You hear a horrible anguished scream through the walls of the cavern as the terror realizes that it is trapped and its scroll of power stolen!"
|
||||
CRLF
|
||||
CRLF
|
||||
ADD SCORE,TERROR-POINT >SCORE
|
||||
SET 'TERROR-POINT,0
|
||||
?CND1: EQUAL? RARG,M-LOOK \?ELS12
|
||||
PRINTI "This is a peculiar room, whose cream-colored walls are thin and translucent."
|
||||
CRLF
|
||||
GETP HERE,P?TMAZE >TBL
|
||||
?PRG15: GET TBL,OFFS
|
||||
EQUAL? STACK,-1 \?ELS19
|
||||
JUMP ?REP16
|
||||
?ELS19: ADD OFFS,1
|
||||
GET TBL,STACK
|
||||
EQUAL? STACK,1 \?CND17
|
||||
INC 'NEX
|
||||
?CND17: ADD OFFS,2 >OFFS
|
||||
JUMP ?PRG15
|
||||
?REP16: ZERO? NEX \?ELS24
|
||||
PRINTR "There is not a single exit from this place."
|
||||
?ELS24: EQUAL? NEX,1 \?ELS28
|
||||
PRINTI "An exit is"
|
||||
JUMP ?CND22
|
||||
?ELS28: SET 'PLU,TRUE-VALUE
|
||||
PRINTI "Passages go"
|
||||
?CND22: PRINTI " to the "
|
||||
SET 'OFFS,0
|
||||
?PRG37: GET TBL,OFFS
|
||||
EQUAL? STACK,-1 \?ELS41
|
||||
JUMP ?REP38
|
||||
?ELS41: ADD OFFS,1
|
||||
GET TBL,STACK
|
||||
EQUAL? STACK,1 \?CND39
|
||||
DIV OFFS,2
|
||||
GET TMAZE-DIRS,STACK
|
||||
PRINT STACK
|
||||
GRTR? NEX,2 \?ELS48
|
||||
SET 'FLG,TRUE-VALUE
|
||||
PRINTI ", "
|
||||
JUMP ?CND46
|
||||
?ELS48: EQUAL? NEX,2 \?CND46
|
||||
ZERO? FLG /?CND53
|
||||
PRINTI ","
|
||||
?CND53: PRINTI " and "
|
||||
?CND46: DEC 'NEX
|
||||
?CND39: ADD OFFS,2 >OFFS
|
||||
JUMP ?PRG37
|
||||
?REP38: PRINTI " and "
|
||||
ZERO? PLU /?ELS65
|
||||
PRINTI "they are"
|
||||
JUMP ?CND63
|
||||
?ELS65: PRINTI "it is"
|
||||
?CND63: PRINTR " very strange indeed, perfectly round and black as pitch."
|
||||
?ELS12: EQUAL? RARG,M-BEG \FALSE
|
||||
IN? TERROR,HERE \?ELS81
|
||||
EQUAL? PRSA,V?WALK \FALSE
|
||||
PRINTR "Your feet are leaden with fear, and cold sweat runs down your back as you make your way to the door, but you make no progress. Your mind tells you you are running, but you aren't getting anywhere."
|
||||
?ELS81: EQUAL? PRSA,V?WALK \FALSE
|
||||
EQUAL? HERE,T-A \?ELS95
|
||||
EQUAL? PRSO,P?UP \?ELS95
|
||||
CALL GOTO,DUNGEON
|
||||
RTRUE
|
||||
?ELS95: GRTR? PRSO,P?UP \?ELS99
|
||||
GETP HERE,P?TMAZE >TBL
|
||||
SUB PRSO,P?UP
|
||||
MUL STACK,2
|
||||
SUB STACK,1 >OFFS
|
||||
GET TBL,OFFS
|
||||
EQUAL? STACK,1 \?ELS99
|
||||
SUB OFFS,1
|
||||
GET TBL,STACK
|
||||
CALL GOTO,STACK
|
||||
IN? TERROR,HERE \?ELS104
|
||||
PRINTR "An evil presence pervades the room, its source unseen. Fear seeps into your mind, like fog. You look fearfully around. There is something horrible here."
|
||||
?ELS104: LOC TERROR
|
||||
CALL CONNECTED?,HERE,STACK
|
||||
ZERO? STACK /TRUE
|
||||
PRINTR "You sense that near this place an evil presence lurks. It seems close by and is moving."
|
||||
?ELS99: PRINTR "You can't go that way."
|
||||
|
||||
|
||||
.FUNCT END-OF-WORLD
|
||||
PRINTI "You suddenly feel weak and your knees buckle. Just as you collapse to the ground, you find yourself in the presence of the Circle. They seem tense and frightened and ask desperately about your recent doings. As you tell your tale of the map and pencil, they recoil in horror. ""The Terror is released!"" cries one. Belboz sinks into his throne. ""We are doomed!"" he gasps. One by one, the wizards flee to prepare a hopeless defense."
|
||||
CRLF
|
||||
SET 'SCORE,-10
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DRAW-TMAZE
|
||||
CALL FIXED-FONT-ON
|
||||
CRLF
|
||||
PRINTI "B"
|
||||
CALL ECN,T-A,T-H
|
||||
PRINTI "J"
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
CALL CN,T-A,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SW
|
||||
CALL CN,T-E,T-SOUTH
|
||||
CALL CN,T-E,T-SE
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-A,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SE
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-A,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SE
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
PRINTI " K"
|
||||
CALL ECN,T-C,T-E
|
||||
PRINTI "V"
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SW
|
||||
CALL CN,T-C,T-SOUTH
|
||||
CALL CN,T-C,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SW
|
||||
CALL CN,T-G,T-SOUTH
|
||||
CALL CN,T-G,T-SE
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-E,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SE
|
||||
CRLF
|
||||
CALL CN,T-A,T-SOUTH
|
||||
CALL CN,T-C,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SE
|
||||
CALL CN,T-E,T-SOUTH
|
||||
CALL CN,T-G,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SE
|
||||
CRLF
|
||||
PRINTI "R"
|
||||
CALL ECN,T-B,T-C
|
||||
PRINTI "M"
|
||||
CALL ECN,T-F,T-G
|
||||
PRINTI "F"
|
||||
CRLF
|
||||
PRINTI " "
|
||||
CALL CN,T-B,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-F,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-F,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-H,T-SW
|
||||
CRLF
|
||||
PRINTI " "
|
||||
CALL CN,T-B,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-C,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-F,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-F,T-SE
|
||||
PRINTI " "
|
||||
CALL CN,T-G,T-SOUTH
|
||||
PRINTI " "
|
||||
CALL CN,T-H,T-SW
|
||||
CRLF
|
||||
PRINTI " "
|
||||
CALL CN,T-B,T-SE
|
||||
CALL CN,T-C,T-SOUTH
|
||||
CALL CN,T-F,T-SW
|
||||
PRINTI " "
|
||||
CALL CN,T-F,T-SE
|
||||
CALL CN,T-G,T-SOUTH
|
||||
CALL CN,T-H,T-SW
|
||||
CRLF
|
||||
PRINTI " H"
|
||||
CALL ECN,T-D,T-H
|
||||
PRINTI "P"
|
||||
CRLF
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FIXED-FONT-ON
|
||||
GET 0,8
|
||||
BOR STACK,2
|
||||
PUT 0,8,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FIXED-FONT-OFF
|
||||
GET 0,8
|
||||
BAND STACK,-3
|
||||
PUT 0,8,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CN,L,DIR
|
||||
GETP L,P?TMAZE
|
||||
GET STACK,DIR
|
||||
ZERO? STACK /?ELS5
|
||||
GET T-DIR-TABLE,DIR
|
||||
PRINT STACK
|
||||
RTRUE
|
||||
?ELS5: PRINTI " "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ECN,L,DN,FLG=0
|
||||
GETP L,P?TMAZE
|
||||
GET STACK,T-EAST
|
||||
ZERO? STACK /?ELS3
|
||||
SET 'FLG,TRUE-VALUE
|
||||
PRINTI "---"
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI " "
|
||||
?CND1: GETP DN,P?TMAZE
|
||||
GET STACK,T-SOUTH
|
||||
ZERO? STACK /?ELS12
|
||||
ZERO? FLG /?ELS15
|
||||
PRINTI "+"
|
||||
JUMP ?CND10
|
||||
?ELS15: PRINTI "!"
|
||||
JUMP ?CND10
|
||||
?ELS12: ZERO? FLG /?ELS24
|
||||
PRINTI "-"
|
||||
JUMP ?CND10
|
||||
?ELS24: PRINTI " "
|
||||
?CND10: ZERO? FLG /?ELS36
|
||||
PRINTI "---"
|
||||
RTRUE
|
||||
?ELS36: PRINTI " "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CONNECT,RM1,RM2,FLIP=0,TBL,RMX
|
||||
GETP RM1,P?TMAZE >TBL
|
||||
?PRG1: GET TBL,0 >RMX
|
||||
EQUAL? RMX,-1 \?ELS5
|
||||
PRINTR "The pencil doesn't seem to allow that line to be drawn."
|
||||
?ELS5: EQUAL? RMX,RM2 \?CND3
|
||||
GET TBL,1
|
||||
ZERO? STACK \?ELS12
|
||||
ZERO? FLIP \?CND13
|
||||
CALL CONNECT,RM2,RM1,TRUE-VALUE
|
||||
DEC 'PENCIL-COUNT
|
||||
PRINTI "A thin line now connects the two spots on the map, but the pencil point is "
|
||||
GET PENCIL-TBL,PENCIL-COUNT
|
||||
PRINT STACK
|
||||
PRINTI "."
|
||||
CRLF
|
||||
EQUAL? HERE,RM1,RM2 \?CND13
|
||||
CALL DESCRIBE-NEW-EXIT,RM1,RM2
|
||||
?CND13: PUT TBL,1,1
|
||||
LOC TERROR
|
||||
ZERO? STACK /TRUE
|
||||
LOC TERROR
|
||||
CALL TWALK,STACK
|
||||
ZERO? STACK /TRUE
|
||||
SET 'TERROR-TRAPPED,FALSE-VALUE
|
||||
CALL QUEUE,I-TERROR,-1
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
?ELS12: PRINTR "There is already a line connecting those spots."
|
||||
?CND3: ADD TBL,4 >TBL
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT DISCONNECT,RM1,RM2,FLIP=0,TBL,RMX
|
||||
GETP RM1,P?TMAZE >TBL
|
||||
?PRG1: GET TBL,0 >RMX
|
||||
EQUAL? RMX,-1 \?ELS5
|
||||
PRINTR "Those two spots aren't connected on the map."
|
||||
?ELS5: EQUAL? RMX,RM2 \?CND3
|
||||
GET TBL,1
|
||||
ZERO? STACK \?ELS12
|
||||
PRINTR "Those two spots aren't connected on the map."
|
||||
?ELS12: ZERO? FLIP \?CND17
|
||||
CALL DISCONNECT,RM2,RM1,TRUE-VALUE
|
||||
DEC 'ERASER-COUNT
|
||||
PRINTI "The line between the two spots is erased, leaving the eraser "
|
||||
GET ERASER-TBL,ERASER-COUNT
|
||||
PRINT STACK
|
||||
PRINTI "."
|
||||
CRLF
|
||||
EQUAL? HERE,RM1,RM2 \?CND17
|
||||
CALL DESCRIBE-NEW-EXIT,RM1,RM2,FALSE-VALUE
|
||||
?CND17: PUT TBL,1,0
|
||||
RTRUE
|
||||
?CND3: ADD TBL,4 >TBL
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT DESCRIBE-NEW-EXIT,RM1,RM2,MAKE?=1,TMP,TBL,OFFS=0
|
||||
EQUAL? RM2,HERE \?CND1
|
||||
SET 'TMP,RM1
|
||||
SET 'RM1,RM2
|
||||
SET 'RM2,TMP
|
||||
?CND1: GETP RM1,P?TMAZE >TBL
|
||||
?PRG4: GET TBL,OFFS >TMP
|
||||
EQUAL? TMP,RM2 \?ELS8
|
||||
JUMP ?REP5
|
||||
?ELS8: EQUAL? TMP,-1 \?ELS10
|
||||
PRINTI "*ERROR* BAD-EXIT DESCRIBE-NEW-EXIT"
|
||||
CRLF
|
||||
JUMP ?REP5
|
||||
?ELS10: ADD OFFS,2 >OFFS
|
||||
JUMP ?PRG4
|
||||
?REP5: PRINTI "Suddenly, the "
|
||||
ZERO? MAKE? /?ELS19
|
||||
PRINTI "wall"
|
||||
JUMP ?CND17
|
||||
?ELS19: PRINTI "black passage"
|
||||
?CND17: PRINTI " to the "
|
||||
DIV OFFS,2
|
||||
GET TMAZE-DIRS,STACK
|
||||
PRINT STACK
|
||||
ZERO? MAKE? /?ELS33
|
||||
PRINTI " opens to form a perfectly round and black passage"
|
||||
JUMP ?CND31
|
||||
?ELS33: PRINTI " closes off"
|
||||
?CND31: PRINTR "!"
|
||||
|
||||
|
||||
.FUNCT CONNECTED?,RM1,RM2,TBL,RMX
|
||||
GETP RM1,P?TMAZE >TBL
|
||||
ZERO? TBL /FALSE
|
||||
?PRG4: GET TBL,0 >RMX
|
||||
EQUAL? RMX,-1 /FALSE
|
||||
EQUAL? RMX,RM2 \?CND6
|
||||
GET TBL,1
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
?CND6: ADD TBL,4 >TBL
|
||||
JUMP ?PRG4
|
||||
|
||||
|
||||
.FUNCT I-TERROR,RM,NRM,FLG=0
|
||||
ZERO? TERROR-TRAPPED /?ELS5
|
||||
LOC TERROR >RM
|
||||
CALL CONNECTED?,HERE,RM
|
||||
ZERO? STACK /FALSE
|
||||
MOVE TERROR,HERE
|
||||
PRINT TERROR-ARRIVES
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS5: LOC TERROR >RM
|
||||
CALL TWALK,RM
|
||||
ZERO? STACK /?ELS15
|
||||
SET 'TERROR-TRAPPED,FALSE-VALUE
|
||||
SET 'TWAIT,0
|
||||
GET PATH-TBL,2
|
||||
GET TMAZE-ROOMS,STACK >NRM
|
||||
MOVE TERROR,NRM
|
||||
EQUAL? HERE,NRM \?ELS18
|
||||
PRINT TERROR-ARRIVES
|
||||
CRLF
|
||||
SET 'FLG,TRUE-VALUE
|
||||
JUMP ?CND16
|
||||
?ELS18: CALL CONNECTED?,HERE,NRM
|
||||
ZERO? STACK /?ELS22
|
||||
PRINTI "Somewhere near, an evil presence lurks, probing your mind. It seems to be moving quickly."
|
||||
CRLF
|
||||
SET 'FLG,TRUE-VALUE
|
||||
JUMP ?CND16
|
||||
?ELS22: CALL CONNECTED?,HERE,RM
|
||||
ZERO? STACK /?CND16
|
||||
PRINTI "You can no longer sense the evil presence nearby."
|
||||
CRLF
|
||||
SET 'FLG,TRUE-VALUE
|
||||
?CND16: ZERO? TERROR-MOVED \?CND29
|
||||
SET 'TERROR-MOVED,TRUE-VALUE
|
||||
INC 'LOSSAGE
|
||||
SET 'FLG,TRUE-VALUE
|
||||
PRINTI "You feel that two powerful, evil forces are searching each other out. As they meet, the air lightens. Belboz appears before you. ""Something has disturbed the ancient Terror. Krill himself knows this and will try to use it to his purposes. Already, they may have joined together. You must not allow the Terror to escape, or we are all doomed!"" He fades into the gloom."
|
||||
CRLF
|
||||
?CND29: EQUAL? NRM,T-A \?CND34
|
||||
CALL END-OF-WORLD
|
||||
EQUAL? HERE,T-A \?ELS39
|
||||
SET 'FLG,TRUE-VALUE
|
||||
PRINTI "The presence seems to grow stronger each passing second, beating you down with its awesome power."
|
||||
CRLF
|
||||
RETURN FLG
|
||||
?ELS39: SET 'FLG,TRUE-VALUE
|
||||
PRINTI "At once, a strange and horrible feeling wells up inside of you. An unseen yet awesomely powerful force, exuding pure evil, seems to fill the very chamber."
|
||||
CRLF
|
||||
?CND34: RETURN FLG
|
||||
?ELS15: CALL TNULL-F
|
||||
ZERO? STACK \TRUE
|
||||
IGRTR? 'TWAIT,6 /TRUE
|
||||
CALL TWALK1 >RM
|
||||
ZERO? RM /TRUE
|
||||
LOC TERROR >NRM
|
||||
EQUAL? NRM,T-I /TRUE
|
||||
CALL CONNECTED?,NRM,T-I
|
||||
ZERO? STACK /?ELS58
|
||||
MOVE TERROR,T-I
|
||||
JUMP ?CND54
|
||||
?ELS58: CALL CONNECTED?,NRM,T-F
|
||||
ZERO? STACK /?CND54
|
||||
MOVE TERROR,T-F
|
||||
?CND54: IN? TERROR,HERE \?ELS63
|
||||
PRINT TERROR-ARRIVES
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS63: PRINTR "From somewhere nearby, an unseen force probes you, and you are gripped by a sickening feeling."
|
||||
|
||||
|
||||
.FUNCT TNULL-F
|
||||
SET 'TERROR-TRAPPED,TRUE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TWALK,RM
|
||||
SET 'TWALK-LEVEL,0
|
||||
SET 'TTRIES,0
|
||||
SET 'PSTART,RM
|
||||
CALL PATH-OUT?,RM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TWALK1,TBL,RM,NRM,OFFS=1,CNT
|
||||
LOC TERROR >RM
|
||||
GETP RM,P?CAPACITY
|
||||
GET TWALK-PATHS,STACK >TBL
|
||||
GET TBL,0 >CNT
|
||||
?PRG1: GRTR? OFFS,CNT /FALSE
|
||||
GET TBL,OFFS
|
||||
GET TMAZE-ROOMS,STACK >NRM
|
||||
CALL CONNECTED?,RM,NRM
|
||||
ZERO? STACK /?CND3
|
||||
RETURN NRM
|
||||
?CND3: INC 'OFFS
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT PATH-OUT?,RM,OFFS=1,TBL,CNT=0,NRM
|
||||
INC 'TTRIES
|
||||
INC 'TWALK-LEVEL
|
||||
GETP RM,P?CAPACITY
|
||||
PUT PATH-TBL,TWALK-LEVEL,STACK
|
||||
EQUAL? RM,T-A \?ELS3
|
||||
DEC 'TWALK-LEVEL
|
||||
RTRUE
|
||||
?ELS3: GRTR? TWALK-LEVEL,TWALK-MAX \?CND1
|
||||
DEC 'TWALK-LEVEL
|
||||
RFALSE
|
||||
?CND1: GETP RM,P?CAPACITY
|
||||
GET TWALK-PATHS,STACK >TBL
|
||||
GET TBL,0 >CNT
|
||||
ZERO? CNT \?CND6
|
||||
DEC 'TWALK-LEVEL
|
||||
RTRUE
|
||||
?CND6:
|
||||
?PRG9: GRTR? OFFS,CNT \?ELS13
|
||||
DEC 'TWALK-LEVEL
|
||||
RFALSE
|
||||
?ELS13: GET TBL,OFFS
|
||||
GET TMAZE-ROOMS,STACK >NRM
|
||||
CALL CONNECTED?,RM,NRM
|
||||
ZERO? STACK /?CND11
|
||||
EQUAL? NRM,PSTART /?CND11
|
||||
CALL PATH-OUT?,NRM
|
||||
ZERO? STACK /?CND11
|
||||
DEC 'TWALK-LEVEL
|
||||
RTRUE
|
||||
?CND11: INC 'OFFS
|
||||
JUMP ?PRG9
|
||||
|
||||
|
||||
.FUNCT LEGEND-BOOK-F
|
||||
EQUAL? PRSA,V?CLOSE \?ELS5
|
||||
FSET? PRSO,OPENBIT \?ELS5
|
||||
FCLEAR PRSO,OPENBIT
|
||||
PRINTR "Closed."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?READ /?THN12
|
||||
EQUAL? PRSA,V?OPEN \?ELS11
|
||||
?THN12: FSET PRSO,OPENBIT
|
||||
PRINTR "The first page of the book was the table of contents. Only two chapter names can be read: The Legend of the Unseen Terror and The Legend of the Great Implementers."
|
||||
?ELS11: EQUAL? PRSA,V?TURN \FALSE
|
||||
PRINTR "Rather than turning pages, why don't you simply read the legends."
|
||||
|
||||
|
||||
.FUNCT LEGEND-TWO-F
|
||||
EQUAL? PRSA,V?ZIFMIA \FALSE
|
||||
ZERO? IMP-SEEN \FALSE
|
||||
SET 'IMP-SEEN,TRUE-VALUE
|
||||
PRINTR "The implementers of the world, Marc Blank and Dave Lebling, appear before you, looking quite as confused as yourself. They speak:
|
||||
Dave: ""What's happening here?""
|
||||
Marc: ""Uh, I dunno. YOU wrote this code, not me.""
|
||||
Dave: ""Hmm. Another day, another bug. Let's see here...""
|
||||
They disappear a moment later.
|
||||
Dave's voice: ""That should do it."""
|
||||
|
||||
.ENDI
|
34
verbs.zil
34
verbs.zil
|
@ -297,8 +297,8 @@ game position, or end this session of the game?|
|
|||
<TELL
|
||||
"ENCHANTER|
|
||||
Infocom interactive fiction - a fantasy story|
|
||||
Copyright (C) 1983, 1984 by Infocom, Inc. All rights reserved.|
|
||||
ENCHANTER is a trademark of Infocom, Inc.|
|
||||
Copyright (C) 1983, 1984, 1986 by Infocom, Inc. All rights reserved.|
|
||||
ENCHANTER is a registered trademark of Infocom, Inc.|
|
||||
Release ">
|
||||
<PRINTN <BAND <GET 0 1> *3777*>>
|
||||
<TELL " / Serial number ">
|
||||
|
@ -309,7 +309,7 @@ Release ">
|
|||
<PRINTC <GETB 0 .CNT>>)>>
|
||||
<CRLF>>
|
||||
|
||||
<ROUTINE V-AGAIN ("AUX" OBJ)
|
||||
;<ROUTINE V-AGAIN ("AUX" OBJ)
|
||||
<COND (<==? ,L-PRSA ,V?WALK>
|
||||
<SETG P-WALK-DIR ,L-PRSO>
|
||||
<PERFORM ,L-PRSA ,L-PRSO>)
|
||||
|
@ -539,7 +539,8 @@ manuscript. His wishes prevail, and it is agreed to send you back...." CR>
|
|||
<RFATAL>)
|
||||
(<EQUAL? ,WINNER ,TURTLE>
|
||||
<COND (<IN? ,TURTLE <LOC ,PLAYER>>
|
||||
<TELL "\"I can't go that way.\"" CR>)>
|
||||
<TELL "\"I can't go that way.\"" CR>)
|
||||
(ELSE <NO-RESPONSE>)>
|
||||
<RFATAL>)
|
||||
(<OUTSIDE? ,HERE>
|
||||
<TELL "There's no path in that direction." CR>
|
||||
|
@ -564,16 +565,17 @@ manuscript. His wishes prevail, and it is agreed to send you back...." CR>
|
|||
<JIGS-UP
|
||||
"Oh, no! Something has come up from behind you and feasted on your person!">
|
||||
<RFATAL>)
|
||||
(<AND <EQUAL? ,WINNER ,TURTLE>
|
||||
<IN? ,TURTLE <LOC ,PLAYER>>>
|
||||
<TELL "\"I can't go that way.\"" CR>)
|
||||
(<EQUAL? ,WINNER ,TURTLE>
|
||||
<COND (<IN? ,TURTLE <LOC ,PLAYER>>
|
||||
<TELL "\"I can't go that way.\"" CR>)
|
||||
(ELSE <NO-RESPONSE>)>
|
||||
<RFATAL>)
|
||||
(T
|
||||
<TELL "You can't go that way." CR>
|
||||
<RFATAL>)>>
|
||||
|
||||
<ROUTINE THIS-IS-IT (OBJ)
|
||||
<SETG P-IT-OBJECT .OBJ>
|
||||
<SETG P-IT-LOC ,HERE>>
|
||||
<SETG P-IT-OBJECT .OBJ>>
|
||||
|
||||
<ROUTINE V-INVENTORY ()
|
||||
<COND (<FIRST? ,WINNER> <PRINT-CONT ,WINNER>)
|
||||
|
@ -594,7 +596,8 @@ manuscript. His wishes prevail, and it is agreed to send you back...." CR>
|
|||
<COND ;(<FSET? ,PRSO ,WEARBIT>
|
||||
<TELL "You are already wearing it." CR>)
|
||||
(T <TELL "You already have it." CR>)>)
|
||||
(<AND <FSET? <LOC ,PRSO> ,CONTBIT>
|
||||
(<AND <LOC ,PRSO>
|
||||
<FSET? <LOC ,PRSO> ,CONTBIT>
|
||||
<NOT <FSET? <LOC ,PRSO> ,OPENBIT>>>
|
||||
<TELL "You can't reach that." CR>
|
||||
<RTRUE>)
|
||||
|
@ -804,7 +807,7 @@ manuscript. His wishes prevail, and it is agreed to send you back...." CR>
|
|||
|
||||
<GLOBAL COPR-NOTICE
|
||||
" a transcript of interaction with ENCHANTER|
|
||||
ENCHANTER is a trademark of Infocom, Inc.|
|
||||
ENCHANTER is a registered trademark of Infocom, Inc.|
|
||||
Copyright (c) 1983 Infocom, Inc. All rights reserved.|">
|
||||
|
||||
<ROUTINE V-SCRIPT ()
|
||||
|
@ -1696,14 +1699,15 @@ line. For example, \"ERASE THE LINE BETWEEN X AND Z.\"" CR>)
|
|||
<SET X .N>>>
|
||||
|
||||
<ROUTINE RIPOFF (X WHERE)
|
||||
<COND (<AND <NOT <IN? .X .WHERE>>
|
||||
<NOT <FSET? .X ,INVISIBLE>>
|
||||
<COND (<AND <NOT <FSET? .X ,INVISIBLE>>
|
||||
<NOT <FSET? .X ,SCROLLBIT>>
|
||||
<NOT <EQUAL? .X ,BREAD ,JUG>>
|
||||
<FSET? .X ,TOUCHBIT>
|
||||
<FSET? .X ,TAKEBIT>>
|
||||
<COND (<==? .X ,STRONG-BOX> <RFALSE>)>
|
||||
<COND (.WHERE <MOVE .X .WHERE>)
|
||||
<COND (<==? .X ,STRONG-BOX> <RFALSE>)
|
||||
(<AND .WHERE <IN? .X .WHERE>>
|
||||
<RFALSE>)
|
||||
(.WHERE <MOVE .X .WHERE>)
|
||||
(ELSE <REMOVE .X>)>
|
||||
<RTRUE>)>>
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
-date- -rel- -size- -pre- -obj- -glo- -voc-
|
||||
11/13 -1 64 0 0 0 0
|
||||
11/13 1 64 0 0 0 0
|
||||
11/13 2 108100 20736 255 224 718
|
||||
11/13 18 108100 20736 255 224 718
|
||||
11/13 18 108086 20736 255 224 718
|
||||
11/14 19 122370 20290 255 223 718
|
||||
11/14 19 108296 20739 255 226 718
|
||||
11/14 20 108100 20734 255 223 718
|
||||
11/14 21 108450 20744 255 224 718
|
||||
11/14 22 108450 20744 255 224 718
|
||||
11/14 22 108594 20832 255 224 722
|
||||
11/14 23 108620 20832 255 224 722
|
||||
11/15 24 108628 20832 255 224 722
|
||||
11/18 24 108638 20814 255 224 722
|
||||
7/24 -1 108688 20832 255 224 722
|
||||
7/25 -1 108830 20834 255 225 722
|
||||
7/25 2 108854 20834 255 225 722
|
||||
7/28 25 108854 20834 255 225 722
|
||||
7/28 26 108920 20832 255 224 722
|
||||
8/19 27 109458 21476 255 232 723
|
||||
8/19 27 111120 21476 255 232 723
|
||||
8/19 27 111122 21474 255 231 723
|
||||
8/19 28 111128 21474 255 231 723
|
||||
8/20 29 111126 21474 255 231 723
|
|
@ -0,0 +1,35 @@
|
|||
Assembling Z4.XZAP.4 on Wednesday, August 20, 1986 17:19:27
|
||||
Release: 29
|
||||
|
||||
64 Inserting Z4FREQ.XZAP.1 (626 bytes)
|
||||
690 Inserting Z4DAT.ZAP.15 (20784 bytes)
|
||||
21474 Inserting SYNTAX.ZAP.21 (0 bytes)
|
||||
21474 Inserting MACROS.ZAP.21 (117 bytes)
|
||||
21591 Inserting CLOCK.ZAP.21 (178 bytes)
|
||||
21769 Inserting MAIN.ZAP.21 (2289 bytes)
|
||||
24058 Inserting GPARSER.ZAP.5 (6898 bytes)
|
||||
30956 Inserting VERBS.ZAP.23 (12130 bytes)
|
||||
43086 Inserting RECORD.ZAP.13 (56 bytes)
|
||||
43142 Inserting GLOBALS.ZAP.22 (2799 bytes)
|
||||
45941 Inserting TERROR.ZAP.20 (4413 bytes)
|
||||
50354 Inserting STAIR.ZAP.20 (5043 bytes)
|
||||
55397 Inserting MAGIC.ZAP.19 (6509 bytes)
|
||||
61906 Inserting KNOT.ZAP.19 (1368 bytes)
|
||||
63274 Inserting PURLOINED.ZAP.19 (7343 bytes)
|
||||
70617 Inserting CASTLE.ZAP.19 (6510 bytes)
|
||||
77127 Inserting TEMPLE.ZAP.18 (3385 bytes)
|
||||
80512 Inserting GALLERY.ZAP.18 (2162 bytes)
|
||||
82674 Inserting EGG.ZAP.17 (1699 bytes)
|
||||
84373 Inserting SLEEP.ZAP.17 (2358 bytes)
|
||||
86731 Inserting GEARS.ZAP.17 (5826 bytes)
|
||||
92557 Inserting OUTSIDE.ZAP.17 (3338 bytes)
|
||||
95895 Inserting Z4STR.ZAP.15 (15231 bytes)
|
||||
255 objects.
|
||||
231 globals.
|
||||
723 word vocabulary.
|
||||
|
||||
111126 bytes (109K).
|
||||
21474 bytes of preload.
|
||||
12653 bytes of impure.
|
||||
|
||||
Outputting symbol tables
|
|
@ -0,0 +1,24 @@
|
|||
.INSERT "Z4FREQ"
|
||||
.INSERT "Z4DAT" ; DATA IS IN THIS FILE
|
||||
.INSERT "SYNTAX"
|
||||
.INSERT "MACROS"
|
||||
.INSERT "CLOCK"
|
||||
.INSERT "MAIN"
|
||||
.INSERT "GPARSER"
|
||||
.INSERT "VERBS"
|
||||
.INSERT "RECORD"
|
||||
.INSERT "GLOBALS"
|
||||
.INSERT "TERROR"
|
||||
.INSERT "STAIR"
|
||||
.INSERT "MAGIC"
|
||||
.INSERT "KNOT"
|
||||
.INSERT "PURLOINED"
|
||||
.INSERT "CASTLE"
|
||||
.INSERT "TEMPLE"
|
||||
.INSERT "GALLERY"
|
||||
.INSERT "EGG"
|
||||
.INSERT "SLEEP"
|
||||
.INSERT "GEARS"
|
||||
.INSERT "OUTSIDE"
|
||||
.INSERT "Z4STR"
|
||||
.END
|
|
@ -0,0 +1,66 @@
|
|||
|
||||
.INSERT "Z4DAT" ; DATA IS IN THIS FILE
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "MACROS"
|
||||
|
||||
|
||||
.INSERT "CLOCK"
|
||||
|
||||
|
||||
.INSERT "MAIN"
|
||||
|
||||
|
||||
.INSERT "GPARSER"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "RECORD"
|
||||
|
||||
|
||||
.INSERT "GLOBALS"
|
||||
|
||||
|
||||
.INSERT "TERROR"
|
||||
|
||||
|
||||
.INSERT "STAIR"
|
||||
|
||||
|
||||
.INSERT "MAGIC"
|
||||
|
||||
|
||||
.INSERT "KNOT"
|
||||
|
||||
|
||||
.INSERT "PURLOINED"
|
||||
|
||||
|
||||
.INSERT "CASTLE"
|
||||
|
||||
|
||||
.INSERT "TEMPLE"
|
||||
|
||||
|
||||
.INSERT "GALLERY"
|
||||
|
||||
|
||||
.INSERT "EGG"
|
||||
|
||||
|
||||
.INSERT "SLEEP"
|
||||
|
||||
|
||||
.INSERT "GEARS"
|
||||
|
||||
|
||||
.INSERT "OUTSIDE"
|
||||
|
||||
|
||||
.INSERT "Z4STR"
|
||||
|
||||
.END
|
9
z4.zil
9
z4.zil
|
@ -8,6 +8,8 @@
|
|||
|
||||
">
|
||||
|
||||
<SETG ZORK-NUMBER 4>
|
||||
|
||||
<SNAME "ENCHANTER">
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
@ -17,9 +19,6 @@
|
|||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<OR <GASSIGNED? INSERT-CRUFTY>
|
||||
<DEFINE INSERT-CRUFTY (STR) <INSERT-FILE .STR T>>>
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<ID 0>)>
|
||||
|
||||
|
@ -28,9 +27,7 @@
|
|||
<INSERT-FILE "MACROS" T>
|
||||
<INSERT-FILE "CLOCK" T>
|
||||
<INSERT-FILE "MAIN" T>
|
||||
<INSERT-FILE "PARSER" T>
|
||||
|
||||
<INSERT-CRUFTY "CRUFTY">
|
||||
<INSERT-FILE "GPARSER" T>
|
||||
<INSERT-FILE "VERBS" T>
|
||||
<INSERT-FILE "RECORD" T>
|
||||
<INSERT-FILE "GLOBALS" T>
|
||||
|
|
|
@ -0,0 +1,200 @@
|
|||
.FSTR FSTR?1,"the " ;2104 1052
|
||||
.FSTR FSTR?2,"The " ;1197 399
|
||||
.FSTR FSTR?3,", " ;980 980
|
||||
.FSTR FSTR?4,"and " ;956 478
|
||||
.FSTR FSTR?5,"You " ;813 271
|
||||
.FSTR FSTR?6,"you " ;618 309
|
||||
.FSTR FSTR?7,". " ;570 570
|
||||
.FSTR FSTR?8,"to " ;496 496
|
||||
.FSTR FSTR?9,"of " ;492 492
|
||||
.FSTR FSTR?10,"your " ;447 149
|
||||
.FSTR FSTR?11,"with " ;429 143
|
||||
.FSTR FSTR?12,"is " ;401 401
|
||||
.FSTR FSTR?13,"can't " ;380 76
|
||||
.FSTR FSTR?14,"adventurer " ;351 39
|
||||
.FSTR FSTR?15,"that " ;330 110
|
||||
.FSTR FSTR?16,"are " ;324 162
|
||||
.FSTR FSTR?17,"in " ;263 263
|
||||
.FSTR FSTR?18,"This " ;252 63
|
||||
.FSTR FSTR?19,"into " ;249 83
|
||||
.FSTR FSTR?20,"which " ;244 61
|
||||
.FSTR FSTR?21,"have " ;240 80
|
||||
.FSTR FSTR?22,"There " ;235 47
|
||||
.FSTR FSTR?23,"seems " ;224 56
|
||||
.FSTR FSTR?24,"from " ;219 73
|
||||
.FSTR FSTR?25,"don't " ;210 42
|
||||
.FSTR FSTR?26,"small " ;192 48
|
||||
.FSTR FSTR?27,"through " ;192 32
|
||||
.FSTR FSTR?28,"nothing " ;186 31
|
||||
.FSTR FSTR?29,"There's " ;184 23
|
||||
.FSTR FSTR?30,"would " ;176 44
|
||||
.FSTR FSTR?31,"spell " ;176 44
|
||||
.FSTR FSTR?32,"but " ;166 83
|
||||
.FSTR FSTR?33,"something " ;160 20
|
||||
.FSTR FSTR?34,"It's " ;150 30
|
||||
.FSTR FSTR?35,"for " ;142 71
|
||||
.FSTR FSTR?36,"his " ;140 70
|
||||
.FSTR FSTR?37,"turtle " ;140 28
|
||||
.FSTR FSTR?38,"can " ;136 68
|
||||
.FSTR FSTR?39,"temple " ;130 26
|
||||
.FSTR FSTR?40,"this " ;129 43
|
||||
.FSTR FSTR?41,"be " ;123 123
|
||||
.FSTR FSTR?42,"here" ;122 61
|
||||
.FSTR FSTR?43,"anything " ;119 17
|
||||
.FSTR FSTR?44,"before " ;115 23
|
||||
.FSTR FSTR?45,"around " ;115 23
|
||||
.FSTR FSTR?46,"already " ;114 19
|
||||
.FSTR FSTR?47,"not " ;110 55
|
||||
.FSTR FSTR?48,"It " ;108 54
|
||||
.FSTR FSTR?49,"seem " ;108 36
|
||||
.FSTR FSTR?50,"scroll" ;108 27
|
||||
.FSTR FSTR?51,"spell" ;105 35
|
||||
.FSTR FSTR?52,"scroll " ;105 21
|
||||
.FSTR FSTR?53,"continues " ;104 13
|
||||
.FSTR FSTR?54,"adventurer" ;104 13
|
||||
.FSTR FSTR?55,"appears " ;102 17
|
||||
.FSTR FSTR?56,"other " ;100 25
|
||||
.FSTR FSTR?57,"very " ;99 33
|
||||
.FSTR FSTR?58,"Translucent " ;99 9
|
||||
.FSTR FSTR?59,"A " ;97 97
|
||||
.FSTR FSTR?60,"on " ;97 97
|
||||
.FSTR FSTR?61,"Circle " ;96 16
|
||||
.FSTR FSTR?62,"courtyard " ;96 12
|
||||
.FSTR FSTR?63,"that" ;94 47
|
||||
.FSTR FSTR?64,"north " ;92 23
|
||||
.FSTR FSTR?65,"great " ;92 23
|
||||
.FSTR FSTR?66,"standing " ;91 13
|
||||
.FSTR FSTR?67,"doesn't " ;91 13
|
||||
.FSTR FSTR?68,"Krill " ;90 18
|
||||
.FSTR FSTR?69,"as " ;88 88
|
||||
.FSTR FSTR?70,"large " ;88 22
|
||||
.FSTR FSTR?71,"you" ;87 87
|
||||
.FSTR FSTR?72,"it " ;87 87
|
||||
.FSTR FSTR?73,"out " ;86 43
|
||||
.FSTR FSTR?74,"room " ;84 28
|
||||
.FSTR FSTR?75,"looks " ;84 21
|
||||
.FSTR FSTR?76,"You're " ;84 12
|
||||
.FSTR FSTR?77,"He " ;82 41
|
||||
.FSTR FSTR?78,"door " ;81 27
|
||||
.FSTR FSTR?79,"They " ;80 20
|
||||
.FSTR FSTR?80,"only " ;78 26
|
||||
.FSTR FSTR?81,"like " ;78 26
|
||||
.FSTR FSTR?82,"here " ;78 26
|
||||
.FSTR FSTR?83,"east " ;78 26
|
||||
.FSTR FSTR?84,"glowing " ;78 13
|
||||
.FSTR FSTR?85,"its " ;76 38
|
||||
.FSTR FSTR?86,"there " ;76 19
|
||||
.FSTR FSTR?87,"their " ;76 19
|
||||
.FSTR FSTR?88,"open " ;75 25
|
||||
.FSTR FSTR?89,"much " ;75 25
|
||||
.FSTR FSTR?90,"stands " ;75 15
|
||||
.FSTR FSTR?91,"behind " ;75 15
|
||||
.FSTR FSTR?92,"has " ;72 36
|
||||
.FSTR FSTR?93,"south" ;72 24
|
||||
.FSTR FSTR?94,"more " ;72 24
|
||||
.FSTR FSTR?95,"dark " ;72 24
|
||||
.FSTR FSTR?96,"leads " ;72 18
|
||||
|
||||
|
||||
;word frequency table of 96 most common words
|
||||
|
||||
WORDS:: .TABLE
|
||||
FSTR?1
|
||||
FSTR?2
|
||||
FSTR?3
|
||||
FSTR?4
|
||||
FSTR?5
|
||||
FSTR?6
|
||||
FSTR?7
|
||||
FSTR?8
|
||||
FSTR?9
|
||||
FSTR?10
|
||||
FSTR?11
|
||||
FSTR?12
|
||||
FSTR?13
|
||||
FSTR?14
|
||||
FSTR?15
|
||||
FSTR?16
|
||||
FSTR?17
|
||||
FSTR?18
|
||||
FSTR?19
|
||||
FSTR?20
|
||||
FSTR?21
|
||||
FSTR?22
|
||||
FSTR?23
|
||||
FSTR?24
|
||||
FSTR?25
|
||||
FSTR?26
|
||||
FSTR?27
|
||||
FSTR?28
|
||||
FSTR?29
|
||||
FSTR?30
|
||||
FSTR?31
|
||||
FSTR?32
|
||||
FSTR?33
|
||||
FSTR?34
|
||||
FSTR?35
|
||||
FSTR?36
|
||||
FSTR?37
|
||||
FSTR?38
|
||||
FSTR?39
|
||||
FSTR?40
|
||||
FSTR?41
|
||||
FSTR?42
|
||||
FSTR?43
|
||||
FSTR?44
|
||||
FSTR?45
|
||||
FSTR?46
|
||||
FSTR?47
|
||||
FSTR?48
|
||||
FSTR?49
|
||||
FSTR?50
|
||||
FSTR?51
|
||||
FSTR?52
|
||||
FSTR?53
|
||||
FSTR?54
|
||||
FSTR?55
|
||||
FSTR?56
|
||||
FSTR?57
|
||||
FSTR?58
|
||||
FSTR?59
|
||||
FSTR?60
|
||||
FSTR?61
|
||||
FSTR?62
|
||||
FSTR?63
|
||||
FSTR?64
|
||||
FSTR?65
|
||||
FSTR?66
|
||||
FSTR?67
|
||||
FSTR?68
|
||||
FSTR?69
|
||||
FSTR?70
|
||||
FSTR?71
|
||||
FSTR?72
|
||||
FSTR?73
|
||||
FSTR?74
|
||||
FSTR?75
|
||||
FSTR?76
|
||||
FSTR?77
|
||||
FSTR?78
|
||||
FSTR?79
|
||||
FSTR?80
|
||||
FSTR?81
|
||||
FSTR?82
|
||||
FSTR?83
|
||||
FSTR?84
|
||||
FSTR?85
|
||||
FSTR?86
|
||||
FSTR?87
|
||||
FSTR?88
|
||||
FSTR?89
|
||||
FSTR?90
|
||||
FSTR?91
|
||||
FSTR?92
|
||||
FSTR?93
|
||||
FSTR?94
|
||||
FSTR?95
|
||||
FSTR?96
|
||||
.ENDT
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,360 @@
|
|||
|
||||
|
||||
; STRINGS ARE DEFINED HERE
|
||||
|
||||
STRBEG::
|
||||
|
||||
.GSTR STR?1,"an "
|
||||
.GSTR STR?2,"a "
|
||||
.GSTR STR?3,"Charlatan"
|
||||
.GSTR STR?4,"Parlor Magician"
|
||||
.GSTR STR?5,"Novice Enchanter"
|
||||
.GSTR STR?6,"Intermediate Enchanter"
|
||||
.GSTR STR?7,"Enchanter"
|
||||
.GSTR STR?8,"Expert Enchanter"
|
||||
.GSTR STR?9,"Master Enchanter"
|
||||
.GSTR STR?10,"Candidate for membership in the Circle of Enchanters"
|
||||
.GSTR STR?11,"Member of the Circle of Enchanters"
|
||||
.GSTR STR?12,"Oh, no! Something has come up from behind you and feasted on your person!"
|
||||
.GSTR STR?13," "
|
||||
.GSTR STR?14," "
|
||||
.GSTR STR?15," "
|
||||
.GSTR STR?16," "
|
||||
.GSTR STR?17," "
|
||||
.GSTR STR?18," a transcript of interaction with ENCHANTER
|
||||
ENCHANTER is a trademark of Infocom, Inc.
|
||||
Copyright (c) 1983 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
.GSTR STR?19,"Oh, no! Something slithered alongside you and feasted on your person!"
|
||||
.GSTR STR?20,", but the jug is now empty."
|
||||
.GSTR STR?21,", and there's still some left."
|
||||
.GSTR STR?22,", and there's plenty more."
|
||||
.GSTR STR?23,", and there's lots more where that came from."
|
||||
.GSTR STR?24,", and the jug's practically full."
|
||||
.GSTR STR?25,"Hello."
|
||||
.GSTR STR?26,"Good day."
|
||||
.GSTR STR?27,"Nice weather we've been having lately."
|
||||
.GSTR STR?28,"Good-bye."
|
||||
.GSTR STR?29,"You should have looked before you leaped."
|
||||
.GSTR STR?30,"I'm afraid that leap was a bit much for your weak frame."
|
||||
.GSTR STR?31,"Unfortunately, you were holding it at the time."
|
||||
.GSTR STR?32,"kill"
|
||||
.GSTR STR?33,"attack"
|
||||
.GSTR STR?34,"Kicking the "
|
||||
.GSTR STR?35,"Waving the "
|
||||
.GSTR STR?36,"Playing in this way with the "
|
||||
.GSTR STR?37,"Fiddling with the "
|
||||
.GSTR STR?38,"Pushing the "
|
||||
.GSTR STR?39,"Trying to damage the "
|
||||
.GSTR STR?40," doesn't do anything."
|
||||
.GSTR STR?41," doesn't accomplish anything."
|
||||
.GSTR STR?42," has no desirable effect."
|
||||
.GSTR STR?43,"No spell would help with that!"
|
||||
.GSTR STR?44,"It would take more magic than you've got!"
|
||||
.GSTR STR?45,"You can't be serious."
|
||||
.GSTR STR?46,"You must have had a silliness spell cast upon you."
|
||||
.GSTR STR?47,"F"
|
||||
.GSTR STR?48,"You experience the most peculiar sensation of being simultaneously shrunken and sucked into what might best be likened to a black hole. The effect is not without its exhilarating aspect; as a way of life, however, it leaves much to be desired."
|
||||
.GSTR STR?49,"An empty jug lies in a corner of the room, against the overturned table."
|
||||
.GSTR STR?50,"foo"
|
||||
.GSTR STR?51,"mostly empty."
|
||||
.GSTR STR?52,"half full."
|
||||
.GSTR STR?53,"nearly full."
|
||||
.GSTR STR?54,"full."
|
||||
.GSTR STR?55,"Lying on the ground is an old parchment map."
|
||||
.GSTR STR?56,"In one corner of the room is a badly worn pencil, inscribed with runes."
|
||||
.GSTR STR?57,"It says ""Frobozz Magic Pencil Company."" Some sort of joke, probably."
|
||||
.GSTR STR?58,"gone"
|
||||
.GSTR STR?59,"very nearly gone"
|
||||
.GSTR STR?60,"nearly gone"
|
||||
.GSTR STR?61,"not fit for use"
|
||||
.GSTR STR?62,"barely usable"
|
||||
.GSTR STR?63,"negligible"
|
||||
.GSTR STR?64,"/"
|
||||
.GSTR STR?65,"!"
|
||||
.GSTR STR?66,"\"
|
||||
.GSTR STR?67,"northwest"
|
||||
.GSTR STR?68,"west"
|
||||
.GSTR STR?69,"southwest"
|
||||
.GSTR STR?70,"south"
|
||||
.GSTR STR?71,"southeast"
|
||||
.GSTR STR?72,"east"
|
||||
.GSTR STR?73,"northeast"
|
||||
.GSTR STR?74,"north"
|
||||
.GSTR STR?75,"An evil presence, borne on a cold blast of air, seems to move beside you, weighing you down with emanations of malice and hatred. A cold fear covers you like fog."
|
||||
.GSTR STR?76,"Amid the tubes is an old and dusty book."
|
||||
.GSTR STR?77,"This legend, written in an ancient tongue, goes something like this: At one time a shapeless and formless manifestation of evil was disturbed from millenia of sleep. It was so powerful that it required the combined wisdom of the leading enchanters of that age to conquer it. The legend tells how the enchanters lured the Terror ""to a recess deep within the earth"" by placing there a powerful spell scroll. When it had reached the scroll, the enchanters trapped it there with a spell that encased it in the living rock. The Terror was so horrible that none would dare speak of it. A comment at the end of the narration indicates that the story is considered to be quite fanciful; no other chronicles of the age mention the Terror in any form."
|
||||
.GSTR STR?78,"This legend, written in an ancient tongue, speaks of the creation of the world. A more absurd account can hardly be imagined. The universe, it seems, was created by ""Implementers"" who directed the running of great engines. These engines produced this world and others, strange and wondrous, as a test or puzzle for others of their kind. It goes on to state that these beings stand ready to aid those entrapped within their creation. The great magician-philosopher Helfax notes that a creation of this kind is morally and logically indefensible and discards the theory as ""colossal claptrap and kludgery."""
|
||||
.GSTR STR?79,"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."
|
||||
.GSTR STR?80,"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."
|
||||
.GSTR STR?81,"This is a circular pit of apparently infinite depth. The walls are of crudely dressed stone. No floor is visible."
|
||||
.GSTR STR?82,"This is a room carved out of black basalt, eerily lit by flickering fires and the dim glow of magic."
|
||||
.GSTR STR?83,"The pit yawns before you, and the izyuk spell has worn off!"
|
||||
.GSTR STR?84,"The warlock Krill, robed in black, stands before you, in eager anticipation of your death."
|
||||
.GSTR STR?85,"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!"
|
||||
.GSTR STR?86,"A dragon, spouting flame, approaches!"
|
||||
.GSTR STR?87,"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!"""
|
||||
.GSTR STR?88,"sliced into bits by the monster!"
|
||||
.GSTR STR?89,"incinerated by the dragon!"
|
||||
.GSTR STR?90,"write a magic spell into a spell book"
|
||||
.GSTR STR?91,"cause something to give off light"
|
||||
.GSTR STR?92,"survive unnatural death"
|
||||
.GSTR STR?93,"magically summon a being"
|
||||
.GSTR STR?94,"A scroll ornamented in gold leaf is here."
|
||||
.GSTR STR?95,"make a hostile creature your friend"
|
||||
.GSTR STR?96,"open even locked or enchanted objects"
|
||||
.GSTR STR?97,"quench an open flame"
|
||||
.GSTR STR?98,"converse with the beasts in their own tongue"
|
||||
.GSTR STR?99,"Lying on the ground, and slightly damaged, is a stained scroll."
|
||||
.GSTR STR?100,"make things move with greater speed"
|
||||
.GSTR STR?101,"A scroll of old, brittle parchment is here."
|
||||
.GSTR STR?102,"dispel a magic spell"
|
||||
.GSTR STR?103,"protect magic users from harm by evil beings"
|
||||
.GSTR STR?104,"safely protect a small object as though in a strong box"
|
||||
.GSTR STR?105,"A scroll emanating power is here."
|
||||
.GSTR STR?106,"banish the victim to another plane of existence"
|
||||
.GSTR STR?107,"Discarded beneath a nearby tree is a slightly crumpled scroll."
|
||||
.GSTR STR?108,"repair willful damage"
|
||||
.GSTR STR?109,"change a creature into a small amphibian"
|
||||
.GSTR STR?110,"fly like a bird"
|
||||
.GSTR STR?111,"Lying on the floor is a purple scroll."
|
||||
.GSTR STR?112,"create gratuitous fireworks"
|
||||
.GSTR STR?113,"once"
|
||||
.GSTR STR?114,"twice"
|
||||
.GSTR STR?115,"thrice"
|
||||
.GSTR STR?116,"four times"
|
||||
.GSTR STR?117,"five times"
|
||||
.GSTR STR?118,"A dull aching fills your head, and your mind is again probed, more deeply than when you entered the castle."
|
||||
.GSTR STR?119,"Your head is filled with a heavy sensation, as though an enormous weight were being borne by it. Your mind is again probed, this time very deeply, testing and learning. The feeling passes after a long moment."
|
||||
.GSTR STR?120,"A knife seems to split your head apart. A deep, black presence seems to enter and probe, deep and sure. After what seems like an eternity, it passes, leaving you with a throbbing headache."
|
||||
.GSTR STR?121,"There is a faintly glowing strong box here."
|
||||
.GSTR STR?122,"As you open"
|
||||
.GSTR STR?123,"The rezrov spell bursts"
|
||||
.GSTR STR?124,"The kulcad spell dispels"
|
||||
.GSTR STR?125,"This small room must have been a closet of some sort. To the north is a passage leading out into a courtyard. Another exit is to the south."
|
||||
.GSTR STR?126,"A jewelled box, wrapped in a partly untied tangle of rope, is on the ground."
|
||||
.GSTR STR?127,"In the exact center of the room is a large, jewelled box. It is wrapped in tight coils of thin rope. You try to follow the strands with your eye, but become hopelessly lost in the jumble of thousands of loops and knots."
|
||||
.GSTR STR?128,"A jewelled box, wrapped tightly in rope, is on the ground."
|
||||
.GSTR STR?129,"A jewelled box is sitting on the ground."
|
||||
.GSTR STR?130,"This room in the high tower appears to be a map room, with hundreds of ancient maps covering the walls. A huge globe, made of gold, sits on a pedestal in the center of the room. Through the tower windows can be seen a vast forest stretching out to the northeast and the sea, covered in fog, to the east and south. Stairs to the south lead to the bottom of the tower."
|
||||
.GSTR STR?131,"Through the windows you can discern a vast forest to the northeast and the fog-shrouded sea stretching out to the east and south."
|
||||
.GSTR STR?132,"You've really gotten those tentacles in an uproar. Sixty-three of them grab you and pull in sixty-three different directions. Not good for the digestion."
|
||||
.GSTR STR?133,"""Give Up"""
|
||||
.GSTR STR?134,"""Go Away"""
|
||||
.GSTR STR?135,"""Had Enough?"""
|
||||
.GSTR STR?136,"""Don't Bother"""
|
||||
.GSTR STR?137,"Two, or perhaps three, monster heads reach out for you, spearing you in the process."
|
||||
.GSTR STR?138,"One of the gargoyles spits in your direction, burning your arm with incendiary byproducts."
|
||||
.GSTR STR?139,"Three or four tentacles grab you briefly and send you flying."
|
||||
.GSTR STR?140,"You manage to reach one of the iron chains before it turns into a pair of teeth and bites you."
|
||||
.GSTR STR?141,"The floating sign, once serene, knocks you delicately over the head."
|
||||
.GSTR STR?142,"The door opens, and nineteen demons, each a cross between a carrot and a sledge hammer, march out from behind it, knock you senseless, and return, the last closing the door behind it."
|
||||
.GSTR STR?143,"This is the western end of the"
|
||||
.GSTR STR?144,"This is a spot within the long"
|
||||
.GSTR STR?145,"This is the eastern end of the"
|
||||
.GSTR STR?146,"stares in your direction but seems not to see you"
|
||||
.GSTR STR?147,"is combing his hair"
|
||||
.GSTR STR?148,"is wandering around his surroundings, seemingly lost"
|
||||
.GSTR STR?149,"is deep in thought"
|
||||
.GSTR STR?150,"The adventurer, startled momentarily, fights back with surprising skill. In fact, his skill is much greater than your own, and he quickly dispatches you."
|
||||
.GSTR STR?151," eyes your possessions intently."
|
||||
.GSTR STR?152,", not overly tactful, asks to see what you're holding."
|
||||
.GSTR STR?153," asks what you would be needing treasures for."
|
||||
.GSTR STR?154," offers to relieve you of some of your possessions."
|
||||
.GSTR STR?155,"smiles at you like an idiot."
|
||||
.GSTR STR?156,"pulls out his map, a convoluted collection of lines, arrows, and boxes, and checks it briefly."
|
||||
.GSTR STR?157,"stares at his possessions as if expecting a revelation."
|
||||
.GSTR STR?158,"tries to make some small talk, but he only mumbles. He'll have to speak up if he expects you to hear him."
|
||||
.GSTR STR?159,"asks for directions to Flood Control Dam #3."
|
||||
.GSTR STR?160,"tries to make some small talk, but only mumbles. He'll have to speak up if he expects you to hear him."
|
||||
.GSTR STR?161,"waves his sword menacingly in your direction."
|
||||
.GSTR STR?162,"fends you off with his sword."
|
||||
.GSTR STR?163,"attempts to eat his sword. I don't think it would agree with him."
|
||||
.GSTR STR?164,"downstairs"
|
||||
.GSTR STR?165,"upstairs"
|
||||
.GSTR STR?166,"in"
|
||||
.GSTR STR?167,"out"
|
||||
.GSTR STR?168,"You are on a long pebbled path, stretching out to the north. To the south the path continues through an open arch into an open area."
|
||||
.GSTR STR?169,"This is the westernmost point in a large open courtyard. The huge entrance gate to the castle looms ominously to the west. The courtyard widens as it proceeds to the east, where a large, ivy-covered temple stands. On either side of the temple are small towers. Far beyond the temple, high above, are two large towers marking the corners of the castle. A squat dark turret hunches between them, blackening the sky around it. A small path leads into the castle to the south."
|
||||
.GSTR STR?170,"This narrow promenade stretches into darkness to the south and, through an archway, toward an open area to the north."
|
||||
.GSTR STR?171,"This dark and damp spot is at the base of the southwest tower of the castle. Two corridors lead off to the north and east. A winding staircase ascends into the tower."
|
||||
.GSTR STR?172,"The eyrie is a round bedroom high in the tower. Narrow windows overlook the outside. A stone stairway leads down."
|
||||
.GSTR STR?173,"Through the window, you can see a long twisting road making its way through a land of low, smoky hills."
|
||||
.GSTR STR?174,"The bedpost pops open, revealing a small compartment and, nestled inside, a gold leaf scroll!"
|
||||
.GSTR STR?175,"The damp corridor continues east and west from here. A dark and forbidding stairway leads down to the south. In addition, a narrow passage leads to the north."
|
||||
.GSTR STR?176,"A dank and forgotten pit contains the dungeons. There is a cell to the north, and a partly blocked passage leads even deeper into the earth. It looks as if there was once a mortared stone wall blocking this passage, but it has crumbled and collapsed, reopening the tunnel."
|
||||
.GSTR STR?177,"Unfortunately, this passage was never completed, so you don't get very far (neither did the prisoners)."
|
||||
.GSTR STR?178,"Lying near the door is a silver spoon, discarded by the prisoners as too soft to dig with. It is only slightly worn."
|
||||
.GSTR STR?179,"This short piece of corridor continues to the north and south."
|
||||
.GSTR STR?180,"This is the base of the southeast tower of the castle. From atop a winding staircase comes a loud crashing and screeching noise. To the west is a corridor and the southern gate of the castle."
|
||||
.GSTR STR?181,"A group of hunched and hairy shapes is standing here."
|
||||
.GSTR STR?182,"The kitchen is dusty and disused. Old bones litter the floor, and the carving knives are rusty. A rat nest fills one of the ovens, and cobwebs are everywhere. There is some rotting food in a garbage heap in one corner."
|
||||
.GSTR STR?183,"The kitchen has been freshly used. The oven, though empty, is still warm. Bones litter the floor, and the carving knives are bloody. The bones give all too clear an indication of the nature of the viands prepared here."
|
||||
.GSTR STR?184,"The corridor widens here to form a large hall. To the north and south are small passages, and to the east is what appears to be an enormous spiral staircase. A passage to the west leads into a courtyard. The walls here are scarred and black, and a strange heaviness hangs in the air."
|
||||
.GSTR STR?185,"Lying in a heap on the ground are what appear to be human bones, picked entirely clean."
|
||||
.GSTR STR?186,"This is a library, or rather it was until it was ransacked and despoiled. Most of the contents of the room have been burned in a huge bonfire in the center of the room. Hundreds of charred and empty tubes are scattered about, as if by someone searching, so ashes are strewn about. There are rat tracks in the ashes."
|
||||
.GSTR STR?187,"Inspection has revealed that the tracks lead into a small hole in the wall."
|
||||
.GSTR STR?188,"This small open area stands at the old north gate of the castle, now badly rusted. Through the gate, a forest can be seen. To the west, a hall glows with light, and to the south, the dark castle can be reentered. A narrow passage to the east leads to the base of the northeast tower."
|
||||
.GSTR STR?189,"The gate is rusted shut."
|
||||
.GSTR STR?190,"You are in a dark forest, just north of a rusted gate. Except to the east and south, the forest is thick all around you."
|
||||
.GSTR STR?191,"The forest is deep and dark. I wouldn't go in there."
|
||||
.GSTR STR?192,"You are in a thick forest shading into a deep and miasmic swamp. The ground is very wet and boggy here, and footing is treacherous. Lily pads cover the surface of the water, and frogs abound. Things look drier to the west."
|
||||
.GSTR STR?193,"There could be quicksand there. You should stay here."
|
||||
.GSTR STR?194,"what they will do if they ever become princes again."
|
||||
.GSTR STR?195,"the finer points of insect flavoring."
|
||||
.GSTR STR?196,"the politics of lily pad assignment."
|
||||
.GSTR STR?197,"the Interlogic series of prose adventures."
|
||||
.GSTR STR?198,"the recent disturbing rise in the number of predators in the swamp."
|
||||
.GSTR STR?199,"Hiya! Seen any juicy flies?"
|
||||
.GSTR STR?200,"Awful day, isn't it?"
|
||||
.GSTR STR?201,"Tell Belboz that Fr'nb-ap says hello!"
|
||||
.GSTR STR?202,"This is the base of the northwest tower of the castle. A winding staircase leads up into the tower itself, and passages lead from here to the east and south."
|
||||
.GSTR STR?203,"This is the northern part of the large interior courtyard of the castle. The vast lawns continue from here south and west. To the southeast stands a huge temple, on either side of which are dark towers. The courtyard continues east along a narrow path."
|
||||
.GSTR STR?204,"The northern part of the interior courtyard is grey and lifeless. The vast lawns are withered and covered in black ash stretching from south to west. The temple stands to the southeast, and the courtyard continues east."
|
||||
.GSTR STR?205,"You are in the center of a large courtyard, which surrounds you in all directions. Directly in front of you, to the east, is a large temple flanked by two smaller towers. Behind the temple can be seen the two eastern towers of the castle, shrouded in fog, and the single dark turret, black as night and sending dark streams of smoke into a lowering sky. From the temple comes a howling, haunting chant."
|
||||
.GSTR STR?206,"You are in the center of a large courtyard, which surrounds you. Everything around you is ashen and grey, and the air seems miasmic and oppressive. The dead grass seems to grab at your feet as you stand gazing around. To the east is a temple flanked by two smaller towers. Behind it can be seen the two eastern towers of the castle, shrouded in blood-red fog. Between them is a dark turret, black and ominous as night. It sends dark streams of smoke curling around everything near it. From the temple can be heard a mournful chant."
|
||||
.GSTR STR?207,"This is the southern part of the great courtyard, which spreads out to the north and west. A narrow stretch of grass continues to the east. To the northeast stands the temple, flanked by two small towers."
|
||||
.GSTR STR?208,"This is the southern part of the courtyard, spreading north and west. The ground is ashen and grey, and the air heavy with death. The dead grass seems to grab at your feet. A narrow stretch of scorched earth continues to the east. To the northeast stands the temple, flanked by two small towers."
|
||||
.GSTR STR?209,"You are north of a small tower which connects with the temple to the south. A large courtyard can be seen to the west and a smaller one to the southeast."
|
||||
.GSTR STR?210,"There is no entrance to the tower here."
|
||||
.GSTR STR?211,"You are south of a small tower which connects with the temple to the north. A large courtyard can be seen to the west and a smaller one to the northeast."
|
||||
.GSTR STR?212,"You are standing in a small courtyard between a large open hall to the east and a temple to the west. The temple is flanked to the north and south by two small towers. Paths cross the lawn to the northwest and southwest."
|
||||
.GSTR STR?213,"You are in a courtyard between an open hall to the east and a temple to the west. The temple is flanked, north and south, by twin towers. Paths cross the scarred lawn to the northwest and southwest. Nothing now grows here, however, and a foul stench fills the air."
|
||||
.GSTR STR?214,"This is the interior of a huge temple of primitive construction. A few flickering torches cast a sallow illumination over the altar, which, atop a row of stairs, is still drenched with the blood of human sacrifice. Behind the altar is an enormous statue of a demon which seems to reach towards you with dripping fangs and razor-sharp talons. Two open doorways lead out of the temple to the east and west, while two wooden doors stand at the north and south. A mass of hunched figures in the temple are chanting a haunting tune. They don't seem interested in your presence."
|
||||
.GSTR STR?215,"This is the altar of the temple. Acrid smoke fills the air, and a feeling of lurking evil is all around. A low droning, just at the lowest end of your perception, causes your hair to stand on end. Behind the altar is an enormous statue of a demon which reaches toward you with dripping fangs and razor-sharp talons. The fangs and talons are blood-red. In the temple below is a mass of hunched figures, chanting in hideous tones."
|
||||
.GSTR STR?216,"This is a small prison cell in the north tower of the temple. Hideous shapes can be seen through the iron-barred window in the prison door. From the temple, a bloodcurdling chant can be heard."
|
||||
.GSTR STR?217,"Hideous shapes chanting in unison can be seen through the cell window."
|
||||
.GSTR STR?218,"This fabulous room commands a magnificent view of the Lonely Mountain which lies to the north and west. The room itself is filled with beautiful chests and cabinets which once contained precious jewels and other objets d'art. These are empty. Winding stone stairs lead down to the base of the tower."
|
||||
.GSTR STR?219,"You can see the Lonely Mountain to the northwest."
|
||||
.GSTR STR?220,"There is an ornamented egg here, both beautiful and complex. It is carefully crafted and bears further examination."
|
||||
.GSTR STR?221,"turned"
|
||||
.GSTR STR?222,"twisted"
|
||||
.GSTR STR?223,"shoved"
|
||||
.GSTR STR?224,"wound"
|
||||
.GSTR STR?225,"pushed"
|
||||
.GSTR STR?226,"The scroll is damaged beyond readability. You can make out the word ""summon,"" in the title, but that's all."
|
||||
.GSTR STR?227,"just past dawn"
|
||||
.GSTR STR?228,"early morning"
|
||||
.GSTR STR?229,"mid-morning"
|
||||
.GSTR STR?230,"around noon"
|
||||
.GSTR STR?231,"early afternoon"
|
||||
.GSTR STR?232,"mid-afternoon"
|
||||
.GSTR STR?233,"early evening"
|
||||
.GSTR STR?234,"mid evening"
|
||||
.GSTR STR?235,"late evening"
|
||||
.GSTR STR?236,"midnight"
|
||||
.GSTR STR?237,"in the early hours"
|
||||
.GSTR STR?238,"pre-dawn"
|
||||
.GSTR STR?239,"dawn"
|
||||
.GSTR STR?240,"You pass out from lack of water and die."
|
||||
.GSTR STR?241,"Your mouth is getting rather dry."
|
||||
.GSTR STR?242,"You are becoming quite thirsty."
|
||||
.GSTR STR?243,"You are very thirsty now. You'd better have a drink soon."
|
||||
.GSTR STR?244,"Your lips are parched. If you don't get a drink soon you will pass out."
|
||||
.GSTR STR?245,"You are beginning to feel faint from lack of water."
|
||||
.GSTR STR?246,"BUG"
|
||||
.GSTR STR?247,"You pass out from lack of strength and die."
|
||||
.GSTR STR?248,"Your stomach is starting to grumble."
|
||||
.GSTR STR?249,"You are becoming quite hungry."
|
||||
.GSTR STR?250,"You are very hungry now. You'd better have something to eat."
|
||||
.GSTR STR?251,"You're fairly starving. If you don't eat soon you will pass out."
|
||||
.GSTR STR?252,"You are beginning to feel faint from lack of sustenance."
|
||||
.GSTR STR?253,"well fed"
|
||||
.GSTR STR?254,"a bit hungry"
|
||||
.GSTR STR?255,"becoming quite hungry"
|
||||
.GSTR STR?256,"very hungry"
|
||||
.GSTR STR?257,"fairly starving"
|
||||
.GSTR STR?258,"faint from lack of food"
|
||||
.GSTR STR?259,"huoo"
|
||||
.GSTR STR?260,"well hydrated"
|
||||
.GSTR STR?261,"a bit thirsty"
|
||||
.GSTR STR?262,"quite thirsty"
|
||||
.GSTR STR?263,"very thirsty"
|
||||
.GSTR STR?264,"extremely thirsty"
|
||||
.GSTR STR?265,"faint from lack of water"
|
||||
.GSTR STR?266,"beginning to tire"
|
||||
.GSTR STR?267,"feeling tired"
|
||||
.GSTR STR?268,"worn out"
|
||||
.GSTR STR?269,"feeling wrung out and tired"
|
||||
.GSTR STR?270,"getting more and more tired"
|
||||
.GSTR STR?271,"dead on your feet"
|
||||
.GSTR STR?272,"so tired you can barely put one foot in front of another"
|
||||
.GSTR STR?273,"practically asleep"
|
||||
.GSTR STR?274,"moving only on your last reserves of strength"
|
||||
.GSTR STR?275,"barely able to move your arms"
|
||||
.GSTR STR?276,"unable to keep your eyes open for more than a few moments at a time"
|
||||
.GSTR STR?277,"You sleep blissfully, unaware of the evil creatures lurking in the darkness. Unaware, that is, until one of them sets upon you with nasty sharp teeth."
|
||||
.GSTR STR?278,"You dream of being pursued through a dank cavern. Something is behind you, something horrible that you can't turn to face. It gets closer and closer, and you can feel its hot breath on your neck."
|
||||
.GSTR STR?279,"You dream of an idyllic scene in the country, a picnic of wood-sprites and dryads."
|
||||
.GSTR STR?280,"You dream of Krill. He works feverishly in an evilly lit workroom. He is working a conjuration of great complexity and power, and the room is strewn with the noisome components of this horrific casting. Krill chants words of awful power as he works."
|
||||
.GSTR STR?281,"You dream of dancing penguins in formal dress. One has a particularly nice tuxedo and a cane with a gold top."
|
||||
.GSTR STR?282,"You dream of a river, slow and muddy. Great grey hippopotami sport there, bellowing and splashing, and twitching their ears."
|
||||
.GSTR STR?283,"This is the control room for all the machinery nearby. The controls are all magical, of course. The walls are covered by blinking lights and shifting displays, interspersed with arcane dials and glowing buttons. It's all very mysterious looking. The exit, to the northwest, leads into a room with machinery which would surely crush you if you were to attempt to enter it."
|
||||
.GSTR STR?284,"you"
|
||||
.GSTR STR?285,"the other side"
|
||||
.GSTR STR?286,"This is a meadow near the sea. There is a smell of salt in the air. Only heather and thistles grow here. To the north is a gate leading into the castle. A narrow path to the southeast leads to the shore of the Sea."
|
||||
.GSTR STR?287,"There's no path there."
|
||||
.GSTR STR?288,"This is a rocky beach along a grey and lifeless sea. There is dead seaweed covering many rocks, and listless waves barely stir the flotsam and jetsam here. There are many shells, but all are broken. A narrow path to the northwest leads into a meadow."
|
||||
.GSTR STR?289,"Crawling slowly along the beach is an enormous turtle, his enamelled shell shining with all the colors of the rainbow."
|
||||
.GSTR STR?290,"An enormous turtle is here, its enamelled shell shining with all the colors of the rainbow."
|
||||
.GSTR STR?291,"Are you a magician? Are you going to do something about that annoying Warlock, then?"
|
||||
.GSTR STR?292,"How do you like my shell? A wizard did that to me about 75 years ago."
|
||||
.GSTR STR?293,"It's nice to find a human who talks turtle. Not many do, you know. Most people think turtles are boring, just because we talk slowly."
|
||||
.GSTR STR?294,"The iron gate is locked."
|
||||
.GSTR STR?295,"You are on an east-west road, which wends its way through the dark, rolling hills of this land. To the west rises a high mountain, to the east stands a high castle with dark towers."
|
||||
.GSTR STR?296,"You would become lost among the brambles. Better to stay on the road."
|
||||
.GSTR STR?297,"You are at a fork in the road where paths to the northwest and southwest girdle the base of the Lonely Mountain and a smaller path winds its way to the east."
|
||||
.GSTR STR?298,"You are on the northeast side of the Lonely Mountain, walking a narrow path through rolling hills. On one side of the path is a sign and behind that, to the northeast, a winding path through the thick undergrowth. The trail continues to the southeast."
|
||||
.GSTR STR?299,"The trail ends here. A ruined stone foundation marks the site of the Old Lingolf House, which presumably was a monument of some sort. The trail head is off to the southwest, and a small brook flows slowly by."
|
||||
.GSTR STR?300,"The trail turns a corner here, bending out of sight to the southeast and southwest. The ground is higher here than to the south, allowing you to make out the top of the Lonely Mountain, shrouded in clouds. No path from here leads up the mountain, however."
|
||||
.GSTR STR?301,"You are south of an old wooden shack, apparently deserted. The trail extends from northeast to southwest here, circling the Lonely Mountain, which lies to the southeast."
|
||||
.GSTR STR?302,"The inside of the shack is a shambles. An overturned table and bench, and a few broken windows remain. An oven is the only fixture that's even recognizable. The door is to the south."
|
||||
.GSTR STR?303,"You can't see much except for scrubby vegetation."
|
||||
.GSTR STR?304,"The top of a battered lantern is partially visible behind the overturned table."
|
||||
.GSTR STR?305,"not much"
|
||||
.GSTR STR?306,"only a small amount"
|
||||
.GSTR STR?307,"a good deal"
|
||||
.GSTR STR?308,"nearly half"
|
||||
.GSTR STR?309,"about half"
|
||||
.GSTR STR?310,"a lot"
|
||||
.GSTR STR?311,"a whole lot"
|
||||
.GSTR STR?312,"an entire loaf"
|
||||
.GSTR STR?313,"There's none left, though."
|
||||
.GSTR STR?314,"There's not much left, though."
|
||||
.GSTR STR?315,"There's only a small amount left, though."
|
||||
.GSTR STR?316,"There's still a good deal left, too."
|
||||
.GSTR STR?317,"There's nearly half of it left, too."
|
||||
.GSTR STR?318,"There's still about half of it left, too."
|
||||
.GSTR STR?319,"There's a lot of bread left, too."
|
||||
.GSTR STR?320,"There's a whole lot of it left, too."
|
||||
.GSTR STR?321,"There's a full loaf, too."
|
||||
.GSTR STR?322,"You stand at a point of decision on a road which makes a wide fork to the northeast and southeast, circling the base of the Lonely Mountain, which looms high overhead to the east. A very long and winding road starts here and stretches out of sight to the west through low, smoky hills."
|
||||
.GSTR STR?323,"The trail here turns dry and dusty. To the northwest is the fork leading to the Long Road, and the trail continues to the southeast."
|
||||
.GSTR STR?324,"The trail makes a hairpin turn here, swinging out to the northwest and northeast, where it enters a small village. Low, smoky hills stretch out to the west and south."
|
||||
.GSTR STR?325,"This is the castle's village. Formerly, peasants lived here, going to their farm plots each day. Merchants and artisans made it a center of cultural activity. But now it's deserted. Or almost: there is smoke rising from a particularly decrepit hovel to the south. A path travels through the village from southwest to northeast, heading towards the castle, and a less-used trail heads north up the mountain."
|
||||
.GSTR STR?326,"You wander around in the village, find nothing of interest, and return to the path."
|
||||
.GSTR STR?327,"This spot halfway up the Lonely Mountain is desolate of vegetation. Short, stunted trees with branches empty surround you and the air is heavy and smoke-filled."
|
||||
.GSTR STR?328,"The trail is narrow and only heads up and down."
|
||||
.GSTR STR?329,"This is the top of the Lonely Mountain. In olden days, mariners had named it Signal Mountain, for its glistening peak reflected the pale moonlight, providing an unmistakable landmark on unclouded nights. The bald mountain face is made of a shining substance whose nature is unknown to you. Looking to the west, low hills stretch to the horizon, and small pieces of the Long Road can be seen winding their way to distant lands. To the east, far away, can be seen a great castle at the edge of the Sea. Three turrets it has; two, old and still majestic, lie on either side of a third, cold, black as night and squat as a toad. An evil smoke seems to emanate from this tower, shrouding the others in a darkening fog. A small mountain trail leaves the peak and descends to the south into a small village far below."
|
||||
.GSTR STR?330,"At the last moment, you remember that you don't know a flying spell."
|
||||
.GSTR STR?331,"You are on a road which enters a small village to the southwest and comes to a fork to the northeast. The Lonely Mountain looms above but there is no path from here which ascends the mountain."
|
||||
.GSTR STR?332,"There is no road there."
|
||||
.GSTR STR?333,"Why"
|
||||
.GSTR STR?334,"are"
|
||||
.GSTR STR?335,"going"
|
||||
.GSTR STR?336,"when"
|
||||
.GSTR STR?337,"the"
|
||||
.GSTR STR?338,"castle"
|
||||
.GSTR STR?339,"is"
|
||||
.GSTR STR?340,"east?"
|
||||
.GSTR STR?341,"Burma"
|
||||
.GSTR STR?342,"Shave"
|
||||
.GSTR STR?343,"You execute a perfect swan-dive into the rocks below."
|
||||
.GSTR STR?344,"A rat skitters across the floor, sees you, is startled, and rushes back the way it came."
|
||||
.GSTR STR?345,"Bluebottles buzz up to you, and then away."
|
||||
.GSTR STR?346,"A gaunt, feral-looking dog carrying a well-chewed bone approaches, is surprised by your presence, growls and then turns tail."
|
||||
.GSTR STR?347,"Bats flutter by, red eyes glowing."
|
||||
.GSTR STR?348,"You hear noises in the darkness nearby."
|
||||
.GSTR STR?349,"You sense something behind you, turn, and there is nothing there."
|
||||
|
||||
.ENDI
|
Loading…
Reference in New Issue