-
Notifications
You must be signed in to change notification settings - Fork 15
/
eel.zil
1428 lines (1375 loc) · 30.5 KB
/
eel.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
;"***************************************************************************"
; "game : Arthur"
; "file : EEL.ZIL"
; "auth : $Author: RAB $"
; "date : $Date: 15 May 1989 17:41:26 $"
; "revs : $Revision: 1.109 $"
; "vers : 1.0"
;"---------------------------------------------------------------------------"
; "Kraken Puzzle"
; "Copyright (C) 1989 Infocom, Inc. All rights reserved."
;"***************************************************************************"
;"---------------------------------------------------------------------------"
; "RM-SHALLOWS"
;"---------------------------------------------------------------------------"
<ROOM RM-SHALLOWS
(LOC ROOMS)
(DESC "shallows")
(FLAGS FL-LIGHTED FL-WATER)
(SYNONYM SHALLOWS)
(ADJECTIVE LAKE)
(NORTH PER RT-EXIT-SHALLOW-1)
(SOUTH PER RT-EXIT-SHALLOW-2)
(OUT PER RT-EXIT-SHALLOW-1)
(IN PER RT-EXIT-SHALLOW-2)
(GLOBAL LG-LAKE RM-ISLAND RM-CAUSEWAY RM-FIELD-OF-HONOUR)
(ACTION RT-RM-SHALLOWS)
>
<CONSTANT K-KRAKEN-HOLD-MSG
"You're not going anywhere with that kraken holding on to you.|">
<ROUTINE RT-RM-SHALLOWS ("OPT" (CONTEXT <>))
<COND
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
<COND
(<NOT <FSET? ,RM-MID-LAKE ,FL-WATER>>
<COND
(<MC-CONTEXT? ,M-LOOK>
<TELL "You are" standing " on">
)
(T
<TELL "You" walk " to">
)
>
<TELL " the edge of a dry lake bed.|">
)
(T
<COND
(<MC-CONTEXT? ,M-LOOK>
<TELL "You are" standing " in">
)
(T
<COND
(<EQUAL? ,OHERE ,RM-FIELD-OF-HONOUR>
<TELL "You wade into">
)
(T
<TELL "You swim to">
)
>
)
>
<TELL " the shallow water near the shore of the lake. ">
<COND
(<MC-FORM? ,K-FORM-EEL ,K-FORM-TURTLE>
<TELL
"Light filters down from the surface above, and the"
>
)
(T
<TELL "The">
)
>
<TELL " bottom drops away sharply to the south.|">
)
>
<RFALSE>
)
(<MC-CONTEXT? ,M-BEG>
<COND
(<AND <VERB? WALK>
<IN? ,CH-KRAKEN ,RM-SHALLOWS>
<FSET? ,CH-KRAKEN ,FL-LOCKED>
>
<TELL ,K-KRAKEN-HOLD-MSG>
)
>
)
(<MC-CONTEXT? ,M-ENTER>
<COND
(<MC-FORM? ,K-FORM-EEL>
<SETG GL-PICTURE-NUM ,K-PIC-UNDERWATER>
)
(T
<SETG GL-PICTURE-NUM ,K-PIC-SHALLOWS>
)
>
<COND
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
<RT-UPDATE-PICT-WINDOW>
)
>
<RFALSE>
)
; (<MC-CONTEXT? ,M-EXIT>
<COND
(<AND <NOT <FSET? ,RM-MID-LAKE ,FL-WATER>>
<EQUAL? ,P-WALK-DIR ,P?SOUTH>
>
<TELL
"The cheering mob parts on either side of you to allow you to walk to the
water's edge. Slowly, you venture out between the two walls of water that are
being held back by some magical, unseen force. After a few moments, you
reach the center of the lake. Here, the sunken boat rests on dry ground and
a shaft of light illuminates the sword in the stone.||The crowd follows you.|"
>
<RFALSE>
)
>
)
(.CONTEXT
<RFALSE>
)
(<OR <VERB? THROW THROW-OVER>
<AND
<VERB? PUT PUT-IN>
<VERB-WORD? ,W?THROW ,W?TOSS ,W?HURL ,W?CHUCK ,W?FLING ,W?PITCH ,W?HEAVE>
>
>
<COND
(<MC-HERE? ,RM-SHALLOWS>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>
)
(<MC-HERE? ,RM-FIELD-OF-HONOUR>
<COND
(<IDROP>
<RT-THROW-INTO-ROOM-MSG ,PRSO ,RM-SHALLOWS>
)
(T
<RTRUE>
)
>
)
(T
<NOT-HERE ,PRSI> ; "not close enough"
)
>
)
>
>
<ROUTINE RT-EXIT-SHALLOW-1 ("OPT" (QUIET <>))
<COND
(<MC-FORM? ,K-FORM-EEL>
<COND
(<NOT .QUIET>
<TELL "You can't swim any further towards shore.|">
)
>
<RFALSE>
)
(T
<RETURN ,RM-FIELD-OF-HONOUR>
)
>
>
<ROUTINE RT-EXIT-SHALLOW-2 ("OPT" (QUIET <>))
<COND
(<OR <MC-FORM? ,K-FORM-EEL ,K-FORM-TURTLE>
<NOT <FSET? ,RM-MID-LAKE ,FL-WATER>>
>
<RETURN ,RM-MID-LAKE>
)
(T
<COND
(<NOT .QUIET>
<TELL ,K-WOULD-DROWN-MSG>
)
>
<RFALSE>
)
>
>
<ROUTINE RT-THROW-INTO-ROOM-MSG (OBJ RM)
<MOVE .OBJ .RM>
<TELL The+verb ,WINNER "toss" the .OBJ " into" the .RM "." CR>
>
;"---------------------------------------------------------------------------"
; "RM-MID-LAKE"
;"---------------------------------------------------------------------------"
<ROOM RM-MID-LAKE
(LOC ROOMS)
(DESC "lake")
(FLAGS FL-LIGHTED FL-WATER)
(SYNONYM BED)
(ADJECTIVE DRY LAKE)
(EAST TO RM-LAKE-WINDOW)
(NORTH TO RM-SHALLOWS)
(SE TO RM-INLET)
(SW TO RM-BOAT-ROOM)
(GLOBAL LG-LAKE RM-SHALLOWS TH-BOAT)
(ACTION RT-RM-MID-LAKE)
(THINGS
<> (ROCK ROCKS) RT-PS-ROCKS
)
>
<ROUTINE RT-RM-MID-LAKE ("OPT" (CONTEXT <>))
<COND
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
<COND
(<NOT <FSET? ,RM-MID-LAKE ,FL-WATER>>
<COND
(<MC-CONTEXT? ,M-LOOK>
<TELL
"You are" standing " in the middle of a dry lake bed. The water swirls and
eddies just a few feet away, but it is held back by some magical force.
Before you lies the sunken rowboat that bears the sword in the stone.
The mob crowds in behind you, eagerly awaiting your next action." CR
>
)
(T
<THIS-IS-IT ,TH-EXCALIBUR>
<THIS-IS-IT ,CH-LOT>
<THIS-IS-IT ,CH-COURTIERS>
<TELL
"The cheering mob parts on either side of you to allow you to walk to the
water's edge. Slowly, you venture out between the two walls of water that are
being held back by some magical, unseen force. After a few moments, you
reach the center of the lake. Here, the sunken boat rests on dry ground and
a shaft of light illuminates the sword in the stone." CR CR
"Lot and the crowd follow you." CR
>
)
>
)
(T
<COND
(<MC-CONTEXT? ,M-LOOK>
<TELL "You are" walking " in">
)
(T
<TELL "You" walk " to">
)
>
<TELL
" the middle of the lake. To the east, steep rocks that form the island rise
out of the water. To the southwest "
>
<COND
(<IN? ,CH-KRAKEN ,RM-BOAT-ROOM>
<TELL "the water is murky with some kind of inky fluid">
)
(T
<TELL
"you see the dim outline of a sunken rowboat resting on the lake's bottom"
>
)
>
<TELL
". You feel a current flowing into the lake from the southeast.|"
>
)
>
<RFALSE>
)
(<MC-CONTEXT? ,M-ENTER>
<COND
(<FSET? ,RM-MID-LAKE ,FL-WATER>
<SETG GL-PICTURE-NUM ,K-PIC-UNDERWATER>
)
(T
<SETG GL-PICTURE-NUM ,K-PIC-BOAT-DRY>
<MOVE ,CH-LOT ,RM-MID-LAKE>
<MOVE ,CH-COURTIERS ,RM-MID-LAKE> ; "Mob"
)
>
<COND
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
<RT-UPDATE-PICT-WINDOW>
)
>
<RFALSE>
)
(<MC-CONTEXT? ,M-EXIT>
<COND
(<NOT <FSET? ,RM-MID-LAKE ,FL-WATER>>
<TELL "The ">
<COND
(<EQUAL? ,P-WALK-DIR ,P?NORTH>
<TELL "mob">
)
(T
<TELL "water">
)
>
<TELL " blocks your path." CR>
)
>
)
(<MC-CONTEXT? ,M-END>
<COND
(<AND <VERB? TRANSFORM>
<NOT <FSET? ,RM-MID-LAKE ,FL-WATER>>
<NOT <MC-FORM? ,GL-OLD-FORM>>
>
<TELL
"|The mob recoils in horror for a moment, and then they close in and kill
you.|"
>
<RT-END-OF-GAME>
)
>
)
(.CONTEXT
<RFALSE>
)
>
>
;"---------------------------------------------------------------------------"
; "RM-BOAT-ROOM"
;"---------------------------------------------------------------------------"
<ROOM RM-BOAT-ROOM
(LOC ROOMS)
(DESC "lake")
(FLAGS FL-LIGHTED FL-WATER)
(NE TO RM-MID-LAKE)
(GLOBAL LG-LAKE)
(ACTION RT-RM-BOAT-ROOM)
>
<ROUTINE RT-RM-BOAT-ROOM ("OPT" (CONTEXT <>))
<COND
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
<COND
(<MC-CONTEXT? ,M-LOOK>
<COND
(<IN? ,CH-KRAKEN ,RM-BOAT-ROOM>
<FSET ,CH-KRAKEN ,FL-SEEN>
<THIS-IS-IT ,CH-KRAKEN>
<THIS-IS-IT ,TH-BRACELET>
<TELL
"You are swimming in murky waters, just to the southwest of the middle of
the lake. A giant kraken is floating nearby. His tentacles are long, thick,
and slimy, and one of them is adorned with a golden bracelet."
>
)
(T
<TELL
"You are swimming in the waters just to the southwest of the middle of the
lake. There is rowboat here that has a large hole in its side, as if it
had been deliberately sunk."
>
)
>
)
(T
<COND
(<IN? ,CH-KRAKEN ,RM-BOAT-ROOM>
<COND
(<NOT <FSET? ,CH-KRAKEN ,FL-SEEN>>
<FSET ,CH-KRAKEN ,FL-SEEN>
<THIS-IS-IT ,CH-KRAKEN>
<TELL
"Cautiously, you swim into the murky waters. Suddenly a giant kraken emerges
from the depths and floats menacingly in front of you."
>
)
(T
<THIS-IS-IT ,CH-KRAKEN>
<TELL
"You slowly make your way back into the inky fluid, until you are once again
face to face with the giant kraken."
>
)
>
)
(T
<TELL
"You swim towards the rowboat. As you get closer, you can see that it has a
large hole in its side."
>
)
>
)
>
<COND
(<IN? ,CH-KRAKEN ,RM-BOAT-ROOM>
<TELL
" Below the kraken you can see the dim outline of a sunken rowboat resting on the
lake-bed."
>
)
>
<TELL " The middle of the lake lies behind you to the northeast.|">
<RFALSE>
)
(<MC-CONTEXT? ,M-ENTER>
<COND
(<IN? ,CH-KRAKEN ,RM-BOAT-ROOM>
<SETG GL-PICTURE-NUM ,K-PIC-KRAKEN>
)
(T
<SETG GL-PICTURE-NUM ,K-PIC-BOAT>
)
>
<COND
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
<RT-UPDATE-PICT-WINDOW>
)
>
<RFALSE>
)
(.CONTEXT
<RFALSE>
)
>
>
;"---------------------------------------------------------------------------"
; "CH-KRAKEN"
;"---------------------------------------------------------------------------"
<OBJECT CH-KRAKEN
(LOC RM-BOAT-ROOM)
(DESC "giant kraken")
(FLAGS FL-ALIVE FL-OPEN FL-SEARCH FL-NO-DESC)
(SYNONYM KRAKEN OCTOPUS SQUID TENTACLE TENTACLES)
(ADJECTIVE GIANT)
(ACTION RT-CH-KRAKEN)
(CONTFCN RT-CH-KRAKEN)
>
; "CH-KRAKEN flags:"
; " FL-BROKEN - Player has shocked kraken"
; " FL-LOCKED - Kraken has grabbed player"
<ROUTINE RT-CH-KRAKEN ("OPT" (CONTEXT <>))
<COND
(<AND <MC-CONTEXT? ,M-WINNER <>>
<VERB? HELLO GOODBYE THANK>
>
<COND
(<VERB? HELLO>
<TELL "\"Forsooth, I shall greet thee not, for I liketh not thy face.\"" CR>
)
(<VERB? GOODBYE>
<TELL "\"Adieu. If I seeth thee not ever anon, 'twill be over soonly.\"" CR>
)
(<VERB? THANK>
<TELL "\"Thou may keepest thy thanks. A use for them have I not.\"" CR>
<COND
(<NOT <FSET? ,CH-PLAYER ,FL-AIR>>
<FSET ,CH-PLAYER ,FL-AIR>
<RT-SCORE-MSG 10 0 0 0>
)
>
<RTRUE>
)
>
)
(<MC-CONTEXT? ,M-WINNER>
<COND
(<AND <VERB? TELL-ABOUT>
<MC-PRSO? ,CH-PLAYER>
>
<RFALSE>
)
(<VERB? WHO WHAT>
<RFALSE>
)
(T
<TELL "\"Knave! That will I not do.\"" CR>
)
>
)
(.CONTEXT
<RFALSE>
)
(,NOW-PRSI
<RFALSE>
)
(<AND <VERB? TELL>
,P-CONT
>
; "Message and RFATAL if don't want kraken to become winner"
<RFALSE>
)
(<VERB? TALK-TO>
<TELL "\"If thou wouldst have speak with me, spitteth it out!\"" CR>
)
(<VERB? ASK-ABOUT>
<COND
(<EQUAL? ,PRSI ,CH-KRAKEN>
<TELL "\"I floateth like a butterfly and stingeth like a bee.\"" CR>
)
(<EQUAL? ,PRSI ,TH-BRACELET>
<TELL "\"'Tis a precious ringlet, one from which I fain would not part.\"" CR>
)
(<MC-PRSI? ,CH-PLAYER>
<TELL "\"I liketh not thy face.\"" CR>
)
(<MC-PRSI? ,TH-MASTER>
<TELL "\"I have no master.\"" CR>
)
(<MC-PRSI? ,TH-EXCALIBUR ,TH-SWORD>
<TELL
"\"Knave! Talking of swords to krakens is like unto speaking of rocking
chairs to long-tailed cats.\"" CR
>
)
(T
<TELL "\"I knoweth not. Catchest thou my drift?\"" CR>
)
>
)
(<VERB? ASK-FOR>
<COND
(<EQUAL? ,PRSI ,TH-BRACELET>
<TELL "\"Gadzooks! Wouldst thou take from me my most prized possession?\"" CR>
)
>
)
(<VERB? ATTACK CUT>
<COND
(<MC-PRSI? ,TH-SWORD>
<RT-KILL-KRAKEN>
)
(<OR <VERB-WORD? ,W?BITE>
<MC-PRSI? ,TH-MOUTH>
>
<TELL
"The kraken moves his tentacle out of the way and says, \"If thou thinkest
to bite me, thinkst again.\"" CR
>
)
(T
<TELL
The+verb ,WINNER "hit" the ,CH-KRAKEN " with" the ,PRSI ", but it doesn't
do any good." CR
>
)
>
)
(<VERB? SHOCK>
<COND
(<NOT <FSET? ,PRSO ,FL-BROKEN>>
<FSET ,CH-KRAKEN ,FL-BROKEN>
<RT-QUEUE ,RT-I-KRAKEN-FOLLOW <+ ,GL-MOVES 1>>
<TELL
"You zap the kraken. He recoils for an instant and then recovers. His
tentacles start to reach out for you and he says, \"Thou hast made a grievous
error, varlet. Now I must needs squeezeth thee until thou art dead.\"" CR
>
)
(T
<TELL
"You zap the kraken, but this time he was ready for you and he scarcely
notices. His tentacles slowly close around you and squeeze the life from
your body.|"
>
<RT-END-OF-GAME>
)
>
)
(<VERB? EXAMINE>
<FSET ,CH-KRAKEN ,FL-SEEN>
<COND
(<NOUN-USED? ,CH-KRAKEN ,W?TENTACLE ,W?TENTACLES>
<TELL "The kraken's tentacles are thick and slimy." CR>
)
(T
<TELL
"The kraken looks like a giant octopus. His tentacles are long and slimy. One
of the tentacles is adorned by a golden bracelet." CR
>
)
>
)
(<TOUCH-VERB?>
<COND
(<FSET? ,CH-KRAKEN ,FL-LOCKED>
<TELL
The ,CH-KRAKEN " scarcely notices. His tentacles slowly close tighter and
squeeze the life from your body.|"
>
<RT-END-OF-GAME>
)
(<FSET? ,CH-KRAKEN ,FL-BROKEN>
<TELL The ,CH-KRAKEN " scarcely notices." CR>
)
(T
<TELL "\"Villain! Toucheth thee not me, lest I take ire and kill thee.\"" CR>
)
>
)
>
>
<ROUTINE RT-KILL-KRAKEN ()
<COND
(<MC-HERE? ,RM-FORD>
<MOVE ,TH-BRACELET ,RM-RIVER-1>
)
(T
<MOVE ,TH-BRACELET ,RM-MID-LAKE>
)
>
<REMOVE ,CH-KRAKEN>
<FCLEAR ,CH-KRAKEN ,FL-LOCKED>
<FCLEAR ,TH-BRACELET ,FL-TRY-TAKE>
<FCLEAR ,TH-BRACELET ,FL-NO-DESC>
<FSET ,TH-BRACELET ,FL-TAKEABLE>
<RT-DEQUEUE ,RT-I-KRAKEN-FIGHT-1>
<RT-DEQUEUE ,RT-I-KRAKEN-FIGHT-2>
<TELL
"You hack at" the ,CH-KRAKEN " with" the ,TH-SWORD ". The tentacle bearing"
the ,TH-BRACELET " flies up into the air and lands with a plop in the deep
water. The wounded kraken immediately releases its grip on you and disappears
into the murky waters." CR
>
<RT-SCORE-MSG 0 5 7 4>
>
<GLOBAL GL-OLD-KRAKEN-LOC:OBJECT <>>
<ROUTINE RT-I-KRAKEN-FOLLOW ()
<COND
(<IN? ,CH-KRAKEN ,HERE>
<TELL CR The ,CH-KRAKEN " ">
<COND
(<AND <MC-HERE? ,RM-SHALLOWS ,RM-FORD>
<VERB? TRANSFORM>
<NOT <MC-FORM? ,GL-OLD-FORM>>
>
<RT-QUEUE ,RT-I-KRAKEN-FIGHT-1 <+ ,GL-MOVES 1>>
<TELL
"recoils for a moment, and then reaches out a slimy tentacle towards you. "
The ,TH-BRACELET " glistens in the sunlight." CR
>
)
(T
<TELL
"catches up to you and wraps his blood-sucking tentacles around you. Then
slowly, inexorably, he squeezes the life out of you.|"
>
<RT-END-OF-GAME>
)
>
)
(<NOT <FSET? ,HERE ,FL-WATER>>
; <RT-KRAKEN-LEAVE>
<MOVE ,CH-KRAKEN ,RM-BOAT-ROOM>
<FCLEAR ,CH-KRAKEN ,FL-BROKEN>
<RFALSE>
)
(T
<RT-QUEUE ,RT-I-KRAKEN-FOLLOW <+ ,GL-MOVES 1>>
<SETG GL-OLD-KRAKEN-LOC <LOC ,CH-KRAKEN>>
<MOVE ,CH-KRAKEN ,HERE>
<TELL CR The ,CH-KRAKEN " follows you." CR>
)
>
>
;<ROUTINE RT-KRAKEN-LEAVE ()
<MOVE ,CH-KRAKEN ,RM-BOAT-ROOM>
<FCLEAR ,CH-KRAKEN ,FL-BROKEN>
<TELL "disappears back into the murky depths." CR>
>
<ROUTINE RT-I-KRAKEN-FIGHT-1 ()
<COND
(<NOT <FSET? ,HERE ,FL-WATER>>
; <TELL CR The ,CH-KRAKEN " ">
; <RT-KRAKEN-LEAVE>
<RFALSE>
)
(T
<RT-QUEUE ,RT-I-KRAKEN-FIGHT-2 <+ ,GL-MOVES 1>>
<FSET ,CH-KRAKEN ,FL-LOCKED>
<TELL
"|A slimy tentacle wraps around you, and the kraken begins to squeeze." CR
>
)
>
>
<ROUTINE RT-I-KRAKEN-FIGHT-2 ()
<TELL CR The ,CH-KRAKEN " squeezes the life out of you.|">
<RT-END-OF-GAME>
>
;"---------------------------------------------------------------------------"
; "TH-BRACELET"
;"---------------------------------------------------------------------------"
<OBJECT TH-BRACELET
(LOC CH-KRAKEN)
(DESC "golden bracelet")
(FLAGS FL-TRY-TAKE FL-CLOTHING FL-NO-DESC)
(SYNONYM BRACELET BAND JEWEL JEWELS)
(ADJECTIVE GOLDEN GOLD FINE)
(SCORE <LSH 2 ,K-QUEST-SHIFT>)
(SIZE 1)
(ACTION RT-TH-BRACELET)
>
<ROUTINE RT-TH-BRACELET ("OPT" (CONTEXT <>))
<COND
(.CONTEXT
<RFALSE>
)
(<AND <VERB? SHOCK>
<IN? ,TH-BRACELET ,CH-KRAKEN>
>
<COND
(<NOT <FSET? ,PRSO ,FL-BROKEN>>
<FSET ,CH-KRAKEN ,FL-BROKEN>
<RT-QUEUE ,RT-I-KRAKEN-FOLLOW <+ ,GL-MOVES 1>>
<TELL
"You zap the kraken. He recoils for an instant and then recovers. His
tentacles start to reach out for you and he says, \"Thou hast made a grievous
error, varlet. Now I must needs squeezeth thee until thou art dead.\"" CR
>
)
(T
<TELL
"You zap the kraken, but this time he was ready for you and he scarcely
notices. His tentacles slowly close around you and squeeze the life from
your body.|"
>
<RT-END-OF-GAME>
)
>
)
(<AND <OR <TOUCH-VERB?> <VERB? ENTER>>
<IN? ,PRSO ,CH-KRAKEN>
<NOT <MC-FORM? ,K-FORM-ARTHUR>>
>
<TELL
"As you approach the bracelet, the kraken moves his tentacle out of your way
and says, \"Villain! Toucheth thee not me, lest I take ire and kill thee.\"" CR
>
)
(<VERB? EXAMINE>
<FSET ,TH-BRACELET ,FL-SEEN>
<TELL
"It is a beautiful gold bracelet, inlaid with many fine jewels." CR
>
)
(<AND <OR
<VERB? ENTER>
<AND
<VERB? PUT-THRU>
<MC-PRSO? ,TH-HEAD>
>
>
<FSET? ,HERE ,FL-WATER>
<MC-FORM? ,K-FORM-TURTLE ,K-FORM-EEL>
>
<COND
(<MC-FORM? ,K-FORM-TURTLE>
<COND
(<FSET? ,TH-HEAD ,FL-LOCKED>
<TELL
"You bump up against" the ,TH-BRACELET ", but nothing happens." CR
>
)
(T
<TELL
"Your head passes through" the ,TH-BRACELET " and it nestles around your
neck, up against your shell." CR
>
<COND
(<NOT <FSET? ,TH-BRACELET ,FL-TOUCHED>>
<FSET ,TH-BRACELET ,FL-TOUCHED>
<RT-SCORE-MSG 0 3 0 1>
)
>
<RT-DO-TAKE ,TH-BRACELET T>
<FSET ,TH-BRACELET ,FL-WORN>
<RTRUE>
)
>
)
(T
<TELL
"You swim through" the ,TH-BRACELET ". It catches for a moment, but your body
is too slim and you pass right through it." CR
>
)
>
)
(<VERB? CUT>
<COND
(<IN? ,TH-BRACELET ,CH-KRAKEN>
<COND
(<AND <MC-PRSI? ,TH-SWORD>
<IN? ,TH-SWORD ,CH-PLAYER>
>
<RT-KILL-KRAKEN>
)
>
)
>
)
(<AND <VERB? TAKE>
<IN? ,TH-BRACELET ,RM-FIELD-OF-HONOUR>
<RT-IS-QUEUED? ,RT-I-LOT-WIN>
>
<TELL
"As you stoop to get" the ,TH-BRACELET ", Lot snatches it up and then runs
you through with his sword.|"
>
<RT-END-OF-GAME>
)
>
>
;"---------------------------------------------------------------------------"
; "TH-BOAT"
;"---------------------------------------------------------------------------"
<OBJECT TH-BOAT
(LOC RM-BOAT-ROOM)
(FLAGS FL-CONTAINER FL-HAS-SDESC FL-NO-DESC FL-OPEN FL-SEARCH)
(SYNONYM BOAT ROWBOAT HOLE)
(ADJECTIVE ROW)
(CAPACITY 150)
(ACTION RT-TH-BOAT)
>
<ROUTINE RT-TH-BOAT ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
<COND
(<MC-CONTEXT? ,M-OBJDESC>
<COND
(.ART
<PRINT-ARTICLE ,TH-BOAT .ART .CAP?>
)
>
<COND
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
<COND
(.ART
<TELL " ">
)
>
<COND
(<NOUN-USED? ,TH-BOAT ,W?HOLE>
<TELL "hole">
)
(T
<TELL "boat">
)
>
)
>
)
(<VERB? EXAMINE LOOK-IN>
<COND
(<NOUN-USED? ,TH-BOAT ,W?HOLE>
<TELL "It's a jagged hole that looks man-made." CR>
)
(<NOT <IN? ,TH-BOAT ,HERE>>
<TELL "All you can see from here is a vague outline." CR>
)
(T
<TELL
"It's an old rowboat that looks as if it was deliberately sunk. It contains a
huge stone that has a magnificent sword embedded in it." CR
>
)
>
)
(<VERB? ENTER>
<COND
(<FSET? ,HERE ,FL-WATER>
<TELL
"You swim through the hole in the side of the boat, but nothing happens." CR
>
)
(T
<TELL
"You can reach the sword from where you're standing." CR
>
)
>
)
>
>
;"---------------------------------------------------------------------------"
; "RM-INLET"
;"---------------------------------------------------------------------------"
<ROOM RM-INLET
(LOC ROOMS)
(DESC "lake")
(FLAGS FL-LIGHTED FL-WATER)
(NE TO RM-RIVER-3)
(NW TO RM-MID-LAKE)
(GLOBAL LG-LAKE RM-RIVER-3)
(ACTION RT-RM-INLET)
>
<ROUTINE RT-RM-INLET ("OPT" (CONTEXT <>))
<COND
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
<TELL
"You are swimming in the lake, near where a river enters it from the
northeast. The middle of the lake lies to the northwest.|"
>
<RFALSE>
)
(<MC-CONTEXT? ,M-ENTER>
<SETG GL-PICTURE-NUM ,K-PIC-UNDERWATER>
<COND
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
<RT-UPDATE-PICT-WINDOW>
)
>
<RFALSE>
)
(.CONTEXT
<RFALSE>
)
>
>
;"---------------------------------------------------------------------------"
; "LG-LAKE"
;"---------------------------------------------------------------------------"
<OBJECT LG-LAKE
(LOC LOCAL-GLOBALS)
(DESC "lake")
(SYNONYM LAKE WATER)
(ACTION RT-LG-LAKE)
>
<ROUTINE RT-LG-LAKE ("OPT" (CONTEXT <>))
<COND
(.CONTEXT
<RFALSE>
)
(,NOW-PRSI
<COND
(<OR <VERB? THROW THROW-OVER>
<AND
<VERB? PUT PUT-IN>
<VERB-WORD? ,W?THROW ,W?TOSS ,W?HURL ,W?CHUCK ,W?FLING ,W?PITCH ,W?HEAVE>
>
>
<COND
(<MC-HERE? ,RM-SHALLOWS>
<COND
(<NOUN-USED? ,LG-LAKE ,W?LAKE>
<COND
(<NOT <IDROP>>
<RTRUE>
)
(<MC-PRSO? ,TH-APPLE>
<TELL
"You heave the apple into the middle of the lake, where it lands with a
splash. It bobs around for a while, and then after a few moments it floats
gently back to the shallows." CR
>
)
(T
<REMOVE ,PRSO>
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-INVT>>
<TELL
The+verb ,WINNER "heave" the ,PRSO " into the depths of the lake where it
sinks out of sight, probably forever." CR
>
)
>
)
(T
<PERFORM ,V?DROP ,PRSO>
<RTRUE>
)
>
)
(<MC-HERE? ,RM-FIELD-OF-HONOUR>
<COND
(<NOT <IDROP>>
<RTRUE>
)