forked from historicalsource/wishbringer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheast.zil
872 lines (792 loc) · 22.3 KB
/
east.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
"EAST for WISHBRINGER: (C)1985 Infocom, Inc. All rights reserved."
"*** PLEASURE WHARF ***"
<ROUTINE ENTER-PLEASURE-WHARF ()
<COND (<AND ,SKEWED?
<NOT ,BOX-SEEN?>>
<SETG BOX-SEEN? T>
<ENABLE <QUEUE I-WAKE-BOX -1>>)>
<RETURN ,PLEASURE-WHARF>>
<OBJECT PLEASURE-WHARF
(IN ROOMS)
(DESC "Pleasure Wharf")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY ARCADE SIGN SAND)
(NORTH PER ENTER-POOL?)
(EAST PER ENTER-WHARF)
(SOUTH TO VIDEO-ARCADE)
(WEST TO ROTARY-EAST)
(IN TO VIDEO-ARCADE)
(ACTION PLEASURE-WHARF-F)
(PSEUDO "WHARF" HERE-F)>
<ROUTINE PLEASURE-WHARF-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<STANDING>
<TELL "near the ">
<COND (,SKEWED?
<TELL "remains of">)
(T
<TELL D ,ENTRANCE " to">)>
<TELL " the " D ,PLEASURE-WHARF>
<COND (<NOT ,SKEWED?>
<TELL ", the town's most popular tourist attraction">)>
<TELL ". The Wharf extends eastward into">
<WHICH-TOWN "Bay">
<COND (<NOT ,SKEWED?>
<TELL
", and a tidal beach curves north along the shore">)>
<TELL ".|
|
To the south stands a ramshackle old building. Colorful lights, curious electronic sounds and a neon sign beckon you through the open " D ,ENTRANCE "." CR>)>>
<ROUTINE ENTER-POOL? ()
<COND (<NOT ,SKEWED?>
<RETURN ,TIDAL-POOL>)
(T
<TELL ,CANT " go that way now. The tide is in." CR>
<RFALSE>)>>
"*** WHARF ***"
<OBJECT WHARF
(IN ROOMS)
(DESC "Wharf's End")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY)
(NORTH PER FALL-OFF-WHARF)
(EAST PER FALL-OFF-WHARF)
(SOUTH PER FALL-OFF-WHARF)
(WEST PER ENTER-PLEASURE-WHARF)
(ACTION WHARF-F)
(PSEUDO "PLANKS" HERE-F "WHARF" HERE-F)>
<ROUTINE WHARF-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "The sea-worn planks of the">
<WHICH-TOWN>
<TELL " " D ,PLEASURE-WHARF
" end abruptly a few feet " <TO-E> ". You're surrounded by the ">
<COND (,SKEWED?
<TELL "dark, shark-infested">)
(T
<TELL "blue, sparkling">)>
<TELL " waters of">
<WHICH-TOWN "Bay">
<TELL "." CR>)>>
<ROUTINE ENTER-WHARF ()
<COND (<AND <NOT ,SKEWED?>
<NOT <FSET? ,HORSE ,TOUCHBIT>>>
<ENABLE <QUEUE I-HORSE-DEATH -1>>)>
<RETURN ,WHARF>>
<ROUTINE FALL-OFF-WHARF ()
<COND (,SKEWED?
<SAY-THE ,SHARKS>
<TELL " would gobble you up">
<IF-YOU-TRIED>)
(T
<PROBABLY-DROWN>)>
<RFALSE>>
<OBJECT SHARKS
(DESC "sharks")
(SYNONYM SHARK SHARKS FIN FINS)
(ADJECTIVE BLACK)
(FLAGS NDESCBIT)
(ACTION SHARKS-F)>
<ROUTINE SHARKS-F ()
<COND (<VERB? EXAMINE LOOK-ON>
<TELL ,YOU-SEE
"their black fins circling in the water nearby." CR>
<RTRUE>)
(T
<YOU-DONT-NEED ,SHARKS>
<RFATAL>)>>
<OBJECT BAY
(IN LOCAL-GLOBALS)
(DESC "bay")
(SYNONYM BAY SEA OCEAN WATER)
(ADJECTIVE FESTERON)
(FLAGS NDESCBIT TRYTAKEBIT CONTBIT OPENBIT)
(ACTION BAY-F)>
<ROUTINE BAY-F ()
<COND (<VERB? EXAMINE>
<TELL "The waters of the bay ">
<COND (,SKEWED?
<TELL "swell ominously in the moon">)
(T
<TELL "twinkle merrily in the sun">)>
<TELL "light." CR>
<RTRUE>)
(<HANDLE-WATER?>
<RTRUE>)
(T
<RFALSE>)>>
"*** VIDEO ARCADE ***"
<OBJECT VIDEO-ARCADE
(IN ROOMS)
(DESC "Video Arcade")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL ARCADE SIGN CORNER)
(NORTH PER EXIT-ARCADE)
(OUT PER EXIT-ARCADE)
(ACTION VIDEO-ARCADE-F)>
<ROUTINE EXIT-ARCADE ()
<COND (<FSET? ,MACHINE ,TOOLBIT>
<ENABLE <QUEUE I-SMOKE -1>>
<FCLEAR ,MACHINE ,TOOLBIT>
<TELL "One of the " D ,HUMANOIDS " eagerly takes over your "
D ,MACHINE " as you walk away." CR CR>)>
<RETURN ,PLEASURE-WHARF>>
<ROUTINE VIDEO-ARCADE-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This old building is the home of a sleazy " D ,ARCADE
", lined with coin-op video games. The machines are ">
<COND (,SKEWED?
<THIS-IS-IT ,HUMANOIDS>
<TELL
"crowded with half-crazed, " D ,HUMANOIDS ", who pay no attention to you as they satisfy their thirst for electric violence.|
|
One machine in the " D ,CORNER " appears to be deserted">)
(T
<THIS-IS-IT ,MACHINE>
<TELL "all deserted and quiet">
<COND (<NOT <FSET? ,MACHINE ,RMUNGBIT>>
<TELL ", except for one in the " D ,CORNER
" that emits a feeble \"wokka-wokka\" sound">)>)>
<TELL "." CR CR>
<ARCADE-SIGN>)>>
<ROUTINE ARCADE-SIGN ()
<TELL
"A sign on the wall says, \"All Games One Token.\"" CR>>
<OBJECT ARCADE
(IN LOCAL-GLOBALS)
(DESC "arcade")
(SYNONYM ARCADE BUILDING ENTRANCE ENTRY)
(ADJECTIVE VIDEO OLD RAMSHACKLE)
(ACTION ARCADE-F)>
<ROUTINE ARCADE-F ()
<COND (<ENTER-FROM? ,PLEASURE-WHARF ,VIDEO-ARCADE ,ARCADE>
<RTRUE>)
(<VERB? LOOK-ON EXAMINE LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,PLEASURE-WHARF>
<GO-INSIDE>)
(T
<V-LOOK>)>
<RTRUE>)
(<VERB? OPEN>
<ALREADY-OPEN>
<RTRUE>)
(<VERB? CLOSE>
<TELL ,CANT " close the " D ,ARCADE
" (though many have tried)." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT HUMANOIDS
(DESC "stunted humanoids")
(SYNONYM HUMANOIDS)
(ADJECTIVE STUNTED)
(FLAGS NDESCBIT NARTICLEBIT ACTORBIT)
(ACTION HUMANOIDS-F)>
<ROUTINE HUMANOIDS-F ("OPTIONAL" (CONTEXT <>))
<COND (<VERB? EXAMINE>
<TELL
"They have extraordinarily supple wrists, fast reflexes and tiny brains." CR>
<RTRUE>)
(<OR <TALKING-TO? ,HUMANOIDS>
<VERB? GIVE FEED YELL>>
<SAY-THE ,HUMANOIDS>
<TELL " pay no attention." CR>
<RFATAL>)
(<HURT? ,HUMANOIDS>
<TELL "Why bother? The " D ,HUMANOIDS
" will soon be extinct anyway." CR>
<RTRUE>)
(T
<YOU-DONT-NEED ,HUMANOIDS>
<RFATAL>)>>
<OBJECT MACHINE
(IN VIDEO-ARCADE)
(DESC "game machine")
(SYNONYM MACHINE UNIT GAME LOGO)
(ADJECTIVE GAME ARCADE VIDEO SIDES BROKEN)
(FLAGS NDESCBIT CONTBIT OPENBIT READBIT)
(CAPACITY 1)
(ACTION MACHINE-F)>
; "TOOLBIT = MACHINE ON, RMUNGBIT = MACHINE BROKEN"
<ROUTINE MACHINE-F ()
<COND (<VERB? EXAMINE READ LOOK-ON>
<SAY-THE ,MACHINE>
<TELL " is equipped with a video screen, a joystick, a big red button and a narrow slot for tokens. A lurid logo (\"">
<COND (,SKEWED?
<TELL "TRANSMATTER">)
(T
<TELL "LEATHER GODDESSES OF PHOBOS">)>
<TELL "!\") is painted on the side." CR>
<RTRUE>)
(<VERB? LISTEN KICK>
<COND (<FSET? ,MACHINE ,RMUNGBIT>
<NOTHING-EXCITING>
<RTRUE>)
(,SKEWED?
<SAY-THE ,MACHINE>
<TELL " emits a familiar electronic dirge.">)
(T
<TELL "\"Wokka.\"">)>
<CRLF>
<RTRUE>)
(<PUT-THING-IN-SLOT?>
<RTRUE>)
(<VERB? OPEN CLOSE LOOK-INSIDE>
<TELL "Only an authorized service representative of the ">
<FROBOZZ "Arcade Game">
<TELL " could do that." CR>
<RTRUE>)
(<BREAK-MACHINE?>
<RTRUE>)
(<VERB? PLAY>
<HOW?>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT VIDEO-SCREEN
(IN VIDEO-ARCADE)
(DESC "video screen")
(SYNONYM SCREEN GRID MAP MESSAGE)
(ADJECTIVE VIDEO FLASHING DIAMOND)
(FLAGS NDESCBIT READBIT)
(ACTION VIDEO-SCREEN-F)>
<ROUTINE VIDEO-SCREEN-F ()
<COND (<VERB? EXAMINE READ>
<SAY-THE ,VIDEO-SCREEN>
<COND (<OR <NOT ,SKEWED?>
<FSET? ,MACHINE ,RMUNGBIT>>
<TELL " is dark.">)
(T
<TELL " displays a map of">
<WHICH-TOWN "Village">
<TELL ". A grid divides the map into 13 squares">
<COND (<FSET? ,MACHINE ,TOOLBIT>
<TELL
", and a " D ,STAR " is centered over one of the squares">)
(T
<TELL ". The words \"Insert Token To Play\" are scrolling across the top of the screen">)>
<TELL "." CR CR>
<FIND-IN-PACKAGE "map">
<RTRUE>)>
<CRLF>
<RTRUE>)
(<BREAK-MACHINE?>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE BREAK-MACHINE? ()
<COND (<NOT <FSET? ,MACHINE ,RMUNGBIT>>
<COND (<AND <VERB? PUSH MOVE SHAKE>
<FSET? ,MACHINE ,TOOLBIT>>
<TELL "An electric alarm shrieks, \"Tilt!\"" CR>
<GAME-OVER>
<RTRUE>)
(<AND <VERB? THROW>
<EQUAL? ,PRSI ,MACHINE>>
<MOVE ,PRSO ,HERE>
<MUNG-MACHINE>
<RTRUE>)
(<HURT? ,MACHINE>
<MUNG-MACHINE>
<RTRUE>)
(T
<RFALSE>)>)
(T
<RFALSE>)>>
<ROUTINE MUNG-MACHINE ()
<FCLEAR ,MACHINE ,TOOLBIT>
<FSET ,MACHINE ,RMUNGBIT>
<TELL "A shower of sparks erupts from the back of the " D ,MACHINE
", and the " D ,VIDEO-SCREEN " goes black." CR>>
<OBJECT STAR
(IN VIDEO-ARCADE)
(DESC "blinking star")
(SYNONYM STAR CURSOR)
(ADJECTIVE BLINKING)
(FLAGS NDESCBIT READBIT)
(ACTION STAR-F)>
<ROUTINE STAR-F ()
<COND (<NOT <FSET? ,MACHINE ,TOOLBIT>>
<CANT-SEE-ANY>
<RFATAL>)
(<VERB? EXAMINE READ>
<SAY-THE ,STAR>
<TELL " is now centered over square "
<GET ,H-NAMES ,HORZ> "-" N ,VERT " on the map." CR>
<RTRUE>)
(<VERB? MOVE PULL PUSH>
<HOW?>
<RTRUE>)
(<VERB? PUSH-TO>
<TELL "(with the " D ,JOYSTICK ")" CR>
<PERFORM ,V?PUSH-TO ,JOYSTICK ,PRSI>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL H-NAMES <PLTABLE "A" "B" "C" "D" "E">>
<OBJECT SLOT
(IN VIDEO-ARCADE)
(DESC "slot")
(SYNONYM SLOT)
(ADJECTIVE NARROW)
(FLAGS NDESCBIT CONTBIT OPENBIT READBIT)
(CAPACITY 1)
(ACTION SLOT-F)>
<ROUTINE SLOT-F ()
<COND (<VERB? EXAMINE READ LOOK-ON>
<TELL "The narrow slot is marked \"Tokens Only!\"" CR>
<RTRUE>)
(<OR <PUT-THING-IN-SLOT?>
<BREAK-MACHINE?>>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<VERB? LOOK-INSIDE LOOK-BEHIND>
<TOO-DARK>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE PUT-THING-IN-SLOT? ()
<COND (<OR <VERB? REACH-IN>
<AND <VERB? PUT>
<NOT <EQUAL? ,PRSO ,TOKEN>>>>
<SAY-THE ,SLOT>
<TELL " is too narrow." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT JOYSTICK
(IN VIDEO-ARCADE)
(DESC "joystick")
(SYNONYM JOYSTICK STICK)
(ADJECTIVE JOY CONTROL)
(FLAGS NDESCBIT ; TRYTAKEBIT)
(ACTION JOYSTICK-F)>
<GLOBAL VERT 3>
<GLOBAL HORZ 5>
<ROUTINE JOYSTICK-F ()
<COND (<AND <VERB? PUSH-TO>
<EQUAL? ,PRSI ,INTDIR>>
<COND (<NOT <FSET? ,MACHINE ,TOOLBIT>>
<NOTHING-EXCITING>)
(<EQUAL? ,P-DIRECTION ,P?NORTH ,P?UP>
<COND (<OR <EQUAL? ,HORZ 1 5>
<EQUAL? ,VERT 1>
<AND <EQUAL? ,HORZ 2 4>
<EQUAL? ,VERT 2>>>
<JOYBUZZ>)
(T
<SETG VERT <- ,VERT 1>>
<MOVE-STAR "upward">)>)
(<EQUAL? ,P-DIRECTION ,P?SOUTH ,P?DOWN>
<COND (<OR <EQUAL? ,HORZ 1 5>
<EQUAL? ,VERT 5>
<AND <EQUAL? ,HORZ 2 4>
<EQUAL? ,VERT 4>>>
<JOYBUZZ>)
(T
<SETG VERT <+ ,VERT 1>>
<MOVE-STAR "downward">)>)
(<EQUAL? ,P-DIRECTION ,P?EAST>
<COND (<OR <EQUAL? ,VERT 1 5>
<EQUAL? ,HORZ 5>
<AND <EQUAL? ,VERT 2 4>
<EQUAL? ,HORZ 4>>>
<JOYBUZZ>)
(T
<SETG HORZ <+ ,HORZ 1>>
<MOVE-STAR "to the right">)>)
(<EQUAL? ,P-DIRECTION ,P?WEST>
<COND (<OR <EQUAL? ,VERT 1 5>
<EQUAL? ,HORZ 1>
<AND <EQUAL? ,VERT 2 4>
<EQUAL? ,HORZ 2>>>
<JOYBUZZ>)
(T
<SETG HORZ <- ,HORZ 1>>
<MOVE-STAR "to the left">)>)
(T
<RFALSE>)>
<RTRUE>)
(<VERB? EXAMINE>
<SAY-THE ,JOYSTICK>
<TELL
" can be moved north, south, east or west." CR>
<RTRUE>)
(<VERB? PUSH MOVE PULL USE PLAY>
<TELL "(To use the " D ,JOYSTICK ", you must indicate a compass direction as well as an action. For example, try MOVE THE JOYSTICK TO THE WEST or PUSH STICK NORTH.)" CR>
<RFATAL>)
(<BREAK-MACHINE?>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE JOYBUZZ ()
<TELL "Buzz! A synthetic voice growls, \"Keep the " D ,STAR
" inside the grid!\"" CR>>
<ROUTINE MOVE-STAR (STR)
<TELL "Bing! You moved the " D ,STAR " one square " .STR "." CR>>
<OBJECT BUTTON
(IN VIDEO-ARCADE)
(DESC "big red button")
(SYNONYM BUTTON SWITCH)
(ADJECTIVE BIG RED LARGE CRIMSON)
(FLAGS NDESCBIT)
(ACTION BUTTON-F)>
<ROUTINE BUTTON-F ()
<COND (<VERB? PUSH>
<COND (<NOT <EQUAL? ,HERE ,VIDEO-ARCADE>>
<CANT-SEE-ANY ,BUTTON>
<RTRUE>)>
<SAY-SURE>
<TELL "push the " D ,BUTTON "?">
<COND (<YES?>
<CRLF>
<COND (,SKEWED?
<SAY-THE ,HUMANOIDS>
<TELL " in the " D ,ARCADE " "
<PICK-ONE ,POSSIBILITIES>
" as " D ,HANDS " touches the ">
<COND (<FSET? ,MACHINE ,TOOLBIT>
<TELL "flashing ">)>
<TELL "button. This might be a trap">)
(T
<TELL "You don't know what this "
D ,MACHINE " might do">)>
<TELL "! You don't really want to press that "
D ,BUTTON ", do you?">
<COND (<YES?>
<PRESS-BUTTON>
<RTRUE>)>)>
<THAT-WAS-CLOSE>
<RTRUE>)
(<AND <VERB? EXAMINE>
<FSET? ,MACHINE ,TOOLBIT>>
<TELL "It's flashing on and off rapidly." CR>
<RTRUE>)
(<BREAK-MACHINE?>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL POSSIBILITIES
<LTABLE 0
"snicker behind your back"
"watch you carefully"
"hold their breath">>
<ROUTINE PRESS-BUTTON ("AUX" WHERE)
<TELL CR "(">
<COND (<FSET? ,MACHINE ,TOOLBIT>
<SET WHERE <GET <GET ,DESTINATIONS ,HORZ> ,VERT>>
<ENABLE <QUEUE I-SMOKE -1>>
<TELL "Hope you saved your story position.)|
|
A sudden power drain makes all the other games in the " D ,ARCADE " go dim. Blue sheets of energy leap from the " D ,MACHINE ", surrounding you in an incandescent aura.">
<COND (<NOT <EQUAL? .WHERE ,VIDEO-ARCADE>>
<COND (<EQUAL? .WHERE ,INSIDE-GRAVE>
<MOVE-ALL ,OPEN-GRAVE ,INSIDE-GRAVE>)>
<MOVE ,PROTAGONIST .WHERE>
<SETG HERE .WHERE>
<TELL " You can feel your molecules being taken apart one at a time, analyzed, modulated and broadcast through space. It is not a pleasant sensation.">
<CARRIAGE-RETURNS>
<V-LOOK>)
(T ; "Handle the dummy corner"
<CRLF>
<CRLF>
<MUNG-MACHINE>)>
<GAME-OVER>
<COND (<EQUAL? .WHERE ,HILLTOP>
<CRLF>
<UPDATE-SCORE 5>)>)
(T
<TELL ,OKAY "just testing you.)" CR CR>
<NOTHING-EXCITING>)>>
<ROUTINE GAME-OVER ()
<FCLEAR ,MACHINE ,TOOLBIT>
<TELL CR
"A synthetic voice says, \"Game Over. Insert Token To Play Again.\"" CR>>
<OBJECT TOKEN
(DESC "brass token")
(SYNONYM TOKEN)
(ADJECTIVE BRASS)
(FLAGS NDESCBIT TAKEBIT READBIT)
(VALUE 3)
(SIZE 1)
(ACTION TOKEN-F)>
<ROUTINE TOKEN-F ()
<COND (<VERB? EXAMINE READ>
<TELL
"The words \"Good For One Play\" are etched into the " D ,TOKEN "." CR>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,MACHINE ,SLOT>>
<REMOVE ,TOKEN>
<SAY-THE ,TOKEN>
<TELL " disappears into the slot">
<COND (<FSET? ,MACHINE ,RMUNGBIT>
<TELL ", but the broken " D ,MACHINE
" doesn't respond." CR>)
(T
<FSET ,MACHINE ,TOOLBIT>
<TELL ".|
|
Ding! You hear a pleasant electric chime, and a " D ,STAR
" appears on the " D ,VIDEO-SCREEN "." CR CR>
<UPDATE-SCORE 1>
<GOOD-PLACE-TO-SAVE>)>
<RTRUE>)
(T
<RFALSE>)>>
"*** TIDAL POOL ***"
<OBJECT TIDAL-POOL
(IN ROOMS)
(DESC "Tidal Pool")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY SAND)
(NORTH TO FESTERON-POINT)
(EAST PER PROBABLY-DROWN)
(SOUTH TO PLEASURE-WHARF)
(WEST "There's nothing but sand that way.")
(DOWN "There's nothing but sand that way.")
(ACTION TIDAL-POOL-F)>
<ROUTINE TIDAL-POOL-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're on a damp stretch of sand that extends north towards Festeron Point, and south to the " D ,PLEASURE-WHARF "." CR>)>>
<OBJECT CONCH-SHELL
(IN TIDAL-POOL)
(DESC "conch shell")
(FDESC "A large conch shell is lying in the sand at your feet.")
(SYNONYM SHELL)
(ADJECTIVE CONCH ADVICE)
(FLAGS TAKEBIT CONTBIT OPENBIT RMUNGBIT)
(ACTION CONCH-SHELL-F)
(CAPACITY 1)
(SIZE 5)
(VALUE 0)>
<ROUTINE CONCH-SHELL-F ()
<COND (<VERB? LISTEN>
<COND (<DONT-HAVE? ,CONCH-SHELL>
<RTRUE>)>
<COND (<AND <NOT ,WOMAN-SEEN-ENVELOPE?>
<FSET? ,CONCH-SHELL ,RMUNGBIT>>
<FCLEAR ,CONCH-SHELL ,RMUNGBIT>
<TINY-VOICE>
<TELL " that sounds just like">
<BOSS>
<TELL ", " <PICK-ONE ,YELL-TYPES> ", \"">
<COND (<HELD? ,ENVELOPE>
<TELL "Don't just stand there! DELIVER">)
(T
<TELL "You " <PICK-ONE ,INSULTS>>)>
<TELL "!\"">)
(<AND <ENABLED? ,I-SHELL-TALK>
<L? ,SHELL-SCRIPT 5>>
<FCLEAR ,CONCH-SHELL ,RMUNGBIT>
<SETG SHELL-SCRIPT 1>
<TINY-VOICE>
<TELL " says, \"" <GET ,WISE-SAYINGS ,WISDOM> ".\"">)
(T
<TELL ,YOU-HEAR "the rush of ocean surf.">)>
<CRLF>
<RTRUE>)
(<VERB? BLOW-INTO>
<COND (<DONT-HAVE? ,CONCH-SHELL>
<RTRUE>)>
<SAY-THE ,CONCH-SHELL>
<TELL " makes an embarrassing sound." CR>
<RTRUE>)
(<VERB? SHAKE LOOK-INSIDE>
<COND (<DONT-HAVE? ,CONCH-SHELL>
<RTRUE>)>
<TELL "A few grains of sand fall out." CR>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,CONCH-SHELL>>
<COND (<G? <GETP ,PRSO ,P?SIZE> 1>
<TOO-LARGE ,PRSO>)
(T
<TELL "It immediately drops out">
<AND-DROPS-OUT ,PRSO>)>
<RTRUE>)
(<VERB? EXAMINE>
<SAY-THE ,CONCH-SHELL>
<TELL " is smooth and shiny. It">
<TV-SET>
<TELL "." CR>
<RTRUE>)
(<AND <VERB? TAKE>
<EQUAL? ,PRSO ,CONCH-SHELL>>
<COND (<AND <V-TAKE>
<IN? ,WISHBRINGER ,PROTAGONIST>
<FSET? ,ADVICE ,TOUCHBIT>>
<START-BUZZ>)>
<RTRUE>)
(<VERB? CLOSE OPEN>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<HURT? ,CONCH-SHELL>
<RUIN ,CONCH-SHELL>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE TV-SET ("OPTIONAL" (MY? <>))
<TELL "'ll look great on ">
<COND (.MY?
<TELL "my">)
(T
<TELL "your">)>
<TELL " TV set back home">>
<ROUTINE TINY-VOICE ()
<TELL "A tiny voice in the " D ,CONCH-SHELL>>
<GLOBAL WISDOM 1>
<GLOBAL WISE-SAYINGS
<PTABLE 0
; (0) ; "Get thee to yonder Tower, for therein lies thy Fate"
; (1) "If ye hath not kept a Map, only patience or Magick can help thee"
; (2) "Magick may help thee cross the Bridge"
; (3) "Release a prisoner, and be Rewarded"
; (4) "Learn the Word of Power, else never gain the Tower"
; (5) "One path Magick, one path Science; both lead to thy Goal"
; (6) "Many wonders await thee in the Halls of Knowledge"
; (7) "Fit the pieces together, and the Puzzle is complete">>
<ROUTINE START-BUZZ ("OPTIONAL" (SAYING <>))
<COND (.SAYING
<SETG WISDOM .SAYING>)>
<COND (<AND <FSET? ,ADVICE ,TOUCHBIT>
<IN? ,CONCH-SHELL ,PROTAGONIST>
<IN? ,WISHBRINGER ,PROTAGONIST>
<NOT <ENABLED? ,I-SHELL-TALK>>>
<SETG SHELL-SCRIPT 7>
<ENABLE <QUEUE I-SHELL-TALK -1>>)>>
<OBJECT SAND
(IN LOCAL-GLOBALS)
(DESC "sand")
(SYNONYM SAND BEACH BANK)
(FLAGS TRYTAKEBIT NDESCBIT)
(ACTION SAND-F)
(VALUE 0)>
<ROUTINE SAND-F ()
<COND (<VERB? SEARCH EXAMINE DIG LOOK-UNDER LOOK-INSIDE LOOK-ON>
<NOTHING-INTERESTING>
<RTRUE>)
(<VERB? TAKE>
<SAY-THE ,SAND>
<TELL " slips away between your fingers." CR>
<RTRUE>)
(<VERB? FOLLOW WALK-TO CROSS THROUGH ENTER EXIT>
<COND (<EQUAL? ,HERE ,PLEASURE-WHARF>
<DO-WALK ,P?NORTH>)
(<EQUAL? ,HERE ,FESTERON-POINT>
<DO-WALK ,P?SOUTH>)
(T
<V-WALK-AROUND>)>
<RTRUE>)
(<AND <VERB? PUT PUT-ON THROW>
<EQUAL? ,PRSI ,SAND>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<VERB? KICK>
<RFALSE>)
(T
<YOU-DONT-NEED ,SAND>
<RFATAL>)>>
"*** OUTSIDE LIGHTHOUSE ***"
<OBJECT FESTERON-POINT
(IN ROOMS)
(DESC "Lighthouse")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL BAY RIVER SAND)
(NORTH PER PROBABLY-DROWN-IN-RIVER)
(EAST PER PROBABLY-DROWN)
(SOUTH PER ENTER-POOL?)
(WEST TO ROCKY-PATH)
(ACTION FESTERON-POINT-F)>
<ROUTINE FESTERON-POINT-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This is where the river empties into">
<WHICH-TOWN "Bay">
<TELL ". A">
<COND (<NOT ,SKEWED?>
<TELL
" beach follows the shore of the bay " <TO-S> ", and a">)>
<TELL " path leads west along the riverbank.|
|
A ">
<COND (,SKEWED?
<TELL "broken-down old ">)
(T
<TELL "miniature ">)>
<TELL D ,LIGHTHOUSE
", barely ten feet high, stands ">
<COND (<NOT ,SKEWED?>
<TELL "blinking ">)>
<TELL "on the shore nearby." CR>
<COND (<IN? ,PELICAN ,FESTERON-POINT>
<CRLF>
<NOTE-PELICAN>)>)>>
<ROUTINE NOTE-PELICAN ()
<TELL "Perched on top of the " D ,LIGHTHOUSE
" is a " D ,PELICAN ", ">
<COND (<IN? ,HAT ,PELICAN>
<A-WIZARDS-HAT>)
(T
<TELL "watching you through half-closed eyelids.">)>
<CRLF>>
<ROUTINE A-WIZARDS-HAT ()
<TELL "a " D ,HAT " balanced on its head." CR>>
<OBJECT LIGHTHOUSE
(IN FESTERON-POINT)
(DESC "lighthouse")
(SYNONYM LIGHTHOUSE HOUSE BEACON)
(ADJECTIVE MINIATURE MINI AUTOMATIC AUTO BROKEN)
(FLAGS SURFACEBIT NDESCBIT)
(ACTION LIGHTHOUSE-F)
(CAPACITY 10)>
<ROUTINE LIGHTHOUSE-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL "It's really just an automated beacon, erected by the town to impress tourists. ">
<NO-ENTRIES>
<COND (<IN? ,PELICAN ,FESTERON-POINT>
<CRLF>
<NOTE-PELICAN>)>
<RTRUE>)
(<AND <VERB? LOOK-ON>
<IN? ,PELICAN ,FESTERON-POINT>>
<NOTE-PELICAN>
<RTRUE>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,LIGHTHOUSE>>
<COND (<NOT <IN? ,PELICAN ,FESTERON-POINT>>
<MOVE ,PRSO ,FESTERON-POINT>
<TELL "It slides off the " D ,LIGHTHOUSE
" and lands at your feet." CR>)
(<OR <EQUAL? ,PRSO ,DHORSE ,WORM ,HAT>
<EQUAL? ,PRSO ,WISHBRINGER ,CHOCOLATE ,MILK>>
<PERFORM ,V?GIVE ,PRSO ,PELICAN>)
(T
<MOVE ,PRSO ,FESTERON-POINT>
<SAY-THE ,PELICAN>
<TELL " pushes ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO " off the " D ,LIGHTHOUSE
" with its beak and glares at you." CR>)>
<RTRUE>)
(<AND <VERB? WALK-TO ENTER THROUGH PUT>
<EQUAL? ,PRSO ,LIGHTHOUSE>>
<NO-ENTRIES>
<RTRUE>)
(<VERB? SIT LIE-DOWN STAND-ON CLIMB-ON CLIMB-UP>
<COND (<IN? ,PELICAN ,FESTERON-POINT>
<THIS-IS-IT ,PELICAN>
<SAY-THE ,PELICAN>
<TELL " rudely nudges you off with its foot">)
(T
<TELL "There isn't enough room">)>
<TELL "." CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE NO-ENTRIES ()
<TELL "There aren't any " D ,ENTRANCE "s or openings." CR>>