-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathforest.zil
2196 lines (2129 loc) · 78.8 KB
/
forest.zil
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
"FOREST for
JOURNEY
(c) Copyright 1988, 1989 Infocom, Inc. All Rights Reserved."
<BEGIN-SEGMENT FOREST>
<GLOBAL BITE-VICTIM <>>
<GLOBAL BITE-VICTIM-OBJECT <>>
<ROUTINE MOVE-TO-FOREST-RIDGE ()
<TELL
"Looking back, we could follow the long canyon path back to the horizon,
where I imagined I could see the fork just beyond Lavos. But the view ahead
filled us with astonishment, for a vast forest stretched out before us, thick
with pine, fir, and redwood. Beyond the forest, a wide river flowed from the
north, disappearing into deep canyons to the south. And beyond the forest, the
Sunrise Mountain, its jagged peak towering high above the surrounding mountains." CR CR>
<TELL
"\"Magnificent!\" Praxix said. \"We stand before the Old Forest!\"" CR CR>
<TELL
"\"I have heard many a tale of the Old Forest,\" I said with a smile, reminiscing
of the fanciful tales oft told about the forest." CR CR>
<TELL
"\"I too have heard tales,\" Praxix replied, gravely. \"But judging by the comical
look on your face, I suspect we have not heard the same ones.\"" CR CR>
<UPDATE-MOVE ,TALE-ELVES ,PRAXIX-TALES>
<NEXT-DAY>
<NEXT-DAY>
<TELL
"It was now dark and after a hearty meal we slept. I dreamed of the
forest that night, of brightly colored birds, and of the beautiful Wood
Elves from the stories of my childhood. The next day, we rose with
the sun." CR CR>
<TELL
"The morning was still and hazy, and we started toward the forest with
great eagerness. Praxix spotted a wide path which headed due east
toward the Sunrise Mountain, and we spent a glorious morning
beneath tall trees and a blue sky. Around midday, we came to a small
clearing, where we decided to stop for lunch.">
<COND (<NOT <FSET? ,STAIR-BOTTOM ;,DWARF-MEETING ,SEEN>>
<SKIP-BITE-FOREST>)
(T
<MOVE-TO ,BITE-FOREST>)>>
<ROOM BITE-FOREST
(TRAVEL-COMMANDS COMB-AREA-COMMAND SPLIT-UP-COMMAND NUL-COMMAND)
(FLAGS ADVISE DONT-SCOUT DANGEROUS)
(ENTER
<EXECUTE ()
<COND (<NOT <QSET? ,HERE ,SEEN>>
<COND (<IN-PARTY? ,MINAR>
<SETG BITE-VICTIM ,MINAR>
<SETG BITE-VICTIM-OBJECT ,MINAR-OBJECT>)
(<IN-PARTY? ,ESHER>
<SETG BITE-VICTIM ,ESHER>
<SETG BITE-VICTIM-OBJECT ,ESHER-OBJECT>)
(T
<SKIP-BITE-FOREST>
<RTRUE>)>
<GRAPHIC ,G-NIGHTFANG>
<TELL CR CR
"And then, without warning, a large snake lunged at ">
<TELL D ,BITE-VICTIM ", grabbing him by the
leg. ">
<COND (<IN-PARTY? ,BERGON>
<TELL "Bergon">)
(T
<TELL D ,BITE-VICTIM>)>
<TELL
", reacting instinctively, killed the snake with a single blow
of his sword">
<COND (<IN-PARTY? ,BERGON>
<TELL "; " D ,BITE-VICTIM>)
(T
<TELL " and">)>
<TELL " collapsed against a tree." CR CR>
<TELL
"\"The snake,\" he started, grimacing with pain. \"Nightfang....\" His
voice trailed off, and his eyes took on a glazed, vacant look." CR CR>
<TELL
"\"But that cannot be! I thought Nightfang were nocturnal, like the
Starstalker!\" I said, hopefully."
CR CR>
<TELL
"\"And you were right,\" replied Praxix. \"They were nocturnal. ">
<COND (<IN-PARTY? ,BERGON>
<TELL "Bergon, t">)
(T
<TELL "T">)>
<TELL "his man
will die unless we can find some westflake root. There is little time!\"">
<UPDATE-MOVE ,BITE-VICTIM-OBJECT ,HERE>
<FSET ,BITE-VICTIM ,INCAPACITATED>
<MAKE-BUSY ,BITE-VICTIM ,ILL-COMMAND>)
(T
<COND (<IN? ,WOOD-ELF ,HERE>
<CHANGE-TRAVEL-COMMAND ,HERE
,TAG-ROUTE-COMMAND
,ELF-HOME-COMMAND>)>
<COND (<NOT <FSET? ,BERGON ,TRAPPED>>
<REMOVE-TRAVEL-COMMAND ,HERE ,BERGON-ROUTE-COMMAND>)>
<COND (<AND <FSET? ,BITE-VICTIM ,INCAPACITATED>
<NOT <FSET? ,BITE-VICTIM ,DEAD>>>
<COND (<AND <NOT <IN? ,WOOD-ELF ,HERE>>
<NOT <IN? ,WESTFLAKE-ROOT ,PRAXIX>>>
;"Not going to be healed..."
<GRAPHIC ,G-NIGHTFANG>)>
<COND (<AND <NOT ,SUBGROUP-MODE>
<NOT <IN-PARTY? ,BITE-VICTIM>>>
<PARTY-ADD ,BITE-VICTIM>)>
<UPDATE-MOVE ,BITE-VICTIM-OBJECT ,HERE>
<MAKE-BUSY ,BITE-VICTIM ,ILL-COMMAND>)
(<OR <FSET? ,WOOD-ELF ,TRAPPED>
<FSET? ,BITE-VICTIM ,DEAD>>
<GRAPHIC ,G-FOREST>)>)>>)
(EXIT
<EXECUTE ()
<COND (<AND <NOT ,SUBGROUP-MODE>
,BITE-VICTIM
<OR <FSET? ,BITE-VICTIM ,INCAPACITATED>
<FSET? ,BITE-VICTIM ,DEAD>>>
<PARTY-REMOVE ,BITE-VICTIM>)>>)
(ACTION
<ACOND ()
(ENTER-TUNNEL
<TELL
"We chose next to explore the tunnel that we had discovered underneath the stump,
and, descending from our camp, quickly retraced our steps to the point at which
we had entered it earlier. ">
<MOVE-TO ,WARREN
"With Praxix' staff to guide us, we continued down the tunnel,
entering a small chamber. Moss and lichen lined the tunnel, and the
dampness here soon became oppressive. Before us, the passage
continued into the darkness.">)
(ELF-HOME
<COND (<FSET? ,BERGON ,TRAPPED>
<FSET ,BERGON ,DEAD>)>
<COND (<FSET? ,WOOD-ELF ,TRAPPED>
;"She's gone by now..."
<TELL
"Doing as V'ren had told us, I retraced my steps to the pool. V'ren
was waiting there for us, and led us">)
(T
<TELL
"V'ren led us to the pool at which we had met, then">)>
<TELL " through twisty
forest paths until we reached a small clearing. \"This is the Elf
Home,\" she said, without words. \"Home of our Mothers since the
beginning of all things.\"" CR CR>
<MOVE-TO ,ELF-HOME
"I looked up, and was amazed to see the trees filled with what could
best be described as hammocks. \"This is where we live - in the trees,\" V'ren
explained.">)
(TAG-ROUTE
<COND (<FSET? ,BERGON ,TRAPPED>
<FSET ,BERGON ,DEAD>)>
<TELL
"I retraced my earlier steps, ">
<COND (<NOT <FSET? ,ELFSTREAM-1 ,SEEN>>
<TELL
"but this time we decided to follow the stream.">
<MOVE-TO ,ELFSTREAM
" After about fifty paces, the stream coursed
over a small waterfall and into a shallow pool.">)
(T
<MOVE-TO ,ELFSTREAM
"and found myself back at the waterfall
and pool. It was deserted, with no sign of what had been there before.">)>)
(BERGON-ROUTE
;"Because he's trapped..."
<COND (<IN? ,WOOD-ELF ,HERE>
<FSET ,WOOD-ELF ,TRAPPED>
<TELL
"We decided to follow Bergon's route in hopes of discovering his
fate. V'ren said she could not come with us, but that we were
welcome at the Elf Home. \"Come to the pool where we met,\" she
said to me, \"and we shall meet again!\" And with that, she sped into the
forest." CR CR>)>
<MOVE-TO ,TANGLEWOOD
"We moved swiftly, even as the forest grew thicker and more
sinister. As the twisted trees closed in around us, we saw Bergon,
his body contorted by the undulating tentacles that had surrounded him.">)
(PRAXIX-ROUTE
<COND (<FSET? ,BERGON ,TRAPPED>
<FSET ,BERGON ,DEAD>)>
<COND (<AND <IN? ,WOOD-ELF ,HERE>
<NOT <FSET? ,WOOD-ELF ,TRAPPED>>>
<TELL
"As we prepared to leave, V'ren explained that
she must return to the Elf Home, but that we could find her
anytime by returning to the pool at which we had first met.
\"Good luck in your travels,\" she said without speech, and
swiftly disappeared into the forest." CR CR>)>
<TELL
"Praxix led the way, and we soon arrived at the glade he had found
nearby.">
<COND (<NOT <QSET? ,FOREST-GLADE ,SEEN>>
<TELL
" But, just as he was explaining his decision to go no farther, he stumbled
over a tree stump that had been hidden in the knee-high grass!">)
(<NOT <QSET? ,GLADE-STUMP ,SEEN>>
<COND (<FSET? ,FOREST-GLADE ,SEEN>
<TELL CR CR
"\"Here's the stump that I walked into before,\" he said, giving
it a">
<COND (<FSET? ,GLADE-STUMP ,EXAMINED>
<TELL
"nother rap with his staff.">)
(T
<TELL
" rap with his staff.">)>)>
<COND (<IN? ,WESTFLAKE-ROOT ,PRAXIX>
<TELL " \"Taught it a lesson!\" he added,
pointing to its broken remains and the passage leading downward.">)
(T
<TELL " This, oddly, produced a hollow tone.">)>)>
<MOVE-TO ,FOREST-GLADE>)
(<AND <ACTION? EXAMINE> <OBJECT? BITE-VICTIM-OBJECT>>
<UPDATE-FSET ,BITE-VICTIM-OBJECT ,DONT-EXAMINE>
<TELL ACT
" examined " D ,BITE-VICTIM ". \"Unless we find the antidote, he will be
dead before the sun sets.\"">
<COND (<IN-PARTY? ,BERGON>
<TELL " Bergon gazed up at the sky and frowned.">)>
<RTRUE>)
(<AND <ACTION? GET-ADVICE>
<FSET? ,BITE-VICTIM ,INCAPACITATED>>
<UPDATE-FCLEAR ,HERE ,ADVISE>
<TELL
"Unsure of how to save " D ,BITE-VICTIM ", Bergon asked for our advice. Praxix
felt we had no alternative but to split up in search of the lifesaving
root. I agreed, though I was fearful at the prospect of exploring this
forest on my own.">)
(SPLIT-UP
<TELL
"It was agreed that we split up the group in search of the elusive
westflake root, and ">
<UPDATE-FCLEAR ,HERE ,ADVISE>
<COND (<IN-PARTY? ,BERGON>
<TELL "Bergon indicated">)
(T
<TELL "we decided on">)>
<TELL " the paths we should follow." CR CR>
<COND (<AND <IN-PARTY? ,BERGON>
<NOT <FSET? ,DWARF-MEETING ,SEEN>>>
<TELL
"\"I shall remain here to tend to " D ,BITE-VICTIM ". Now go,
and return before sunset! Do not wander far!\" he commanded.">
<COND (<AND <IN-PARTY? ,ESHER>
<NOT <EQUAL? ,BITE-VICTIM ,ESHER>>>
<TELL
" But Esher would not leave, preferring to do what he could to
keep Minar comfortable. And thus it was that Praxix and I went our
separate ways into the forest.">)>)
(<IN-PARTY? ,BERGON>
<TELL
"\"We will meet back here before sunset! Don't wander too far!\" he
said.">)
(T
<TELL
"\"We must meet back before sunset. Go quickly!\" Praxix said.">)>
<COND (<AND <IN-PARTY? ,BERGON>
<FSET? ,DWARF-MEETING ,SEEN>>
<DIVIDER>
;<TELL CR CR "Bergon's Story" CR CR>
<TELL
"Choosing for himself the most difficult path, Bergon strode off into
the thickening forest to our west.">
<FSET ,BERGON-SEARCH ,SEEN>
<SCENE ,BERGON-SEARCH>)
(T
<SCENE ,PRAXIX-SEARCH>)>)
(COMB-AREA:REMOVE
<TELL
"We spent many frantic minutes searching the area for some westflake
root, but to no avail. " D ,BITE-VICTIM " was now seemingly paralyzed; only the
infrequent blinking of his eyes gave any clue that he remained alive.">)>)>
<ROUTINE MOVE-TO-ELF-HOME ()
<TELL
"Then, taking me by the hand, she led us through twisty
forest paths until we reached a small clearing. \"This is the Elf
Home,\" she said, without words. \"Home of our Mothers for all
the long ages.\"" CR CR>
<MOVE-TO ,ELF-HOME
"I looked up, and was amazed to see the trees filled with what seemed
to be hammocks. \"This is where we live - in the trees,\" V'ren
explained.">>
<OBJECT PRAXIX-SEARCH
(ACTION
<ACOND ()
(SCENE-START
<DIVIDER>
<COND (<FSET? ,BERGON ,TRAPPED>
<TELL
"Praxix fared much better; leaving camp, he entered">)
(<NOT <IN-PARTY? ,BERGON>>
<TELL
"Praxix chose to explore">)
(T
<TELL
"Bergon sent Praxix off to explore">)>
<TELL " the forest that lay to the east, and
it was not long before he came to the edge of a grassy glade.">
<CHANGE-TRAVEL-COMMAND ,BERGON
,EXAMINE-COMMAND ,GET-ADVICE-COMMAND>
<MAKE-SUBGROUP ,PRAXIX>
<REMOVE-TRAVEL-COMMAND ,PRAXIX ,TELL-LEGEND-COMMAND>
<MOVE-TO ,FOREST-GLADE-EDGE>)>)>
<ROOM FOREST-GLADE-EDGE
(TRAVEL-COMMANDS PROCEED-COMMAND RETURN-COMMAND NUL-COMMAND)
(GRAPHIC G-FOREST)
(ACTION
<ACOND ()
(PROCEED
<TELL
"He had entered the glade and was moving swiftly through the knee-high
grasses and wildflowers, when he walked straight into a tree stump that
had been hidden in the undergrowth. Stifling a scream, Praxix rubbed his
injured leg." CR CR>
<TELL
"\"What an absurd place to leave a stump,\" he said, petulantly.">
<MOVE-TO ,FOREST-GLADE>)
(RETURN
<TELL
"Praxix, unconvinced that westflake would be found here, returned
to camp.">
<SCENE ,TAG-SEARCH>)>)>
<OBJECT GLADE-STUMP
(SDESC "stump")
(KBD %<ASCII !\S>)
(LOC FOREST-GLADE)
(FLAGS DONT-TAKE)
(EXBITS PRAXIXBIT)
(ACTION
<ACOND ()
(EXAMINE:CLEAR
<TELL
"Praxix inspected this misplaced piece of tree; then, as if to vent his anger,
he rapped it with his staff, producing a hollow tone. \"Now, that is odd!\" he
said, rubbing his still sore foot. Looking more closely now, he was unable to
find any sign of how it might open.">)>)>
<ROOM FOREST-GLADE
(TRAVEL-COMMANDS PROCEED-COMMAND RETURN-COMMAND NUL-COMMAND)
(CAST-LIMIT 2)
(GRAPHIC G-GLADE)
(ENTER
<EXECUTE ()
<HINT ,HINT-STUMP>
<PUTP ,HERE ,P?CAST-LIMIT 2>
<COND (<AND <FSET? ,GLADE-STUMP ,ENCHANTED>
<NOT <FSET? ,UNDERFOREST-2 ,TRIED>>>
<ADD-TRAVEL-COMMAND ,HERE ,DOWN-COMMAND>)>
<FSET ,FOREST-GLADE ,SEEN>>)
(ACTION
<ACOND ()
(PROCEED:REMOVE
<COND (,SUBGROUP-MODE
<TELL
"Limping slightly, Praxix continued on his way; before long, the terrain
fell into a deep glen. \"Never get back in time!\" he said to
himself, and returned to the glade.">
<FSET ,HERE ,DONT-SCOUT>)
(<FSET? ,BITE-VICTIM ,INCAPACITATED>
<TELL
"We walked to the far end of the glade; the terrain sloped
down sharply. \"No time to go farther!\" Praxix said, and he
was right. It was nearly sunset, and " D ,BITE-VICTIM " was close to death.">)
(T
<UPDATE-FSET ,HERE ,DONT-SCOUT>
<TELL
"The terrain ahead of us appeared unpromising, so we decided
to take a different route.">)>)
(SCOUT:REMOVE
<REMOVE-TRAVEL-COMMAND ,HERE ,PROCEED-COMMAND>
<COND (<FSET? ,BITE-VICTIM ,INCAPACITATED>
<TELL ACT
" went ahead to the far end of the glade, where the terrain sloped
down sharply. \"No time to go farther!\" he said, and he
was right. It was nearly sunset, and " D ,BITE-VICTIM " was close to death.">)
(T
<TELL ACT
" checked out the far end of the glade, but returned with the report that the
terrain appeared unpromising.">)>)
(RETURN
<COND (,SUBGROUP-MODE
<TELL
"Finding no sign of westflake, Praxix returned to our camp.">
<SCENE ,TAG-SEARCH>)
(T
<TELL
"We returned to our camp, having found nothing ">
<COND (<FSET? ,BITE-VICTIM ,INCAPACITATED>
<TELL
"which could help our ailing friend">)
(T
<TELL
"useful along the route that Praxix had taken">)>
<TELL ".">
<REMOVE-TRAVEL-COMMAND ,BITE-FOREST
,PRAXIX-ROUTE-COMMAND>
<MOVE-TO ,BITE-FOREST>)>)
(DOWN
<COND (<NOT ,SUBGROUP-MODE>
;"Added 3/7"
<COND (<QSET? ,HERE ,TRIED>
<REMOVE-TRAVEL-COMMAND>)>
<MOVE-TO ,UNDERFOREST-2
"We lowered ourselves down into the hole; it was dark and damp,
and had a peculiar odor.">)
(T
<MOVE-TO ,UNDERFOREST-2
"Praxix tried to lower himself down gracefully, but having nothing with
which to support himself, he fell unceremoniously to the bottom of a dark and
damp hole.">)>)
(<AND <ACTION? CAST>
<OR <AND <OBJECT? LIGHTNING-SPELL>
<PRSI? GLADE-STUMP>>
<AND <OBJECT? FIRE-SPELL>
<PRSI? GLADE-STUMP>>
<OBJECT? TREMOR-SPELL>>
<NOT <QSET? ,GLADE-STUMP ,ENCHANTED>>>
<UPDATE-FSET ,GLADE-STUMP ,DONT-EXAMINE>
<ADD-TRAVEL-COMMAND ,HERE ,DOWN-COMMAND>
<GRAPHIC ,G-STUMP>
<COND (<OBJECT? LIGHTNING-SPELL>
<FSET ,LIGHTNING-SPELL ,SEEN>
<TELL
"Praxix carefully prepared a mixture of water and fire essences; then, he
added just the slightest pinch of earth essence. He cast the mixture
into the air and lifted his staff; from nowhere, clouds gathered and soon the
sky was twilight-dark. Then, a single bolt of lightning fell from the
sky, splitting the stump in two, and">)
(<OBJECT? TREMOR-SPELL>
<TELL
"Praxix removed some earth essence from his pouch and cast it at the
stump; the earth trembled briefly and the stump split in two">)
(T
<TELL
"Praxix removed a small handful of fire essence from his cloak and
spread it over the stump. Within moments, the stump was afire;
it burned itself out a few moments later,">)>
<TELL
" revealing a passage below. \"Not bad! Not bad!\" he said, and he peered
into the darkness below.">
<COND (<AND <NOT ,SUBGROUP-MODE>
<OBJECT? LIGHTNING-SPELL>
<NOT <QSET? ,LIGHTNING-SPELL ,INCAPACITATED>>>
<TELL CR CR
"Praxix, proud of his accomplishment, turned to me and whispered that it
was the pinch of earth essence that really gives the lightning spell its
added punch. But however the magic had been prepared, its effect was
profound.">)>
<PUTP ,HERE ,P?GRAPHIC ,G-STUMP>)>)>
<COMMAND AWAY>
<ROOM UNDERFOREST-2
(TRAVEL-COMMANDS UP-COMMAND FEEL-AROUND-COMMAND NUL-COMMAND)
(FLAGS UNDERGROUND)
(CAST-LIMIT INF)
(CLOCK
<EXECUTE ()
<COND (<AND <NOT <FSET? ,PRAXIX ,LIT>>
<NOT <CHECK-ESSENCES ,LIGHT-SPELL>>
<NOT <CHECK-ESSENCES ,LEVITATE-SPELL>>>
;"We're stuck here now..."
<FSET ,HERE ,TRAPPED>)>>)
(ENTER
<EXECUTE ()
<COND (<LOC ,HINT-STUMP>
<UPDATE-REMOVE ,HINT-STUMP>)>
<COND (<FSET? ,PRAXIX ,LIT>
<GRAPHIC ,G-WARREN>
<TELL CR CR "With the aid of ">
<COND (,SUBGROUP-MODE
<TELL "his enchanted staff, Praxix">)
(T
<TELL "Praxix' enchanted staff, we">)>
<TELL
" could see that the passage led both back toward our camp and away.">
<ADD-PARTY-COMMAND ,AWAY-COMMAND>
<CHANGE-PARTY-COMMAND ,FEEL-AROUND-COMMAND
,BACK-COMMAND>)
(T
<UPDATE-FSET ,HERE ,DONT-SCOUT>
<CAVERN-GRAPHIC>)>
<COND (<AND <FSET? ,PRAXIX ,LIT>
<NOT ,SUBGROUP-MODE>
<NOT <FSET? ,BITE-VICTIM ,INCAPACITATED>>>
;<REMOVE-PARTY-COMMAND ,BACK-COMMAND>
<CHANGE-PARTY-COMMAND ,AWAY-COMMAND
,PROCEED-COMMAND>)>>)
(ACTION
<ACOND ()
(AWAY
<REMOVE-PARTY-COMMAND ,AWAY-COMMAND>
<TELL
"Praxix absentmindedly started to head away from our camp, when he
remembered how little time there was to save ">
<TELL D ,BITE-VICTIM "." CR CR>
<TELL
"\"There will be time for this later,\" he said, scolding himself, and
quickly retraced his steps to his starting point.">)
(UP
<COND (,SUBGROUP-MODE
<REMOVE-PARTY-COMMAND ,UP-COMMAND>
<TELL
"Try as he might, Praxix couldn't climb out of this hole
he had dug for himself.">)
(T
<FCLEAR ,HERE ,DEAD>
<MOVE-TO ,FOREST-GLADE
"It wasn't easy, but we managed to lift ourselves out of the
hole and back into the glade.">)>)
(PROCEED
<COND (<FSET? ,HERE ,TRAPPED>
<TELL
"The remainder of the day was spent tediously feeling our way through scores of
dark, underground chambers until we finally reached an exit. We clambered out ">
<MOVE-TO-ELFSTREAM>)
(<NOT <FSET? ,PRAXIX ,LIT>>
<TELL
"We decided to explore this underground tunnel, but without light, the
prospects were dim.">)
(T
<MOVE-TO ,WARREN
"With Praxix' staff to guide us, we made our way down the tunnel,
entering a small chamber. Moss and lichen lined the tunnel, and the
dampness here soon became oppressive. Before us, the passage
continued into the darkness.">)>)
(<AND <ACTION? CAST>
<OBJECT? LEVITATE-SPELL>>
<COND (,SUBGROUP-MODE
<TELL
"Then, taking out his air and earth essences, Praxix created an elevation spell
and used it to raise himself back into the glade.">)
(T
<TELL
"Praxix then used his elevation spell to lift " D ,ACTION-PRSI " out of the hole;
it was then a simple matter for the rest of us to make our way out.">)>
<FSET ,HERE ,TRIED>
<MOVE-TO ,FOREST-GLADE>)
(<AND <ACTION? CAST>
<OBJECT? LIGHT-SPELL>
<PRSI? STAFF>
<NOT <QSET? ,PRAXIX ,LIT>>>
<COND (<LOC ,HINT-STUMP>
<UPDATE-REMOVE ,HINT-STUMP>)>
<GRAPHIC ,G-WARREN>
<UPDATE-FCLEAR ,HERE ,DONT-SCOUT>
<COND (<AND <NOT ,SUBGROUP-MODE>
<NOT <FSET? ,BITE-VICTIM ,INCAPACITATED>>>
<COND (<FSET? ,HERE ,DEAD>
<ADD-PARTY-COMMAND ,PROCEED-COMMAND>)
(T
<CHANGE-PARTY-COMMAND ,FEEL-AROUND-COMMAND
,PROCEED-COMMAND>)>)
(T
<COND (<FSET? ,HERE ,DEAD>
<ADD-PARTY-COMMAND ,BACK-COMMAND>)
(T
<CHANGE-PARTY-COMMAND ,FEEL-AROUND-COMMAND
,BACK-COMMAND>)>
<ADD-PARTY-COMMAND ,AWAY-COMMAND>)>
<TELL
"It took some doing, but Praxix managed to fumble through his pouch and
remove some fire and earth essence. He applied it to his staff, causing it
to glow a dull red. ">
<COND (,SUBGROUP-MODE <TELL "H">)
(T
<TELL "W">)>
<TELL "e could now see
that he was in a tunnel, with passages leading in two directions, though
only one of these would head in the direction of camp.">)
(<AND <ACTION? CAST>
<OBJECT? FAR-VISION-SPELL>>
<TELL
"Praxix, with his flare spell, lit the walls of the tunnel,
revealing that it was covered with a mossy, plantlike material, and that it
spread out far in both directions.">)
(BACK
<TELL
"Using his staff for light, ">
<COND (,SUBGROUP-MODE
<TELL D ,PRAXIX>)
(T
<TELL "we">)>
<TELL
" continued down the tunnel in the direction of camp.">
<COND (<FSET? ,BITE-VICTIM ,INCAPACITATED>
<TELL " Casually scanning the walls, ">
<COND (,SUBGROUP-MODE
<TELL "he">)
(T
<TELL "we">)>
<TELL
" recognized the plant that almost completely surrounded ">
<COND (,SUBGROUP-MODE
<TELL "him">)
(T
<TELL "us">)>
<TELL ": westflake! ">
<COND (<NOT ,SUBGROUP-MODE>
<TELL D ,PRAXIX>)
(T
<TELL "He">)>
<TELL
" gathered some of the root for " D ,BITE-VICTIM ", placing it in his
cloak.">)>
<COND (<NOT ,SUBGROUP-MODE>
<TELL " We">)
(T
<TELL " He">)>
<TELL
" continued down the tunnel, coming eventually to a ladder carved into the
earth and rising into a hollowed-out tree stump!">
<COND (,SUBGROUP-MODE
<TELL " The sound of a
voice (or was it voices) could be heard just above, and Praxix
eagerly pulled himself up the ladder.">
<MOVE ,WESTFLAKE-ROOT ,PRAXIX>
<SCENE ,TAG-SEARCH>)
(T
<TELL
" We raised ourselves out of the stump; we were back at our camp.">
<COND (<FSET? ,BITE-VICTIM ,INCAPACITATED>
<MOVE-TO ,BITE-FOREST>
<TELL CR CR
"Praxix rushed over to " D ,BITE-VICTIM " and made a terrible discovery. ">
<BITE-VICTIM-DIES>
<CHANGE-TRAVEL-COMMAND ,BITE-FOREST
,PRAXIX-ROUTE-COMMAND
,ENTER-TUNNEL-COMMAND>
<MOVE-TO ,BITE-FOREST>)
(T
<TELL CR CR
"\"As I suspected, this route leads only back to our camp,\" Praxix said.
\"Come, let us see what lies at the other end of the tunnel.\"" CR CR>
<TELL
"In a matter of moments, we had climbed back down into the tunnel,
retracing our steps to our point of entry in the glade. ">
<MOVE-TO ,WARREN
"With Praxix' staff to guide us, we made our way down the tunnel,
entering a small chamber. Moss and lichen lined the tunnel, and the
dampness here soon became oppressive. Before us, the passage
continued into the darkness.">)>
<RTRUE>)>)
(FEEL-AROUND
<REMOVE-PARTY-COMMAND ,FEEL-AROUND-COMMAND>
<FSET ,HERE ,DEAD>
<TELL "Though ">
<COND (,SUBGROUP-MODE <TELL "h">)
(T <TELL "w">)>
<TELL "e could not see, it was clear by feeling around that ">
<COND (,SUBGROUP-MODE <TELL "he was">)
(T <TELL "we were">)>
<TELL " in some sort of tunnel. Without any light, movement
would be painfully slow and uncomfortable.">)>)>
<OBJECT WESTFLAKE-ROOT
(SDESC "westflake")
(KBD %<ASCII !\W>)>
<OBJECT TAG-SEARCH
(ACTION
<ACOND ()
(SCENE-START
<DIVIDER>
<GRAPHIC ,G-FOREST>
<COND (<AND <IN-PARTY? ,BERGON>
<NOT <FSET? ,BERGON ,TRAPPED>>>
<TELL
"\"" TAG ", you search the forest to the north,\" Bergon said, and
that was what I did">)
(T
<TELL
"I headed out into the forest that lay to the north">)>
<TELL
", though I was filled with apprehension at the
thought of exploring on my own." CR CR>
<TELL
"But the forest was beautiful, and the air cool and fresh. Up ahead,
the sound of flowing water could be heard ever more clearly, and I
followed that sound until I came upon a small stream, which took off at
an angle to my path.">
<ADD-TRAVEL-COMMAND ,PRAXIX ,TELL-LEGEND-COMMAND>
<MAKE-TAG-SUBGROUP>
<MOVE-TO ,ELFWOOD-2>)
(SCENE-END
<COND (<AND <FSET? ,WOOD-ELF ,SEEN>
<NOT <FSET? ,ELFSTREAM-1 ,SOLVED>>>
<HINT ,HINT-ELF-SPEAK>)
(<AND <NOT <FSET? ,ELFSTREAM-1 ,SEEN>>
<IN? ,WESTFLAKE-ROOT ,PRAXIX>>
<HINT ,HINT-BITE-FOREST>)
(<AND <NOT <FSET? ,WOOD-ELF ,SEEN>>
<IN? ,WESTFLAKE-ROOT ,PRAXIX>>
<HINT ,HINT-WOOD-ELF>)>)>)>
<ROUTINE SEARCH-END ("AUX" TMP)
<MOVE-TO-NO-GFX ,BITE-FOREST>
<CLEAR-SUBGROUP>
<RESTORE-TAG-COMMANDS>
<SCENE <> <>>
;"Go through the possible outcomes..."
<TELL CR CR>
;"First, the healing part (if any are successful)"
<COND (<IN? ,WOOD-ELF ,HERE>
;"Tag has brought her back..."
<TELL
"We arrived a short time later; " D ,BITE-VICTIM " appeared lifeless, though he
was breathing slowly. The Wood Elf strode to his side, placed
her spindled arm on his wound, and entered a trance-like state." CR CR>
<GRAPHIC ,G-NIGHTFANG ,G-ELF-HEALS-BITE ,BOTTOM-LEFT>
<COND (<IN? ,WESTFLAKE-ROOT ,PRAXIX>
;"His root is not needed now..."
<PRAXIX-STUMP-APPEARANCE>)
(T
;"He returns anyway..."
<TELL
"Praxix returned, empty-handed, and started toward " D ,BITE-VICTIM ". After
just a few steps, he ">)>
<TELL
"stopped, startled by the sight of my new friend." CR CR>
<TELL
"\"You have done well, " TAG "! Very well indeed!\" I blushed, for it wasn't
often this Wizard handed out compliments. \"There are but few Wood
Elves left in this world, and lucky is the day we meet one!\"" CR CR>
<TELL
"We approached " D ,BITE-VICTIM " and watched in silence as the Wood
Elf healed him with her touch. ">
<BITE-VICTIM-BITE-HEALED>)
(<IN? ,WESTFLAKE-ROOT ,PRAXIX>
;"Praxix has the root..."
<GRAPHIC ,G-NIGHTFANG ,G-PRAXIX-HEALS-BITE ,BOTTOM-LEFT>
<PRAXIX-STUMP-APPEARANCE>
<TELL
"knelt at his side, binding the westflake root onto the wound. ">
<BITE-VICTIM-BITE-HEALED>)
(T
;"Esher is in BIG trouble..."
<GRAPHIC ,G-NIGHTFANG>
<HINT ,HINT-NIGHTFANG>
<TELL
"Praxix and I arrived back at the same time, neither having found any
westflake root. " D ,BITE-VICTIM " was motionless, eyes staring without
seeing.">)>
;"Now, where is Bergon?"
<SET TMP ,ELF-HOME-COMMAND>
<COND (<NOT <IN? ,WOOD-ELF ,HERE>>
<SET TMP ,TAG-ROUTE-COMMAND>)>
<COND (<FSET? ,BERGON ,TRAPPED>
<TRAVEL-COMMANDS ,HERE
,BERGON-ROUTE-COMMAND
,PRAXIX-ROUTE-COMMAND
.TMP>)
(T
<TRAVEL-COMMANDS ,HERE
,PRAXIX-ROUTE-COMMAND
.TMP>)>
<COND (<FSET? ,BERGON ,TRAPPED>
;"In bad shape, that's where!"
<TELL CR CR>
<COND (<FSET? ,BITE-VICTIM ,BUSY>
;"This is turning into a lousy day!"
<TELL
"As if things were not bad enough, Bergon was missing. We waited
until nearly sunset, and still he had not returned.">)
(T
;"Could be worse..."
<TELL
"Surprisingly, it was Esher who first noticed Bergon's absence. We
decided to wait, but by sunset, there was still no sign of him.">)>
<TELL CR CR
"\"It is not like Bergon to be late. I fear something has happened
to him,\" Praxix said; he was tired now, and filled with concern.">)
(<AND <FSET? ,BITE-VICTIM ,BUSY>
<IN-PARTY? ,BERGON>>
;"Returned, nothing found. Esher's in trouble."
<TELL CR CR>
<COND (<FSET? ,BERGON-SEARCH ,SEEN>
<TELL
"Bergon arrived a short time later; he, too, had failed to find
the westflake root. ">)>
<TELL "We stood over our friend, but no words were
spoken; we had failed!">)
(<AND <IN-PARTY? ,BERGON> <FSET? ,BERGON-SEARCH ,SEEN>>
;"All's well that ends well."
<TELL CR CR
"Bergon, who had missed all of the excitement, returned a short
time later, and, relieved at " D ,BITE-VICTIM "'s condition, told
of his adventures.">)>
;"Tag tells about wood elves, if he hasn't..."
<COND (<AND <FSET? ,ELFSTREAM-1 ,SEEN>
<NOT <IN? ,WOOD-ELF ,HERE>>>
;"He's at least seen them..."
<TELL CR CR "Thinking that it ">
<COND (<FSET? ,BITE-VICTIM ,INCAPACITATED>
<TELL "somehow might help">)
(<FSET? ,BERGON ,TRAPPED>
<TELL "might be helpful (though it didn't
seem relevant to the problem of finding Bergon)">)
(T
<TELL "might be important">)>
<TELL ", I told ">
<COND (<AND <OR <FSET? ,BERGON ,TRAPPED>
<NOT <IN-PARTY? ,BERGON>>>
<FSET? ,BITE-VICTIM ,INCAPACITATED>>
<TELL D ,PRAXIX>)
(T
<TELL "the others">)>
<TELL " about my adventure at the edge of the stream.">
<COND (<FSET? ,WOOD-ELF ,SEEN>
<TELL
" Praxix was delighted! \"Wood Elves! Well, then! This is indeed our lucky
day. Let us hope we shall be meeting them again!\"">)>
<RTRUE>)
(<IN? ,WOOD-ELF ,HERE>
<TELL CR CR
"I thought this might be a good time for introductions, so I presented
the Wood Elf to the others. \"I am happy to introduce...\" I started,
but came up empty, and the Elf placed her hand on my shoulder.
\"V'ren, of the House of G'lor,\" she said. \"And, if you wish, I shall take
you to the Elf Home.\"" CR CR>
<TELL
"We thanked V'ren for her gracious offer of help, but we had much to consider
before we could commit to any decision. V'ren stood and waited as we discussed
our options.">)>
<RTRUE>>
<ROUTINE BITE-VICTIM-BITE-HEALED ()
<UPDATE-MOVE ,BITE-VICTIM-OBJECT ,RANDOM-OBJECTS>
<FCLEAR ,BITE-VICTIM ,INCAPACITATED>
<UPDATE-FCLEAR ,BITE-FOREST ,ADVISE>
<MAKE-UNBUSY ,BITE-VICTIM>
<FCLEAR ,BITE-VICTIM-OBJECT ,DONT-EXAMINE>
<TELL
"It took a long while, though it was still light when " D ,BITE-VICTIM
"'s eyes regained their sight and his body stirred. \"What are you all looking
at?\" he said, blankly, and even Praxix' lips turned up into a smile.">
<COND (<EQUAL? ,BITE-VICTIM ,ESHER>
<TELL CR CR
"\"We are looking at one very poor excuse for a physician,\" he said.">)>
<RTRUE>>
<ROUTINE PRAXIX-STUMP-APPEARANCE ()
<TELL
"Just then, from out of nowhere, Praxix rose from the
ground! I was mesmerized by the sight, and stood there, speechless.
\"Don't just stand there!\" he shouted, \"Help an old man up!\"" CR CR>
<TELL
"Embarrassed, I helped him out of a hollowed-out stump that had been
inconspicuously sitting nearby. But before I could ask him how he had gotten
there, he rushed toward " D ,BITE-VICTIM ", then ">>
<ROOM ELFWOOD-2
(TRAVEL-COMMANDS PROCEED-COMMAND STREAM-PATH-COMMAND RETURN-COMMAND)
(ENTER FSET-SEEN)
(GRAPHIC G-FOREST)
(ACTION
<ACOND ()
(PROCEED:REMOVE
<FSET ,HERE ,EXAMINED>
<TELL
"The path descended into a deep ravine, and I was loath to follow it this
near to twilight. Across the ravine, the forest was unnaturally dark, as though
a black curtain had been drawn over it.">)
(STREAM-PATH
<COND (<FSET? ,HERE ,EXAMINED>
<TELL
"Rather than giving up, I chose to follow the stream in search for
the needed root.">)
(T
<TELL
"Moving quickly and scanning the ground for any sign of westflake, I
chose to follow the stream.">)>
<MOVE-TO ,ELFSTREAM-1
" After about fifty paces, the stream coursed
over a small waterfall and into a shallow pool, where, to my surprise,
a young woman was sitting, with her back toward me. I hid myself behind
a rock, unsure of whether to reveal myself.">)
(RETURN
<TELL
"Unable to find any westflake root, I returned to camp.">
<SEARCH-END>)>)>
<ROUTINE MOVE-TO-NO-GFX (RM "OPTIONAL" (STR <>))
<MOVE-TO .RM .STR <> T <>>>
<OBJECT WOOD-ELF
(SDESC "woman")
(KBD %<ASCII !\W>)
(FLAGS DONT-TAKE)
(LOC ELFSTREAM-1)
(ACTION
<ACOND ()
(EXAMINE:CLEAR
<FSET ,WOOD-ELF ,EXAMINED>
<COND (<FSET? ,WOOD-ELF ,SEEN>
<TELL
"Having recovered from the shock of that first look, I looked at
this creature again and I began to feel her age and wisdom, and even
sense a beauty that lay beneath her tree-like exterior.">)
(T
<TELL
"The woman was slender, with long flowing hair. I could not see
her face, yet some warm inner feeling was touched by her gentle
grace.">)>)>)>
<COMMAND (TALK-TO-ELF TALK)>
<COMMAND (SPEAK-ELVISH SPEAK)>
<ROOM ELFSTREAM-1
(TRAVEL-COMMANDS STAY-HIDDEN-COMMAND APPROACH-COMMAND RETURN-COMMAND)
(ENTER
<EXECUTE ()
<FSET ,HERE ,SEEN>
<GRAPHIC ,G-WATERFALL-NO-ELF ,G-WATERFALL ,BOTTOM-RIGHT>>)
(ACTION
<ACOND ()
(TALK-TO-ELF:REMOVE
<TELL
"\"I am pleased to meet you,\" I began, stumbling over the words. \"My friend is
badly hurt...\"" CR CR>
<TELL
"But this creature that I assumed to be a Wood Elf appeared confused by my speech.
I tried other, non-verbal means of communication, and was soon quite frustrated at
my inability to communicate the desire that she come to the aid of " D ,BITE-VICTIM
", if indeed that was within her power. And then, just as I was about to return to
our camp, she spoke in soft, lilting tones in a language that I presumed to be
Elvish.">
<ADD-TRAVEL-COMMAND ,HERE ,SPEAK-ELVISH-COMMAND>
<FSET ,HERE ,BLUE-MIX>)
(SPEAK-ELVISH
<TELL
"Well, what did I know of Elvish? But there was little else to do, so I gave it my
best try...." CR CR>
<COND (<READ-ELVISH ,TAG>
T)
(T
<TELL
"At least, I thought I would, but no sound came through my lips and at last, dejected,
I raced back to camp, eager to tell the others of my discovery.">
<SEARCH-END>)>)
(APPROACH
<COND (<NOT <QSET? ,WOOD-ELF ,SEEN>>
<TELL
"I approached cautiously, hoping not to startle her. But as I neared,
she sensed my presence, stood, and turned toward me...." CR CR>
<TELL
"I gasped, stumbling backward onto the ground, and twisted my ankle.
She was grotesque, her face leathery and brown, more like a gnarled tree
than a person. She stretched her spindled arms toward me, and opened her eyes
for the first time: clear, large, and fathomless.">
<GRAPHIC ,G-ELF>
<REMOVE-TRAVEL-COMMAND ,HERE ,STAY-HIDDEN-COMMAND>
<UPDATE-FCLEAR ,WOOD-ELF ,DONT-EXAMINE>)
(T
<TELL
"As if under some hypnotic spell, I rose and hobbled toward this creature of
the forest. Her eyes were kind and gentle, yet she backed off as I approached.">
<CHANGE-TRAVEL-COMMAND ,HERE
,APPROACH-COMMAND
,TALK-TO-ELF-COMMAND>)>)
(STAY-HIDDEN
<COND (<NOT <QSET? ,WOOD-ELF ,SCOUTED>>
<TELL
"I waited there, mesmerized by the beauty of this forest dweller.
After a few moments, two people came into view from further downstream
but it was late in the afternoon, and
the rays of the setting sun made it impossible to see them clearly.
The woman motioned to the newcomers, who then returned to the forest.">)
(T
<TELL
"Then the woman rose and followed the stream out of sight into the
forest.">
<REMOVE-TRAVEL-COMMAND ,HERE ,APPROACH-COMMAND>
<CHANGE-TRAVEL-COMMAND ,HERE
,STAY-HIDDEN-COMMAND
,FOLLOW-COMMAND>)>)
(FOLLOW
<TELL
"I decided to follow the mysterious woman, but soon lost track of her
as she sped along the course of the stream. It was now late, and
I had no choice but to return to camp.">
<SEARCH-END>)
(RETURN
<COND (<FSET? ,WOOD-ELF ,SEEN>
<TELL
"Though my ankle was hurt, I stumbled and crawled my way back to camp.">)
(T
<TELL
"It was getting late, so I returned to camp with the intention of telling
the others about these forest people.">)>
<SEARCH-END>)>)>