-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathoracle.zil
3376 lines (3104 loc) · 104 KB
/
oracle.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
"ORACLE for
ZORK ZERO
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
<BEGIN-SEGMENT SECRET>
<INCLUDE "BASEDEFS" "PDEFS"> ;"needed for G-VIAL-F, for some reason"
<ROOM ORACLE
(LOC ROOMS)
(DESC "Oracle")
(REGION "Region: Unknown")
(UP TO CRYPT)
(OUT TO CRYPT)
(FLAGS RLANDBIT UNDERGROUNDBIT)
(GLOBAL SLIME)
(VALUE 10)
(ICON ORACLE-ICON)
(MAP-LOC <PTABLE SECRET-WING-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-10>)
(THINGS <> SHADOW PHIL-SHADOW-PS)
(ACTION ORACLE-F)>
<ROUTINE ORACLE-F ("OPT" (RARG <>))
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<G? ,ORACLE-EXIT-NUMBER 4>>
<SETG ORACLE-EXIT-NUMBER <- <RANDOM 5> 1>>
<QUEUE I-AMULET 4>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"You are in an irregularly shaped chamber, hewn out of bedrock by untold ages
of trickling waters. The walls are slimy, and shadows dance in the unlit
crevices. A stream of slime drips sluggishly down an uneven tunnel which heads
roughly upwards." CR " ">
<D-ORACLE>)>>
<END-SEGMENT>
<BEGIN-SEGMENT CASTLE>
<OBJECT ORACLE-OBJECT
(LOC ORACLE)
(DESC "oracle")
(SYNONYM ORACLE BARGTH MOUTH HEAD)
(ADJECTIVE HUGE ORACLE\'S SERPENT\'S)
(FLAGS NDESCBIT VOWELBIT VEHBIT INBIT CONTBIT
OPENBIT SEARCHBIT DROPBIT)
(CAPACITY 100)
(OWNER ORACLE-OBJECT)
(RESEARCH
"The encyclopedia scoffs at this silly little legend about an oracle which
offered bits of wisdom and could transport believers to distant regions.")
(ACTION ORACLE-OBJECT-F)>
<END-SEGMENT>
<BEGIN-SEGMENT SECRET>
<ROUTINE ORACLE-OBJECT-F ("OPTIONAL" (VARG <>) "AUX" TAKER RM)
<COND (.VARG
<RFALSE>)
(<AND <VERB? ASK-ABOUT PRAY TELL>
<PRSO? ,ORACLE-OBJECT>>
<TELL
"The oracle stares at the far wall of the cave, impassive and unresponsive.">
<COND (<NOT ,ORACLE-USED>
<TELL
" It appears that the ancient claims of the oracle's amazing abilities
were just wild fictions.">)>
<CRLF>
<STOP>)
(<VERB? EXAMINE>
<D-ORACLE>
<COND (<FIRST? ,ORACLE-OBJECT>
<TELL " Sitting in the mouth of the oracle is">
<D-NOTHING>)
(T
<CRLF>)>)
(<AND <VERB? LOOK-INSIDE>
<NOUN-USED? ,ORACLE-OBJECT ,W?MOUTH>
<NOT <IN? ,PROTAGONIST ,ORACLE-OBJECT>>>
<TELL "The wide-open mouth is larger than you!" CR>)
(<AND <VERB? PUT THROW>
<PRSI? ,ORACLE-OBJECT>>
<TELL "You ">
<COND (<VERB? THROW>
<TELL "toss">)
(T
<TELL "place">)>
<TELL T ,PRSO " into the mouth of the oracle">
<COND (<IN? ,RUBY ,DEPRESSION>
<MOVE ,PRSO
<SET RM <GET ,ORACLE-TABLE ,ORACLE-EXIT-NUMBER>>>
<TELL ", and it instantly vanishes!" CR>
<COND (<OR <SET TAKER <FIND-IN .RM ,WHITEBIT>>
<SET TAKER <FIND-IN .RM ,BLACKBIT>>>
<MOVE ,PRSO .TAKER>
<COND (<PRSO? ,PIGEON>
<MOVE-TO-PERCH .TAKER>)>)>
<NOW-DARK?>)
(T
<MOVE ,PRSO ,ORACLE-OBJECT>
<TELL ,PERIOD-CR>)>)
(<VERB? ENTER>
<COND (<NOT ,LIT>
<TELL ,TOO-DARK CR>)
(<AND <IN? ,BEDBUG ,HERE>
<NOT ,TIME-STOPPED>>
<DO-WALK ,P?UP>)
(<IN? ,RUBY ,DEPRESSION>
<COND (,ORACLE-USED
<TELL "D">)
(T
<SPLIT-BY-PICTURE ,TEXT-WINDOW-PIC-LOC T>
<SCREEN ,S-TEXT>
<CRLF>
<MARGINAL-PIC ,TELEPORT-LETTER>
<DIROUT ,D-SCREEN-OFF>
<TELL "D"> ;"so script doesn't say ARKNESS..."
<DIROUT ,D-SCREEN-ON>)>
<TELL "arkness envelopes you">
<COND (<NOT ,ORACLE-USED>
<TELL
" with a giant hand swathed in a glove of black velvet. You feel disembodied;
there is no up and down. You are motionless in time and space. A moment drags
out for a century -- or is it a century that has flown by in a moment? After
an immeasurable time, you notice">)
(T
<TELL ". You feel">)>
<TELL
" a stabbing pain... swirling lights... dizziness" ,ELLIPSIS>
<COND (<NOT ,BORDER-ON>
<INIT-STATUS-LINE T>)>
<GOTO <GET ,ORACLE-TABLE ,ORACLE-EXIT-NUMBER>>
<SETG ORACLE-USED T>)>)>>
<ROUTINE D-ORACLE ()
<COND (<IN? ,PROTAGONIST ,ORACLE-OBJECT>
<TELL "Surrounding you is">)
(T
<TELL "Before you sits">)>
<TELL
" the legendary Oracle of Bargth. Shaped like an enormous serpent's head,
its huge mouth hangs open in an expression of insatiable hunger; its four ">
<COND (<IN? ,RUBY ,DEPRESSION>
<TELL "glowing">)
(T
<TELL "dark">)>
<TELL
" eyes seem fixed upon you. In the center of the serpent's forehead is a">
<COND (<IN? ,RUBY ,DEPRESSION>
<TELL "n enormous ruby.">)
(T
<TELL " depression.">)>>
<OBJECT DEPRESSION
(LOC ORACLE)
(DESC "depression")
(SYNONYM DEPRESSION)
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)
(ACTION DEPRESSION-F)>
<ROUTINE DEPRESSION-F ()
<COND (<VERB? EXAMINE>
<TELL "The semi-spherical depression is a few inches across.">
<COND (<IN? ,RUBY ,DEPRESSION>
<TELL " A huge ruby rests in the depresssion.">)>
<CRLF>)
(<AND <VERB? TAKE>
<PRSO? ,RUBY>
<FSET? ,RUBY ,NDESCBIT>>
<COND (<EQUAL? <ITAKE T> ,M-FATAL <>>
<RTRUE>)
(T
<FCLEAR ,RUBY ,NDESCBIT>
<FCLEAR ,RUBY ,NALLBIT>
<TELL "Taken." CR>)>)
(<VERB? PUT>
<COND (<PRSO? ,SAPPHIRE>
<MOVE ,SAPPHIRE ,HERE>
<TELL
"The sapphire is a bit smaller than the depression; it stays for a
moment but then drops to the ground." CR>)
(<PRSO? ,RUBY>
<MOVE ,RUBY ,DEPRESSION>
<FSET ,RUBY ,NDESCBIT>
<FSET ,RUBY ,NALLBIT>
<TELL
"The moby ruby fits perfectly into the depression. As it sinks into place,
the eyes of the oracle begin to glow.">
<COND (<FIRST? ,ORACLE-OBJECT>
<ROB ,ORACLE-OBJECT
<GET ,ORACLE-TABLE ,ORACLE-EXIT-NUMBER>>
<TELL
" Everything in the oracle's mouth suddenly vanishes!">)>
<CRLF>
<INC-SCORE ,ORACLE-SCORE>
<SETG ORACLE-SCORE 0>
<RTRUE>)
(T
<TELL "It doesn't fit the depression." CR>)>)>>
<GLOBAL ORACLE-USED <>>
<GLOBAL ORACLE-SCORE 9>
<CONSTANT ORACLE-TABLE
<PTABLE CRAG GLACIER DELTA-1 FOOT-OF-STATUE MINE-ENTRANCE>>
<END-SEGMENT>
<BEGIN-SEGMENT 0>
<OBJECT AMULET
(LOC G-U-MOUNTAIN)
(DESC "amulet")
(SYNONYM AMULET)
(FLAGS TAKEBIT WEARBIT VOWELBIT)
(ACTION AMULET-F)>
<ROUTINE AMULET-F ()
<COND (<VERB? EXAMINE>
<TELL "The amulet is in the shape of a serpent's head. ">
<COND (<FSET? ,HERE ,BEYONDBIT>
<TELL "It seems to be glowing slightly">)
(T
<TELL
<GET ,EYE-TABLE ,ORACLE-EXIT-NUMBER> " of its four eyes ">
<COND (<EQUAL? ,ORACLE-EXIT-NUMBER 1>
<TELL "is">)
(T
<TELL "are">)>
<TELL " open">)>
<TELL ,PERIOD-CR>)
(<VERB? TOUCH>
<COND (<FSET? ,HERE ,BEYONDBIT>
<CAST-HUNGER-SPELL>
<TELL
"A stream of light undulates slowly from the amulet ">
<COND (<FSET? ,AMULET ,WORNBIT>
<TELL
"and envelops you like a mist. After a moment, the mist clears" ,ELLIPSIS>
<GOTO ,G-U-MOUNTAIN>)
(T
<TELL "but then quickly fades." CR>)>)
(<NOT ,TIME-STOPPED>
<TELL
"The amulet, for one brief moment, glows from deep within." CR>)>)>>
<GLOBAL ORACLE-EXIT-NUMBER 5>
<CONSTANT EYE-TABLE
<PTABLE "None" "One" "Two" "Three" "All">>
<ROUTINE I-AMULET ()
<QUEUE I-AMULET 4>
<SETG ORACLE-EXIT-NUMBER <+ ,ORACLE-EXIT-NUMBER 1>>
<COND (<G? ,ORACLE-EXIT-NUMBER 4>
<SETG ORACLE-EXIT-NUMBER 0>)>
<COND (<AND <EQUAL? ,HERE ,ORACLE>
<IN? ,RUBY ,DEPRESSION>
,LIT>
<RETURN-FROM-MAP>
<TELL " The oracle seems to blink for a moment." CR>)
(T
<RFALSE>)>>
<END-SEGMENT>
\
<BEGIN-SEGMENT ORACLE>
<OBJECT FLATHEAD-MOUNTAINS
(LOC LOCAL-GLOBALS)
(DESC "Flathead Mountains")
(SYNONYM MOUNTAIN MOUNTAINS)
(ADJECTIVE FLATHEAD)
(RESEARCH
"\"This towering range runs north to south, forming the eastern border of the
Frigid River Valley. Beyond the mountains, uninhabitable swamps extend to the
edge of the world. Near the southern end of the range, the Zorbel Pass permits
passage to the Fublio Valley.\"")
(ACTION FLATHEAD-MOUNTAINS-F)>
<ROUTINE FLATHEAD-MOUNTAINS-F ()
<COND (<VERB? ENTER CLIMB CLIMB-UP CLIMB-DOWN>
<V-WALK-AROUND>)>>
<ROOM CRAG
(LOC ROOMS)
(DESC "Crag")
(REGION "Flathead Mountains")
(LDESC
"You are high in the mountains, surrounded by jagged, rocky peaks. Paths
squeeze northeast, southeast, and southwest, and it looks like you could
also climb down.")
(SW TO HOLLOW)
(DOWN TO UPPER-LEDGE)
(NE TO NATURAL-ARCH)
(SE TO NATURAL-ARCH)
(FLAGS RLANDBIT ONBIT BEYONDBIT OUTSIDEBIT)
(GLOBAL FLATHEAD-MOUNTAINS)
(SYNONYM CRAG)
(VALUE 10)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-4>)
(ICON CRAG-ICON)>
<OBJECT CRAG-REBUS-BUTTON
(LOC CRAG)
(SDESC "blinking key-shaped button")
(FDESC
"Imbedded in the rocky wall is a blinking button in the shape of a key.")
(SYNONYM BUTTON)
(ADJECTIVE KEY-SHAPED BLINKING)
(ACTION REBUS-BUTTON-F)>
<ROOM HOLLOW
(LOC ROOMS)
(DESC "Hollow")
(REGION "Flathead Mountains")
(NE TO CRAG)
(SOUTH TO IRON-MINE IF IRON-MINE-OPEN)
(FLAGS RLANDBIT ONBIT BEYONDBIT OUTSIDEBIT)
(GLOBAL FLATHEAD-MOUNTAINS)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-3>)
(THINGS IRON MINE IRON-MINE-PS)
(ACTION HOLLOW-F)>
<ROUTINE HOLLOW-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a chamber, open to the sky, formed by cliff-like mountain walls.
Strange and frightening runes have been carved into the cliff wall to the
south, next to a ">
<COND (,IRON-MINE-OPEN
<TELL "dark cave entrance">)
(T
<TELL "six-sided hole">)>
<TELL ". The only ">
<COND (,IRON-MINE-OPEN
<TELL "other">)
(T
<TELL "apparent">)>
<TELL " exit is northeast.">)>>
<GLOBAL IRON-MINE-OPEN <>>
<OBJECT RUNES
(LOC HOLLOW)
(DESC "runes")
(SYNONYM RUNES)
(ADJECTIVE STRANGE FRIGHTENING)
(FLAGS READBIT NDESCBIT NARTICLEBIT)
(TEXT
"The runes are in an ancient and unfamiliar language; you can translate only
a handful of phrases: \"accursed sapphire\" and \"sealed their tomb\" and
\"death awaits.\"")>
<OBJECT HEXAGONAL-HOLE
(LOC HOLLOW)
(DESC "six-sided hole")
(SYNONYM HOLE)
(ADJECTIVE SMALL SIX-SIDED HEXAGONAL)
(FLAGS NDESCBIT)
(ACTION HEXAGONAL-HOLE-F)>
<ROUTINE HEXAGONAL-HOLE-F ()
<COND (<VERB? EXAMINE>
<TELL
"The small, six-sided hole has been neatly carved into the cliff wall." CR>)
(<VERB? LOOK-INSIDE>
<TELL ,ONLY-BLACKNESS>)
(<VERB? REACH-IN>
<TELL
"Your hand is about the same size as the hole, and since your hand isn't
hexagonal, it doesn't fit." CR>)
(<VERB? PUT>
<COND (<PRSO? ,HEXAGONAL-BLOCK>
<SETG IRON-MINE-OPEN T>
<SETG COMPASS-CHANGED T>
<REMOVE ,HEXAGONAL-BLOCK>
<REMOVE ,HEXAGONAL-HOLE>
<TELL
"A seam appears in the cliff wall, and a huge slab of rock slides silently
aside! A breeze of stale, dusty air caresses you as the dark opening to the
south beckons ominously." CR>
<INC-SCORE 14>)
(T
<TELL "It doesn't fit." CR>)>)>>
<OBJECT BIRCH
(LOC HOLLOW)
(DESC "birch tree")
(FDESC
"A stubborn birch tree has been eking out an existence in this rocky hollow
for, judging by its size, fifty to a hundred years -- though, in this barren
spot, who can guess the growth rate of a tree?")
(SYNONYM TREE BIRCH)
(ADJECTIVE BIRCH)
(FLAGS PLANTBIT)
(ACTION BIRCH-F)>
<ROUTINE BIRCH-F ("OPTIONAL" (ARG <>))
<COND (<EQUAL? .ARG ,M-WINNER>
<PLANT-STUNNED>)
(<VERB? CLIMB CLIMB-UP>
<TELL ,POORLY-CONFIGURED>)
(<VERB? GET-NEAR>
<PERFORM-PRSA ,SMALL-ELM>)
(<AND <VERB? LISTEN>
,PLANT-TALKER>
<TELL
"The birch is poignantly bemoaning that none of its seedlings has
ever taken root in this barren, rocky place." CR>)>>
<ROOM IRON-MINE
(LOC ROOMS)
(DESC "Iron Mine")
(REGION "Flathead Mountains")
(LDESC
"This appears to have been a mine for the excavation of iron ore, possibly
dating to the earliest days of recorded history. There seems to have been a
struggle here, in the distant past: two decayed skeletons locked in vicious
combat. The rusty strips of metal by their side may have once been weapons.")
(NORTH TO HOLLOW)
(OUT TO HOLLOW)
(FLAGS RLANDBIT BEYONDBIT UNDERGROUNDBIT)
(SYNONYM MINE)
(ADJECTIVE IRON)
(GLOBAL BONES BODIES FLATHEAD-MOUNTAINS)
(THINGS IRON MINE IRON-MINE-PS
<> IRON IRON-PS
IRON ORE IRON-PS)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-3>)
(ICON IRON-MINE-ICON)>
<ROUTINE IRON-PS ()
<COND (<EQUAL? ,HERE ,IRON-MINE>
<TELL
"There's no iron ore here. The vein is played out; the mine abandoned." CR>)>>
<ROUTINE IRON-MINE-PS ()
<COND (<AND <VERB? ENTER>
<EQUAL? ,HERE ,HOLLOW>>
<DO-WALK ,P?IN>)
(T
<PERFORM-PRSA ,GLOBAL-HERE>)>>
;<BEGIN-SEGMENT 0>
<BEGIN-SEGMENT CASTLE>
;<BEGIN-SEGMENT ORACLE>
<OBJECT SAPPHIRE
(LOC IRON-MINE)
(DESC "sapphire")
(FDESC
"In the bony hand of one of the skeletons, locked in its death grip, is
a stunningly beautiful sapphire.")
(SYNONYM SAPPHIRE JEWEL JERRIMORE)
(ADJECTIVE STUNNING STUNNINGLY BEAUTIFUL CURSED ACCURSED)
(FLAGS TAKEBIT TRYTAKEBIT)
(SIZE 3)
(OWNER SAPPHIRE)
(RESEARCH
"\"The legend of the accursed Jewel of Jerrimore can trace its origins to
the third century B.E. in the northlands of Frobozz. This jewel, which in
most versions of the legend is a star sapphire, is said to have been cursed
by the Mage of Jerrimore as he lay upon his deathbed.|
As he sickened, this powerful but twisted wizard became convinced that
his enemies had poisoned him to gain possession of his greatest treasure,
the Jewel of Jerrimore. With his dying breath, he loosed a great and evil
curse upon the Jewel and all who would possess it.|
After the Mage's death, each of his heirs took possession of the jewel;
each held it jealously, mistrusting any who might look upon it; each became
obsessed with the greed and treachery they perceived around them; and each
came to early and horrible deaths. Thus grew the legend of the cursed Jewel.|
Although the legends vary, all versions say that the Jewel travelled
through many lands, always leaving a wake of misery and death, and finally
became lost in a forgotten iron mine.\"")
(ACTION SAPPHIRE-F)>
<ROUTINE SAPPHIRE-F ()
<COND (<AND <VERB? TAKE>
<PRSO? ,SAPPHIRE>
<FSET? ,SAPPHIRE ,TRYTAKEBIT>>
<FCLEAR ,SAPPHIRE ,TRYTAKEBIT>
<PUTP ,SAPPHIRE ,P?ACTION <>>
<FSET ,SAPPHIRE ,TOUCHBIT>
<MOVE ,SAPPHIRE ,PROTAGONIST>
<TELL
"As you pry loose the sapphire, the skeleton's fingers crumble to dust, and
the jewel glows briefly from deep within." CR>)>>
<END-SEGMENT>
<BEGIN-SEGMENT ORACLE>
<ROOM NATURAL-ARCH
(LOC ROOMS)
(DESC "Natural Arch")
(REGION "Flathead Mountains")
(LDESC
"You are on a windswept rock mesa. Paths lead northwest and southwest around
an outcropping. A slender bridge of sandstone arcs gracefully above you.
Beneath the center of the arch, timeworn stairs lead down into a dark cave.")
(NW TO CRAG)
(SW TO CRAG)
(DOWN TO ENCHANTED-CAVE)
(FLAGS RLANDBIT ONBIT BEYONDBIT OUTSIDEBIT)
(GLOBAL FLATHEAD-MOUNTAINS)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-6>)
(ICON NATURAL-ARCH-ICON)>
<OBJECT NATURAL-ARCH-OBJECT
(LOC NATURAL-ARCH)
(DESC "sandstone arch")
(SYNONYM ARCH BRIDGE)
(ADJECTIVE SANDSTONE NATURAL SLENDER GRACEFUL)
(FLAGS NDESCBIT)
(ACTION NATURAL-ARCH-OBJECT-F)>
<ROUTINE NATURAL-ARCH-OBJECT-F ()
<COND (<VERB? EXAMINE LOOK-UNDER>
<TELL "Under the arch, steps lead down into darkness." CR>)>>
<ROOM ENCHANTED-CAVE
(LOC ROOMS)
(DESC "Enchanted Cave")
(REGION "Flathead Mountains")
(UP TO NATURAL-ARCH)
(OUT TO NATURAL-ARCH)
(FLAGS RLANDBIT BEYONDBIT UNDERGROUNDBIT)
(SYNONYM CAVE)
(ADJECTIVE ENCHANTED)
(GLOBAL BONES FLATHEAD-MOUNTAINS)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-7>)
(ICON ENCHANTED-CAVE-ICON)
(ACTION ENCHANTED-CAVE-F)>
<ROUTINE ENCHANTED-CAVE-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"Your light sparkles off reflective walls, spilling glittering droplets
of illumination across every surface, including the dull gray altar in
the very center of the room. The altar is inscribed with the single
word \"Zilbeetha.\" ">
<COND (<IN? ,STATUE ,HERE>
<TELL ,STATUE-DESC " ">)>
<TELL
"Strewn about the cave are the bones of many adventurers, amidst dust which
might be that of even older bones. An uneven stair leads up toward light.">)>>
<CONSTANT STATUE-DESC
"Behind the altar is a statue of a young man holding a frail flower. His face
shows heartbreak and despair, with a single tear just beginning to slide down
his cheek.">
<OBJECT STATUE
(LOC ENCHANTED-CAVE)
(DESC "statue")
(SYNONYM STATUE MAN)
(ADJECTIVE YOUNG)
(FLAGS NDESCBIT)
(GENERIC G-DIMWIT-F) ;"because of Dimwit statue"
(ACTION STATUE-F)>
<ROUTINE STATUE-F ()
<COND (<AND <VERB? PUT-ON>
<PRSI? ,STATUE>
<FSET? ,PRSO ,WEARBIT>>
<TELL "The statue isn't a department store mannequin!" CR>)
(<VERB? EXAMINE>
<TELL ,STATUE-DESC CR>)
(<VERB? ALARM>
<TELL
"Apparently, you think breaking an enchantment is as easy as breaking an
egg!" CR>)>>
<OBJECT ALTAR
(LOC ENCHANTED-CAVE)
(DESC "altar")
(SYNONYM ALTAR)
(FLAGS NDESCBIT VOWELBIT SURFACEBIT SEARCHBIT CONTBIT OPENBIT)
(ACTION ALTAR-F)>
<ROUTINE ALTAR-F ()
<COND (<AND <VERB? PUT-ON>
<PRSO? ,MILKY-ORB ,SMOKY-ORB ,GLITTERY-ORB ,FIERY-ORB>>
<COND (<OR <PRSO? ,ENCHANTED-ORB>
<AND <EQUAL? ,ORBS-EXAMINED 3>
<NOT <FSET? ,PRSO ,ORBBIT>>>>
<REMOVE ,PRSO>
<REMOVE ,STATUE>
<MOVE ,FLOWER ,ALTAR>
<FCLEAR ,FLOWER ,NDESCBIT>
<FCLEAR ,FLOWER ,TRYTAKEBIT>
<TELL
"At first, nothing happens. Then the orb glows deep within, and a gentle chorus
of angels begins to swell. As the glow brightens to include the entire cave,
the statue and orb are gone, replaced by a young couple in wedding garb, in
rapturous embrace. As the singing of the angels reaches a crescendo, Zilbeetha
and her lover recede from sight toward planes unknown, leaving a flower of
incomparable fragility and beauty sitting on the altar." CR>
<INC-SCORE 25>)
(<IN? ,STATUE ,HERE>
<JIGS-UP
"An explosion of vengeful magic leaps from the altar, instantly melting
your flesh away. Your bones clatter amidst the others in the cave.">)>)>>
<BEGIN-SEGMENT 0>
<OBJECT FLOWER
(LOC ENCHANTED-CAVE)
(DESC "flower")
(SYNONYM FLOWER)
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT PLANTBIT)
(ACTION FLOWER-F)>
<ROUTINE FLOWER-F ("OPTIONAL" (ARG <>))
<COND (<EQUAL? .ARG ,M-WINNER>
<PLANT-STUNNED>)
(<AND <VERB? TAKE>
<FSET? ,FLOWER ,TRYTAKEBIT>
<PRSO? ,FLOWER>>
<TELL "It's part of a stone statue!" CR>)
(<AND <VERB? LISTEN>
,PLANT-TALKER>
<TELL
"The flower is aware that, having been cut, it will shortly wilt. However, it
has philosophically decided to accept this sad fate without complaint." CR>)
(<VERB? EXAMINE>
<TELL "The flower">
<COND (<FSET? ,FLOWER ,TRYTAKEBIT>
<TELL ", though made of stone,">)>
<TELL " is a thing of fragile beauty." CR>)>>
<END-SEGMENT>
<BEGIN-SEGMENT ORACLE>
<ROOM UPPER-LEDGE
(LOC ROOMS)
(DESC "Upper Ledge")
(REGION "Flathead Mountains")
(LDESC
"You are on a mountain ledge with a spectacular view of the Flathead Fjord,
which separates the Flathead Mountains (which you are at the northern tip of)
from the Gray Mountains, across the fjord to the north. The ocean, to the west,
is lost amidst the dense fog which rolls up the fjord. A rocky spire stands
like a finger at the very edge of the ledge. A steep path climbs farther up
the mountain. A short distance below is another, smaller ledge.")
(UP TO CRAG)
(DOWN TO LOWER-LEDGE IF ROPE-PLACED ELSE
"There are no handholds to climb down.")
(FLAGS RLANDBIT ONBIT BEYONDBIT OUTSIDEBIT)
(SYNONYM LEDGE)
(ADJECTIVE UPPER)
(GLOBAL FJORD LOWER-LEDGE FLATHEAD-MOUNTAINS GRAY-MOUNTAINS)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-4>)
(ICON UPPER-LEDGE-ICON)>
<GLOBAL ROPE-PLACED <>>
<OBJECT SPIRE
(LOC UPPER-LEDGE)
(DESC "rocky spire")
(SYNONYM SPIRE ROCK)
(ADJECTIVE ROCKY)
(FLAGS NDESCBIT)>
<ROOM LOWER-LEDGE
(LOC ROOMS)
(DESC "Lower Ledge")
(REGION "Flathead Mountains")
(LDESC
"The view of the fjord isn't as good, as you are surrounded on three sides by
nearly vertical cliffs. There don't seem to be any exits.")
(UP SORRY "You can't even see the rope anymore, let alone reach it.")
(DOWN SORRY "It's still a good five hundred foot drop to the fjord!")
(FLAGS RLANDBIT ONBIT BEYONDBIT OUTSIDEBIT)
(SYNONYM LEDGE)
(ADJECTIVE LOWER)
(GLOBAL FJORD UPPER-LEDGE FLATHEAD-MOUNTAINS)
(MAP-LOC <PTABLE FJORD-MAP-NUM MAP-GEN-Y-2 MAP-GEN-X-4>)
(ICON LOWER-LEDGE-ICON)
(ACTION LOWER-LEDGE-F)
(THINGS NARROW CRACK NARROW-CRACK-PS)>
<ROUTINE LOWER-LEDGE-F ("OPTIONAL" (RARG <>))
<COND (.RARG
<RFALSE>)
(<AND <VERB? THROW PUT-ON>
<PRSI? ,LOWER-LEDGE>>
<REMOVE ,PRSO>
<COND (<OR <PRSO? ,PERCH>
<ULTIMATELY-IN? ,PERCH ,PRSO>>
<SETG REMOVED-PERCH-LOC ,WATER>)>
<TELL
"You toss" T ,PRSO " carefully, but it skitters across the lower ledge and
falls into the fjord." CR>)
(<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,UPPER-LEDGE>
<NOT <FSET? ,LOWER-LEDGE ,TOUCHBIT>>>
<TELL
"By leaning far out, you can just make out the edge of something on the ledge
below. Most of it is hidden by protrusions in the cliff wall, though, so you
can't make out what it is." CR>)
(<VERB? ENTER CLIMB-ON>
<COND (<EQUAL? ,HERE ,LOWER-LEDGE>
<TELL ,LOOK-AROUND>)
(T
<DO-WALK ,P?DOWN>)>)
(<VERB? LEAP>
<SETG PRSO <>> ;"JIGS-UP in V-LEAP"
<RFALSE>)>>
<ROUTINE NARROW-CRACK-PS ()
<COND (<VERB? LOOK-INSIDE>
<TELL ,ONLY-BLACKNESS>)
(<VERB? REACH-IN>
<COND (<NOT ,ROPE-PLACED>
<JIGS-UP "Yeow! Fangs sink into your hand.">)
(T
<TELL ,NOTHING-IN-REACH>)>)>>
<OBJECT EASLE
(LOC LOWER-LEDGE)
(DESC "easel")
(FDESC
"Despite the inferior view, someone has been painting here. An easel
is set up on the ledge.")
(SYNONYM EASLE EASEL)
(FLAGS TAKEBIT MAGICBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT VOWELBIT)
(SIZE 10)
(VALUE 12)>
<BEGIN-SEGMENT 0>
<OBJECT LANDSCAPE
(LOC EASLE)
(DESC "landscape")
(SYNONYM LANDSCAPE PAINTING)
(FLAGS TAKEBIT MAGICBIT)
(VALUE 12)
(GENERIC G-PAINTING-F)
(ACTION LANDSCAPE-F)>
<ROUTINE LANDSCAPE-F ()
<COND (<VERB? EXAMINE>
<TELL
"You're not a student of art, but it sure looks like this landscape was done
more with a catapult than a brush. ">
<COND (<EQUAL? ,HERE ,LOWER-LEDGE>
<TELL
"In fact, the artist seems to have gotten more paint on the cliff and ledge
than on the canvas. ">)>
<TELL
"Despite its flaws, the landscape is obviously of the Flathead Fjord." CR>)>>
<ROUTINE G-PAINTING-F (SRES F)
,LANDSCAPE>
<END-SEGMENT>
<BEGIN-SEGMENT ORACLE>
<OBJECT FJORD
(LOC LOCAL-GLOBALS)
(DESC "the Flathead Fjord")
(SYNONYM FJORD)
(ADJECTIVE FLATHEAD)
(FLAGS NARTICLEBIT WATERBIT)
(RESEARCH
"\"The beautiful Flathead Fjord is an ocean inlet which divides the great
mountains of the eastlands into two ranges: the Gray Mountains, on the north
side of the fjord, and the Flathead Mountains, south of the fjord.\"")
(ACTION FJORD-F)>
<ROUTINE FJORD-F ()
<COND (<TOUCHING? ,FJORD>
<CANT-REACH ,FJORD>)>>
\
<OBJECT GRAY-MOUNTAINS
(LOC LOCAL-GLOBALS)
(DESC "Gray Mountains")
(SYNONYM MOUNTAINS)
(ADJECTIVE GRAY GREY)
(RESEARCH
"\"The Gray Mountains refer to both a mountain range and a province. Lying
in the far northern part of the eastlands, the Gray Mountains are a harsh
environment, but a mecca for winter sport enthusiasts.\"")
(ACTION FLATHEAD-MOUNTAINS-F)>
<ROOM GLACIER
(LOC ROOMS)
(DESC "Glacier")
(REGION "Gray Mountains")
(LDESC
"You are on a glacier high atop the Gray Mountains. Far below is a frozen
lake, brilliantly reflective in the midday sunshine. The climb down looks
extremely hazardous.")
(DOWN PER GLACIER-DEATH)
(FLAGS RLANDBIT OUTSIDEBIT ONBIT BEYONDBIT)
(SYNONYM GLACIER)
(GLOBAL GRAY-MOUNTAINS)
(VALUE 10)
(MAP-LOC <PTABLE GRAY-MOUNTAINS-MAP-NUM MAP-GEN-Y-1 MAP-GEN-X-10>)>
<ROUTINE GLACIER-DEATH ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
<COND (.RARG
<RFALSE>)>
<JIGS-UP
"You knock loose a tiny pebble of ice, which starts some other pebbles going,
and pretty soon there's this whole huge incredible avalanche of dirt and snow
and ice and by the way, you're at the bottom of it.">>
<ROOM MIRROR-LAKE
(LOC ROOMS)
(DESC "Mirror Lake")
(REGION "Gray Mountains")
(LDESC
"You are in the center of a lake whose frozen surface is more reflective than
the finest mirror. It's almost impossible to tell where the sky ends and the
ice begins. Worse, the surface is so smooth it's impossible to move!|
Looking into the mirror, everything seems somehow... different.")
(NORTH SORRY "Slip. Slide. No Progress.")
(NE SORRY "Slip. Slide. No Progress.")
(EAST SORRY "Slip. Slide. No Progress.")
(SE SORRY "Slip. Slide. No Progress.")
(SOUTH SORRY "Slip. Slide. No Progress.")
(SW SORRY "Slip. Slide. No Progress.")
(WEST SORRY "Slip. Slide. No Progress.")
(NW SORRY "Slip. Slide. No Progress.")
(FLAGS RLANDBIT ONBIT BEYONDBIT OUTSIDEBIT)
(GLOBAL GRAY-MOUNTAINS)
(MAP-LOC <PTABLE GRAY-MOUNTAINS-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-8>)
(ICON MIRROR-LAKE-ICON)
(ACTION MIRROR-LAKE-F)>
<ROUTINE MIRROR-LAKE-F ("OPT" (RARG <>) "AUX" TMP DIR)
<COND (<AND <EQUAL? .RARG ,M-BEG>
<EQUAL? ,PRSO ,REFLECTION>
<EQUAL? <GET-OWNER ,PRSO> ,MIRROR ,REFLECTION>>
<TELL ,HUH>) ;"for example LOOK AT REFLECTION OF MIRROR"
(<AND <EQUAL? .RARG ,M-BEG>
<VERB? EXAMINE> ;"LOOK AT REFLECTION OF (foo)"
<EQUAL? ,PRSO ,REFLECTION>
<SET TMP <GET-OWNER ,PRSO>>>
<PERFORM ,V?MIRROR-LOOK .TMP ,MIRROR>
<RTRUE>)
(<AND <EQUAL? .RARG ,M-BEG>
<OR <VERB? THROW>
<AND <VERB? STHROW>
<PRSI? ,INTDIR>>>>
<COND (<IDROP>
<RTRUE>)
(<VERB? THROW>
<COND (<PROB 25> <SET DIR ,P?EAST>)
(<PROB 33> <SET DIR ,P?WEST>)
(<PROB 50> <SET DIR ,P?NORTH>)
(T <SET DIR ,P?SOUTH>)>)
(<NOUN-USED? ,INTDIR ,W?NORTH ,W?NE ,W?NW>
<SET DIR ,P?NORTH>)
(<NOUN-USED? ,INTDIR ,W?SOUTH ,W?SE ,W?SW>
<SET DIR ,P?SOUTH>)
(<NOUN-USED? ,INTDIR ,W?EAST>
<SET DIR ,P?EAST>)
(T
<SET DIR ,P?WEST>)>
<LEAVE-MIRROR "throw" .DIR>)
(<AND <EQUAL? .RARG ,M-BEG>
<VERB? PUSH>
<OR <FSET? ,PRSO ,WHITEBIT>
<FSET? ,PRSO ,BLACKBIT>>>
<COND (<PROB 25> <SET DIR ,P?EAST>)
(<PROB 33> <SET DIR ,P?WEST>)
(<PROB 50> <SET DIR ,P?NORTH>)
(T <SET DIR ,P?SOUTH>)>
<LEAVE-MIRROR "push" .DIR>)>>
<ROUTINE LEAVE-MIRROR (STRING DIR "AUX" AV DESTINATION)
<TELL
"As you throw" T ,PRSO ", you slide across the ice in the opposite direction,
and plow into a powdery snow bank" ,ELLIPSIS>
<SET AV <LOC ,PROTAGONIST>>
<COND (<EQUAL? .DIR ,P?NORTH>
<MOVE ,PRSO ,NORTH-OF-MIRROR>
<SET DESTINATION ,SOUTH-OF-MIRROR>)
(<EQUAL? .DIR ,P?SOUTH>
<MOVE ,PRSO ,SOUTH-OF-MIRROR>
<SET DESTINATION ,NORTH-OF-MIRROR>)
(<EQUAL? .DIR ,P?EAST>
<MOVE ,PRSO ,EAST-OF-MIRROR>
<SET DESTINATION ,WEST-OF-MIRROR>)
(T
<MOVE ,PRSO ,WEST-OF-MIRROR>
<SET DESTINATION ,EAST-OF-MIRROR>)>
<COND (<FSET? .AV ,VEHBIT>
<MOVE .AV .DESTINATION>
<GOTO .AV>)
(T
<GOTO .DESTINATION>)>
<COND (<PRSO? ,PIT-BOMB>
<REMOVE ,PIT-BOMB>
<TELL
" Some pit-filling agents drift by in a useless cloud, dispersing." CR>)>
<INC-SCORE ,MIRROR-SCORE>
<SETG MIRROR-SCORE 0>
<RTRUE>>
<GLOBAL MIRROR-SCORE 14>
<OBJECT MIRROR
(LOC MIRROR-LAKE)
(DESC "mirror")
(SYNONYM MIRROR LAKE SURFACE ICE)
(ADJECTIVE MIRROR FROZEN SMOOTH REFLECTIVE)
(FLAGS NDESCBIT)
(RESEARCH
"\"Mirror Lake, in the Gray Mountains, is believed to possess certain magical
powers. Frank Lloyd Flathead's ski chalet was located nearby.\"")
(ACTION MIRROR-F)>
<ROUTINE MIRROR-F ("AUX" TMP)
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL
"As you stare at your reflection in the mirrored surface, you look as you
always have; and yet, you see things you've never seen before: youthful
exuberance and courage, yet tempered by the wisdom and experience of untold
generations of forebears, whose spirits seem to hover over you protectively.|
Who knows what secrets might be revealed by looking at the reflection
of other things in this magical mirror!?!" CR>)
(<AND <VERB? MIRROR-LOOK>
<PRSI? ,MIRROR>>
<COND (<PRSO? ,ME ,PROTAGONIST> ;"latter due to L AT MY REFL."
<PERFORM ,V?EXAMINE ,MIRROR>
<RTRUE>)
(<PRSO? ,ENCHANTED-ORB>
<SETG ORB-FOUND T>
<TELL
"As you gaze at the reflection of" T ,PRSO ", a different vision takes shape:
a beautiful young maiden, in peaceful sleep. Then, the vision fades." CR>)
(<PRSO? ,WAND>
<TELL
"The reflection of the wand is unnaturally still; more frozen than even
the arctic landscape that surrounds you." CR>)
(<PRSO? ,FLASK>
<TELL
"You see the shadow of death hanging over the flask." CR>)
(<PRSO? ,CLOAK>
<TELL
"The reflection reveals a checkered pattern in the cloth, not visible when
you look at the garment itself." CR>)
(<PRSO? ,GLOVE>
<TELL
"The glove's reflection conveys a feeling of fingers more sensitive
and dexterous than the world's greatest surgeon." CR>)
(<PRSO? ,GOGGLES>
<TELL
"The image of the goggles appears surrounded by a brick wall which slowly
transforms to glass!" CR>)
(<PRSO? ,RING>
<TELL
"Odd. Although the ring has no face of any kind, as you gaze at its reflection
you get the distinct impression that the ring is laughing at you!" CR>
<COND (<ULTIMATELY-IN? ,RING>
<MOVE ,RING ,HERE>
<TELL
" Perhaps in reaction to this impression, it seems that you
have dropped the ring." CR>)>
<RTRUE>)
(<PRSO? ,N-S-PASSAGE ,NW-SE-PASSAGE>
<TELL
"The reflection of the passage reveals a feature which is invisible when
you look at the passage itself: the edges dripping with unset glue." CR>)
(<PRSO? ,PARCHMENT>
<TELL
"The paper of the parchment, as seen in the mirror, is suffused with
an other-wordly glow." CR>)
(<PRSO? ,PIGEON>
<TELL
"The reflection of the inert pigeon is most startling: it appears
soaring majestically through space on widespread wings, bearing a
rider regally upon its back!" CR>)
(<PRSO? ,PERCH>
<TELL
"You see not an image of a ceramic perch, but of a proud mountain aerie! A
powerful bird is flying toward the nest from a great distance." CR>)
(<PRSO? ,AMULET>
<TELL
"The reflection of the amulet is suffused in a glow of amazing energies! A
vague ghost of a serpent's head floats over it. A hand reaches to touch the
amulet -- and the mirror goes blank!" CR>)
(<PRSO? ,CANDLE>
<TELL
"A flurry of images surrounds the candle's reflection: an aged wizard weaving
spells above a vat of bubbling tallow; the same mage handing a taper to a
royal handmaiden; a chambermaid lighting the candle for a young prince; the
same candle, never growing shorter, casting shadows on the faces of a
succession of kings. The last image is of a servant placing the candle in a
dark passageway and closing a concealed doorway behind him." CR>)
(<PRSO? ,JESTER>
<REMOVE-J>