-
Notifications
You must be signed in to change notification settings - Fork 124
/
unearth.zil
1566 lines (1435 loc) · 44.3 KB
/
unearth.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
"UNEARTH for
THE HITCHHIKER'S GUIDE TO THE GALAXY
(c) Copyright 1984 Infocom, Inc. All Rights Reserved."
;"Traal stuff"
<OBJECT LAIR-OBJECT
(IN LOCAL-GLOBALS)
(DESC "lair")
(SYNONYM LAIR COURTY YARD)
(ADJECTIVE COURT INNER OUTER)
(ACTION LAIR-OBJECT-F)>
<ROUTINE LAIR-OBJECT-F ()
<COND (<VERB? LEAVE EXIT DISEMBARK THROUGH BOARD WALK-TO>
<V-WALK-AROUND>)>>
<ROOM LAIR
(IN ROOMS)
(DESC "Lair")
(EAST TO OUTER-LAIR)
(SW PER INNER-LAIR-ENTER-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL LAIR-OBJECT)
(ACTION LAIR-F)>
<ROUTINE INNER-LAIR-ENTER-F ()
<COND (<FSET? ,BEAST ,MUNGEDBIT>
,INNER-LAIR)
(T
<TELL "The Beast blocks the exit." CR>
<RFALSE>)>>
<ROUTINE LAIR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "This is the lair of the " D ,BEAST
". There are exits east and southwest." CR>)
(<AND <EQUAL? .RARG ,M-END>
<NOT <FSET? ,LAIR ,NDESCBIT>>>
<SETG DREAMING T>
<FSET ,LAIR ,NDESCBIT>
<FCLEAR ,SARCASTIC-NAME ,INVISIBLE>
<FCLEAR ,BEAST-NAME ,INVISIBLE>
<ENABLE <QUEUE I-BEAST 2>>
<CRLF>
<TELL
"The Beast whips its evil-smelling tail away from your nose and bellows a
brain-shattering roar. By suddenly popping out of nowhere you have disturbed
its train of thought. However, ">
<COND (<FSET? ,LAIR ,REVISITBIT>
<TELL
"the Beast is beginning to get used to this sort of thing, shrugs it off,
and sinks ten or so of" ,CLAWS>
<JIGS-UP " into you.">
<RTRUE>)
(T
<TELL
"since its train of thought was the usual one, and in fact the only one it
knows, which goes like this \"hungry ... hungry ... hungry ... hungry ...
bad-tempered ... hungry ...\", it soon starts to chug along again." CR CR
,BEAST-DESC " It advances on you, and roars out a demand that you say your
name." CR>)>)>>
<GLOBAL NAME-TOLD <>>
<GLOBAL BEARINGS-LOST <>>
<GLOBAL BEAST-COUNTER 0>
<ROOM OUTER-LAIR
(IN ROOMS)
(DESC "Beast's Outer Lair")
(WEST TO LAIR)
(FLAGS RLANDBIT ONBIT OUTSIDEBIT)
(PSEUDO "BONE" UNIMPORTANT-THING-F "BONES" UNIMPORTANT-THING-F)
(GLOBAL LAIR-OBJECT)
(ACTION OUTER-LAIR-F)>
<ROUTINE OUTER-LAIR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a large walled courtyard. Strewn about are a profusion of gnawed bones
bleaching in the sun. In case the significance of these fails to strike you,
there is also a " D ,MEMORIAL " in the middle of the courtyard, on which the
Beast has roughly carved the names of all its victims.">
<COND (<IN? ,STONE ,HERE>
<TELL CR
"Some " D ,STONE "s lie near the exit to the west.">)>
<CRLF>)>>
<OBJECT MEMORIAL
(IN OUTER-LAIR)
(DESC "sandstone memorial")
(SYNONYM MEMORI LIST REMEMB MONUME)
(ADJECTIVE SANDST)
(FLAGS NDESCBIT READBIT)
(ACTION MEMORIAL-F)>
<ROUTINE MEMORIAL-F ()
<COND (<AND <VERB? CARVE>
<EQUAL? ,MEMORIAL ,PRSI>>
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<V-DIG>)
(<PRSO? ,NAME>
<TELL
"Whose name? The " D ,BEAST-NAME "? Your aunt's name? One of the Infinite
Unknowable names of Buddha? How about the name of Fred who runs (or rather
ran) your local chip shop? At least that's a short name -- you might have
time to write it before the Beast eats you." CR>)
(<PRSO? ,SARCASTIC-NAME>
<TELL
"Concentrate. Learn to distinguish between genuinely helpful suggestions
and mere sarcasm." CR>)
(<NOT <FSET? ,TOWEL ,WORNBIT>>
<ENABLE <QUEUE I-BEAST 2>>
<TELL
"Before you even chip the first letter, the Beast sees you and hurls you
spinning away with a bellow of rage." ,GETTING-CLOSE CR>)
(,BEARINGS-LOST
<TELL
"You cannot see and have lost your bearings. You stumble hopelessly and begin
to arouse the Beast's suspicions. It's stupid but not THAT stupid." CR>)
(<PRSO? ,YOUR-NAME ,ARTHUR ,ME>
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<TELL "You already did that!" CR>
<RTRUE>)>
<TELL
"You chip away with the stone. It's not your best writing, what with
your mounting sense of panic and a towel wrapped around your head.
However, it suffices..." CR CR ,JUST-AS>
<COND (,NAME-TOLD
<FSET ,BEAST ,MUNGEDBIT>
<ENABLE <QUEUE I-BEAST 9>>
<TELL
"suddenly sees your name freshly carved on its memorial of remembrance.
Mystery solved. It realises it must have already eaten you in a fit of
absent-mindedness. (Its mind is very very small and quite frequently absent.)
It decides to give up the rest of its afternoon to the twin arts of
digestion and contemplation. It settles down for a snooze." CR>)
(T
<TELL
"sees \"" D ,ARTHUR "\" freshly carved on the " D ,MEMORIAL ". This
doesn't ring any bells with the Beast. It roars with fury, and eyes
the thing it can't see because it's got a towel on its head (i.e. you)
with deepening suspicion." CR>)>)
(T
<TELL ,JUST-AS "suddenly sees ">
<COND (<PRSO? ,BEAST ,BEAST-NAME>
<TELL "its own name">)
(T
<TELL "\"" D ,PRSO "\"">)>
<TELL
" freshly carved on the " D, MEMORIAL ". This disconcerts it, as it has
no recollection of eating ">
<COND (<PRSO? ,BEAST ,BEAST-NAME>
<TELL "itself">)
(T
<TELL "anyone by that name">)>
<TELL "." ,SLOWLY-DAWNS CR>)>)
(<VERB? READ>
<TELL
"Gleb Snardfitz, Bibs Trench, Zeke Fitzberry, Elmo Smith, ">
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<TELL D ,ARTHUR ", ">)>
<TELL
"Brian \"Spike\" Berkowitz, Clybert Quackentotter..." CR>)
(<VERB? EXAMINE>
<TELL
"There are countless names carved on the " D ,MEMORIAL ":" CR>
<PERFORM ,V?READ ,MEMORIAL>
<RTRUE>)>>
<OBJECT STONE
(IN OUTER-LAIR)
(DESC "sharp stone")
(SYNONYM STONE STONES ROCK ROCKS)
(ADJECTIVE SHARP)
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT)
(SIZE 20)
(ACTION STONE-F)>
<ROUTINE STONE-F ()
<COND (<AND <VERB? TAKE>
<FSET? ,STONE ,TRYTAKEBIT>>
<FCLEAR ,STONE ,NDESCBIT>
<FCLEAR ,STONE ,TRYTAKEBIT>
<RFALSE>)
(<AND <VERB? DROP>
<EQUAL? ,HERE ,OUTER-LAIR>>
<FSET ,STONE ,NDESCBIT>
<FSET ,STONE ,TRYTAKEBIT>
<RFALSE>)
(<VERB? EXAMINE>
<TELL "It's hard as a rock." CR>)>>
<OBJECT BEAST
(IN LAIR)
(DESC "Ravenous Bugblatter Beast of Traal")
(DESCFCN BEAST-DESCFCN)
(SYNONYM BEAST TRAAL)
(ADJECTIVE RAVENO BUGBLA BEAST)
(FLAGS ACTORBIT)
(ACTION BEAST-F)>
<ROUTINE BEAST-DESCFCN ("OPTIONAL" X)
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<TELL
"The Beast is in the corner, sleeping peacefully (Footnote 5)." CR>)
(T
<TELL
"The " D ,BEAST " is here, looking particularly nasty and hungry." CR>)>>
<ROUTINE BEAST-F ()
<COND (<EQUAL? ,BEAST ,WINNER>
<COND (<FSET? ,TOWEL ,WORNBIT>
<V-SAY>)
(<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,BEAST ,PRSI>
<SETG WINNER ,BEAST>
<RTRUE>)
(<VERB? HELLO>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,BEAST>
<SETG WINNER ,BEAST>
<RTRUE>)
(<AND <VERB? WHAT>
<PRSO? ,OBJECT-OF-GAME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,BEAST ,OBJECT-OF-GAME>
<SETG WINNER ,BEAST>
<RTRUE>)
(<AND <NOT ,NAME-TOLD>
<VERB? MY-NAME>
<PRSO? ,NAME>>
<COND (<PRSI? ,ARTHUR>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?SAY-NAME ,YOUR-NAME>
<SETG WINNER ,BEAST>
<RTRUE>)
(T
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?SAY-NAME ,BEAST-NAME>
<SETG WINNER ,BEAST>
<RTRUE>)>)
(<AND <NOT ,NAME-TOLD>
<VERB? I-AM>>
<COND (<PRSO? ,ARTHUR>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?SAY-NAME ,YOUR-NAME>
<SETG WINNER ,BEAST>
<RTRUE>)
(T
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?SAY-NAME ,BEAST-NAME>
<SETG WINNER ,BEAST>
<RTRUE>)>)
(T
<TELL "The Beast just roars at you." CR>
<FUCKING-CLEAR>)>)
(<AND <VERB? TELL HELLO ASK-ABOUT ASK-FOR TELL-ABOUT>
<PRSO? ,BEAST>>
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<TELL "The Beast is sleeping!" CR>
<FUCKING-CLEAR>)
(<FSET? ,TOWEL ,WORNBIT>
<SAID-WITH-TOWEL>
<FUCKING-CLEAR>)>)
(<AND <VERB? TELL-TIME>
<PRSI? ,YOUR-NAME>>
<PERFORM ,V?SAY-NAME ,YOUR-NAME>
<RTRUE>)
(<AND <VERB? TELL-NAME>
<PRSO? ,YOUR-NAME>>
<PERFORM ,V?SAY-NAME ,YOUR-NAME>
<RTRUE>)
(<AND <VERB? SHOW GIVE>
<EQUAL? ,THING ,PRSO>>
<ENABLE <QUEUE I-BEAST 2>>
<TELL
"The Beast stops in its tracks, deeply impressed, and compliments you on the
quality of your aunts, and complains that all its aunts are complete horrors.
It then continues its dreadful attack." CR>)
(<AND <VERB? THROW>
<PRSI? ,BEAST>
<NOT <IDROP>>>
<MOVE ,PRSO ,HERE>
<PERFORM ,V?KILL ,BEAST>
<RTRUE>)
(<AND <VERB? KILL>
<PRSO? ,BEAST>>
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<PERFORM ,V?ALARM ,BEAST>
<RTRUE>)>
<ENABLE <QUEUE I-BEAST 2>>
<TELL "A footling effort. The shock waves of the Beast's
laughter push you back." CR>)
(<AND <VERB? ALARM>
<FSET? ,BEAST ,MUNGEDBIT>>
<TELL "The Beast casually brushes you away with one of" ,CLAWS>
<JIGS-UP ".">
<RTRUE>)
(<AND <VERB? ASK-ABOUT>
<PRSI? ,OBJECT-OF-GAME>>
<TELL
"\"Eat. Carve name on memorial. Sleep. Eat more. Roar a lot. Stuff like
that.\"" CR>)
(<VERB? EXAMINE>
<TELL ,BEAST-DESC CR>)>>
<ROUTINE I-BEAST ()
<ENABLE <QUEUE I-BEAST -1>>
<CRLF>
<COND (<FSET? ,BEAST ,MUNGEDBIT>
<MOVE ,CHIPPER ,PROTAGONIST>
<FCLEAR ,LAIR ,NDESCBIT>
<FSET ,LAIR ,REVISITBIT>
<JIGS-UP
"Suddenly a team of Fronurbdian Beasthunters charges in, intent on catching
the Beast for their zoo. Mistaking you for the Beast, they fire stun guns at
you, wrap you in nets, and install you in a lovely little lair in the
Fronurbdi National Zoo.|
|
Three months later the error is discovered, but while your damage suit is
pending in the Fronurbdian courts the planet is invaded by Bureaucratic Pirates
from Pallidon IV. Impressed into bondage for a 16-year filing and sorting
mission on the so-called \"basement world\" of Sporla in the Lesser Magellanic
Cloud, you escape with the help of a tribe of nomadic asteroid painters.|
|
You develop a unique talent for asteroid painting, gaining considerable fame
throughout the Cloud. A nickel-ore deluxe is commissioned by His Royal Gorpness
Orbjfelk, the ruler of the Nine Hundred Worlds of Gorp, but while working on
this new masterpiece your asteroid slips into a small passing black hole.">
<RTRUE>)
(<FSET? ,TOWEL ,WORNBIT>
<TELL
"The Beast still thinks it can't see you, but it's so irritated at having
an invisible object stumble around its lair that it swipes out angrily
with one of" ,CLAWS>
<JIGS-UP
" and life in the Universe has to carry on without you.">
<RTRUE>)
(<NOT <IN? ,BEAST ,HERE>>
<MOVE ,BEAST ,HERE>
<MOVE ,NAME ,HERE>
<SETG BEAST-COUNTER 0>
<TELL "Bellowing with rage, the Beast charges after you." CR>)
(T
<SETG BEAST-COUNTER <+ ,BEAST-COUNTER 1>>
<COND (<EQUAL? ,BEAST-COUNTER 1>
<TELL
"With a headsplitting roar, the " D ,BEAST " charges towards you." CR>)
(<AND <EQUAL? ,BEAST-COUNTER 2>
<NOT ,NAME-TOLD>>
<TELL
"The Beast, sharpening" ,CLAWS ", demands again that you say your name." CR>)
(<G? ,BEAST-COUNTER 4>
<BEAST-DEATH>)
(T
<TELL "The Beast is nearly upon you." CR>)>)>>
<ROUTINE BEAST-DEATH ()
<TELL
"With a vast savage roar, the Beast tears you limb from limb with" ,CLAWS>
<JIGS-UP " and ... well, do you really want to know the rest?
The point is that you have died.">
<RTRUE>>
<OBJECT NAME ;"for things like MY NAME IS..."
(IN BEDROOM)
(DESC "name")
(SYNONYM NAME)
(FLAGS NDESCBIT)>
<OBJECT SARCASTIC-NAME
(IN GLOBAL-OBJECTS)
(DESC "other name")
(SYNONYM NAME BUDDHA AUNT FRED)
(ADJECTIVE AUNT\'S FRED\'S BUDDHA)
(FLAGS VOWELBIT INVISIBLE)>
<OBJECT YOUR-NAME
(IN GLOBAL-OBJECTS)
(DESC "your name")
(SYNONYM NAME)
(ADJECTIVE YOUR MY ARTHUR)
(FLAGS NARTICLEBIT)
(ACTION YOUR-NAME-F)>
<ROUTINE YOUR-NAME-F ()
<COND (<VERB? WHAT>
<PERFORM ,V?WHO ,ME>
<RTRUE>)
(<AND <EQUAL? ,HERE ,OUTER-LAIR>
<FSET? ,BEAST ,MUNGEDBIT>>
<RFALSE>)
(<VERB? EXAMINE RUB MOVE>
<TELL "Huh?" CR>)>>
<OBJECT BEAST-NAME
(IN GLOBAL-OBJECTS)
(DESC "Beast's name")
(SYNONYM NAME)
(ADJECTIVE BEAST)
(FLAG NARTICLEBIT INVISIBLE)>
<ROOM INNER-LAIR
(IN ROOMS)
(DESC "Inner Lair")
(LDESC
"This is the heart of the Beast's lair. The only exit leads northeast.")
(NE TO LAIR)
(FLAGS ONBIT RLANDBIT)
(GLOBAL LAIR-OBJECT)>
<OBJECT SKELETON
(IN INNER-LAIR)
(DESC "skeleton")
(FDESC
"The skeleton of a dead Beasthunter lies nearby, clutching something labelled
\"Nutrimat/Computer Interface.\"")
(SYNONYM SKELETON BEASTH BONE BONES)
(FLAGS RLANDBIT TRYTAKEBIT)>
<OBJECT NUT-COM-INTERFACE
(IN INNER-LAIR)
(DESC "Nutrimat/Computer Interface")
(SYNONYM INTERF)
(ADJECTIVE NUTRIM COMPUT)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT)
(SIZE 4)
(ACTION NUT-COM-INTERFACE-F)>
<ROUTINE NUT-COM-INTERFACE-F ()
<COND (<AND <VERB? TAKE>
<FSET? ,NUT-COM-INTERFACE ,TRYTAKEBIT>>
<FCLEAR ,NUT-COM-INTERFACE ,TRYTAKEBIT>
<FCLEAR ,NUT-COM-INTERFACE ,NDESCBIT>
<FSET ,SKELETON ,TOUCHBIT>
<SETG SCORE <+ ,SCORE 25>>
<RFALSE>)
(<AND <VERB? TAKE>
<RUNNING? ,I-TEA>>
<TELL "You get a powerful electric shock." CR>)
(<VERB? EXAMINE>
<TELL
"The " D ,PRSO " is square, about ten inches on each side.">
<FINE-PRODUCT>
<CRLF>)>>
;"V'lhurgs and G'Gugvuntts stuff"
<ROUTINE I-CARELESS-WORDS ()
<CRLF>
<SETG FLEET-PROB 60>
<TELL
"It is of course well known that careless talk costs lives, but the full
scale of the problem is not always appreciated. For instance, at the exact
moment you said \"">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL "\" a freak wormhole opened in the fabric of the space-time
continuum and carried your words far far back in time across almost infinite
reaches of space to a distant galaxy where strange and warlike beings were
poised on the brink of frightful interstellar battle.|
|
The two opposing leaders were meeting for the last time. A dreadful silence
fell across the conference table as the commander of the Vl'Hurgs, resplendent
in his" ,BATTLE-SHORTS "gazed levelly at the " D ,GGUGVUNT " squatting opposite
him" ,CLOUD-OF-STEAM "As a million sleek and horribly beweaponed star cruisers
poised to unleash electric death at his single word of command, the Vl'Hurg
challenged his vile enemy to take back what it had said about his mother.|
|
The creature stirred in its sickly broiling vapour, and at that very moment
the words \"">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL "\" drifted across the conference table.
Unfortunately, in the Vl'Hurg tongue this was the most dreadful insult
imaginable, and there was nothing for it but to wage terrible war for
centuries. Eventually the error was detected, but over two hundred and
fifty thousand worlds, their peoples and cultures perished in the holocaust.|
|
You have destroyed most of a small galaxy. Please pick your words with
greater care." CR>>
<GLOBAL CARELESS-WORDS-FLAG <>>
<GLOBAL DOG-COUNTER 0>
<OBJECT MICROSCOPIC-FLEET
(IN WAR-CHAMBER)
(DESC "battle fleet")
(SYNONYM FLEET SHIP SHIPS SPACES)
(ADJECTIVE BATTLE HORRIB BEWEAP MICROS SPACE VAST)
(FLAGS NDESCBIT)
(ACTION MICROSCOPIC-FLEET-F)>
<ROUTINE MICROSCOPIC-FLEET-F ()
<COND (<VERB? THROUGH>
<TELL ,LOOK-AROUND CR>)>>
<OBJECT CANOPY
(IN WAR-CHAMBER)
(DESC "domed canopy")
(SYNONYM CANOPY DOME WINDOW)
(ADJECTIVE DOMED)
(FLAGS NDESCBIT TRANSBIT)
(ACTION CANOPY-F)>
<ROUTINE CANOPY-F ()
<COND (<VERB? LOOK-INSIDE>
<TELL "Through the " D ,CANOPY " of the ship you can see a
vast " D ,MICROSCOPIC-FLEET " flying in formation behind you through the
black, glittering emptiness of space. Ahead is a star system towards which
you are hurtling at a terrifying speed." CR>)>>
<ROOM WAR-CHAMBER
(IN ROOMS)
(SYNONYM WALKIN)
(DESC "War Chamber")
(FLAGS RLANDBIT ONBIT)
(GLOBAL CONVERSATION)
(ACTION WAR-CHAMBER-F)>
<ROUTINE WAR-CHAMBER-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<FCLEAR ,CONVERSATION ,INVISIBLE>
<MOVE ,THIRD-PLANET ,HERE>
<SETG DREAMING T>
<ENABLE <QUEUE I-DOG -1>>
<RFALSE>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"Spread before you, astonishingly enough, is the " D ,WAR-CHAMBER " of a star
battle cruiser. ">
<PERFORM ,V?LOOK-INSIDE ,CANOPY>
<RTRUE>)>>
<OBJECT VLHURG
(IN WAR-CHAMBER)
(DESC "Vl'Hurg leader")
(DESCFCN VLHURG-DESCFCN)
(SYNONYM VL\'HUR LEADER CREATU)
(ADJECTIVE VL\'HUR)
(FLAGS ACTORBIT)
(ACTION VLHURG-F)>
<ROUTINE VLHURG-DESCFCN ("OPTIONAL" X)
<TELL CR
"Standing near you are two creatures who are gazing at the star system with
terrible hatred in their eyes. One is wearing" ,BATTLE-SHORTS "and the other
is wreathed" ,CLOUD-OF-STEAM "They are engaged in " D ,CONVERSATION "." CR>>
<ROUTINE VLHURG-F ()
<COND (<VERB? TELL>
<TELL
"You are clearly the worst diplomat that ever lived, and are about to become
the worst one that ever died. That is an even worse insult in the G'Gugvunt
tongue than \"">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL "\" is in the Vl'Hurg tongue." CR>
<FUCKING-CLEAR>)
(<VERB? EXAMINE>
<TELL "The " D ,VLHURG " looks typically Vl'Hurgish." CR>)
(<VERB? LISTEN>
<COND (<FSET? ,VLHURG ,MUNGEDBIT>
<TELL
"The creatures are speculating about who you are and what to do with you." CR>)
(T
<FSET ,VLHURG ,MUNGEDBIT>
<TELL
" \"Hated planet!\" snarls the Vl'Hurg.|
\"Home of he that dared to say '">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL
"'\" rasps the G'Gugvunt.|
\"Detested words! Even now it sticks my soul to hear them uttered,\"
barks the Vl'Hurg, \"even though ten thousand years have passed...\"|
\"And as many senseless megadeaths! Worlds destroyed! My race and
yours laid to waste! All because of he that dared shape the words '">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL "'.\"|
\"Torture to my Vl'Hurgish warrior heart to hear it spoken! Yet, even
now, the hot breath of our vengeance blows hard upon this little world...\"|
\"Vengeance on him who said '">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL "'.\"|
\"Yes, there's no need to keep repeating it,\" growls the Vl'Hurg.|
\"One happy thought,\" adds the G'Gugvunt. \"After millenia of bloody
and perpetual conflict, our races have been brought together by this
Quest for the Source of the Offending Remark. Perhaps, after our vengeance
has been exacted on him who said '">
<RESTORE-INPUT ,FIRST-BUFFER>
<TELL "'...\"|
\"Will you stop saying it?\"|
\"...perhaps we will continue to live in peace and harmony and...\"|
\"We will talk about that AFTER we ... who's this?\"|
|
The two creatures turn and stare at you." CR>)>)>>
<OBJECT GGUGVUNT
(IN WAR-CHAMBER)
(DESC "G'Gugvunt leader")
(SYNONYM G\'GUGV LEADER CREATU)
(ADJECTIVE G\'GUGV)
(FLAGS ACTORBIT NDESCBIT)
(ACTION GGUGVUNT-F)>
<ROUTINE GGUGVUNT-F ()
<COND (<VERB? TELL>
<PERFORM ,V?TELL ,VLHURG>
<FUCKING-CLEAR>)
(<VERB? EXAMINE>
<TELL
"The " D ,GGUGVUNT " is looking typically G'Gugvuntish." CR>)
(<VERB? LISTEN>
<PERFORM ,V?LISTEN ,VLHURG>
<RTRUE>)>>
<OBJECT OTHER-PLANETS
(IN WAR-CHAMBER)
(DESC "other planets")
(SYNONYM PLANET)
(ADJECTIVE OTHER)
(FLAGS NDESCBIT VOWELBIT NARTICLEBIT)>
<OBJECT THIRD-PLANET
(IN LOCAL-GLOBALS)
(DESC "third planet")
(SYNONYM PLANET EARTH)
(ADJECTIVE THIRD BLUE BLUE- GREEN SMALL)
(FLAGS NDESCBIT)
(ACTION THIRD-PLANET-F)>
<ROUTINE THIRD-PLANET-F ()
<COND (<NOT ,EARTH-DEMOLISHED>
<COND (<PRSO? ,THIRD-PLANET>
<PERFORM ,PRSA ,GROUND ,PRSI>
<RTRUE>)
(T
<PERFORM ,PRSA ,PRSO ,GROUND>)>)
(<VERB? LEAVE DISEMBARK>
<TELL "You did!" CR>)
(<VERB? EXAMINE>
<TELL
"It is an utterly insignificant little blue-green planet, of the sort
where they probably still wear " D ,DIGITAL-WATCH "es." CR>)>>
<ROOM MAZE
(IN ROOMS)
(SYNONYM INFOCO ADAMS MERETZ)
(ADJECTIVE DOUGLA STEVE STEVEN)
(DESC "Maze")
(LDESC
"This is part of a spongy gray maze of twisty little synapses, all alike.")
(NORTH PER MAZE-EXIT-F)
(NE PER MAZE-EXIT-F)
(EAST PER MAZE-EXIT-F)
(SE PER MAZE-EXIT-F)
(SOUTH PER MAZE-EXIT-F)
(SW PER MAZE-EXIT-F)
(WEST PER MAZE-EXIT-F)
(NW PER MAZE-EXIT-F)
(UP PER MAZE-EXIT-F)
(DOWN PER MAZE-EXIT-F)
(IN PER MAZE-EXIT-F)
(OUT PER MAZE-EXIT-F)
(FLAGS RLANDBIT ONBIT)
(PSEUDO "MAZE" GLOBAL-ROOM-F)>
<GLOBAL MAZE-COUNTER 0>
<GLOBAL BRAIN-DAMAGED <>>
<ROUTINE MAZE-EXIT-F ()
<COND (<PROB 40>
<TELL
"An electrical impulse across a synapse gap temporarily blocks your way." CR>)
(T
<SETG MAZE-COUNTER <+ ,MAZE-COUNTER 1>>
<COND (<EQUAL? ,MAZE-COUNTER 3 17 36>
<MOVE ,PARTICLE ,HERE>)
(T
<MOVE ,PARTICLE ,LOCAL-GLOBALS>)>
<V-LOOK>)>
<RFALSE>>
<OBJECT BRAIN
(IN MAZE)
(DESC "brain")
(SYNONYM BRAIN)
(ADJECTIVE MY YOUR)
(FLAGS NDESCBIT)
(ACTION GLOBAL-ROOM-F)>
<OBJECT SYNAPSE
(IN MAZE)
(DESC "synapse")
(SYNONYM SYNAPS GAP)
(ADJECTIVE SYNAPS)
(FLAGS NDESCBIT)>
<OBJECT PARTICLE
(IN LOCAL-GLOBALS) ;"just for the purpose of MOBY-FIND"
(DESC "particle")
(LDESC
"Blocking the gap between two synapses is a large black particle. There seem
to be some faint markings on it.")
(SYNONYM PARTIC SENSE LETTER MARKIN)
(ADJECTIVE LARGE BLACK COMMON FAINT)
(FLAGS TAKEBIT TRYTAKEBIT READBIT)
(ACTION PARTICLE-F)>
<ROUTINE PARTICLE-F ()
<COND (<VERB? TAKE MOVE>
<MOVE ,PARTICLE ,LOCAL-GLOBALS>
<FSET ,PARTICLE ,MUNGEDBIT>
<SETG SCORE <+ ,SCORE 25>>
<FSET ,WAR-CHAMBER ,REVISITBIT>
<TELL "As you remove the " D ,PARTICLE>
<JIGS-UP
", electrical impulses begin leaping madly across the now-unblocked synaptic
gap. Unfortunately, YOU were in the gap at the time.">
<RTRUE>)
(<VERB? EXAMINE READ>
<TELL
"As you look closer you see, inscribed in tiny letters on the "
D ,PARTICLE ":|
|
Sense, Common for:|
Dent, Arthur|
(for replacement,|
order part #31-541)" CR>)>>
;"the Party stuff"
<OBJECT APARTMENT
(IN LOCAL-GLOBALS)
(DESC "apartment")
(SYNONYM APARTM)
(FLAGS VOWELBIT)
(ACTION APARTMENT-F)>
<ROUTINE APARTMENT-F ()
<COND (<VERB? LEAVE EXIT>
<COND (<EQUAL? ,HERE ,LIVING-ROOM>
<DO-WALK ,P?SOUTH>)
(T
<V-WALK-AROUND>)>)
(<VERB? THROUGH>
<TELL ,LOOK-AROUND CR>)>>
<GLOBAL ITEM-DROPPED-AT-PARTY <>>
<GLOBAL FLUFF-REMOVED <>>
<GLOBAL PARTY-TABLE
<TABLE 0 0 0>>
<ROUTINE PARTY-DESC (ROOM)
<TELL "You are in a large " D .ROOM
". There is a party going on. Other rooms lie to the ">>
<ROOM LIVING-ROOM
(IN ROOMS)
(DESC "Living Room")
(SOUTH PER PARTY-EXIT-F)
(WEST TO DINING-ROOM)
(SW TO KITCHEN)
(FLAGS RLANDBIT ONBIT)
(GLOBAL APARTMENT)
(PSEUDO "PARTY" APARTMENT-F)
(ACTION LIVING-ROOM-F)>
<ROUTINE PARTY-EXIT-F ()
<COND (<FSET? ,APARTMENT-DOOR ,OPENBIT>
<TELL "What! Leave a fun party like this?" CR>
<SETG AWAITING-REPLY 3>
<ENABLE <QUEUE I-REPLY 2>>
<RFALSE>)
(T
<TELL "The door is closed." CR>
<SETG P-IT-OBJECT ,APARTMENT-DOOR>
<RFALSE>)>>
<ROUTINE LIVING-ROOM-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <EQUAL? ,IDENTITY-FLAG ,TRILLIAN>>>
<PUT ,PARTY-TABLE 0 <LOC ,HANDBAG>>
<PUT ,PARTY-TABLE 1 <LOC ,TWEEZERS>>
<COND (<FSET? ,HANDBAG ,OPENBIT>
<PUT ,PARTY-TABLE 2 T>)
(T
<PUT ,PARTY-TABLE 2 <>>)>
<SETG IDENTITY-FLAG ,TRILLIAN>
<MOVE ,TRILLIAN ,GLOBAL-OBJECTS>
<SETG DREAMING T>
<ROB ,PROTAGONIST ,MEMORIAL>
<ROB ,HANDBAG ,RAMP>
<FCLEAR ,HANDBAG ,OPENBIT>
<MOVE ,HANDBAG ,PROTAGONIST>
<MOVE ,TWEEZERS ,HANDBAG>
<MOVE ,WINE ,PROTAGONIST>
<MOVE ,APPETIZERS ,PROTAGONIST>
<MOVE ,ARTHUR ,HERE>
<MOVE ,PHIL ,HERE>
<MOVE ,CAGE ,HERE>
<TELL
"You're at a party being given by a distant and incredibly boring acquaintance.
Among the people you've been introduced to are a shy, mousy fellow from the
West Country named Arthur, and a flamboyant guy named Phil. You've had too many
drinks already, and the room is beginning to buzz..." CR CR>)
(<AND <EQUAL? .RARG ,M-END>
<FSET? ,LIVING-ROOM ,REVISITBIT>>
<CRLF>
<JIGS-UP
"The hostess, a lethally dull woman, corners you and bores you to
death. Literally.">
<RTRUE>)
(<EQUAL? .RARG ,M-LOOK>
<PARTY-DESC ,LIVING-ROOM>
<TELL
"west and southwest, and the " D ,APARTMENT "'s front door is south of
here." CR>)>>
<OBJECT APARTMENT-DOOR
(IN LIVING-ROOM)
(DESC "door")
(SYNONYM DOOR)
(FLAGS DOORBIT OPENBIT NDESCBIT)
(ACTION APARTMENT-DOOR-F)>
<ROUTINE APARTMENT-DOOR-F ()
<COND (<VERB? THROUGH>
<DO-WALK ,P?SOUTH>)>>
<ROOM DINING-ROOM
(IN ROOMS)
(DESC "Dining Room")
(SOUTH TO KITCHEN)
(EAST TO LIVING-ROOM)
(FLAGS RLANDBIT ONBIT)
(GLOBAL APARTMENT)
(PSEUDO "PARTY" APARTMENT-F)
(ACTION DINING-ROOM-F)>
<ROUTINE DINING-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<PARTY-DESC ,DINING-ROOM>
<TELL "south and east." CR>)>>
<ROOM KITCHEN
(IN ROOMS)
(DESC "Kitchen")
(NORTH TO DINING-ROOM)
(NE TO LIVING-ROOM)
(FLAGS RLANDBIT ONBIT)
(GLOBAL APARTMENT)
(PSEUDO "PARTY" APARTMENT-F)
(ACTION KITCHEN-F)>
<ROUTINE KITCHEN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<PARTY-DESC ,KITCHEN>
<TELL "north and northeast." CR>)>>
<OBJECT WINE
(IN LOCAL-GLOBALS) ;"just for the purpose of MOBY-FIND"
(DESC "glass of white wine")
(SYNONYM GLASS WINE)
(ADJECTIVE WHITE)
(FLAGS TAKEBIT DRINKBIT)
(SIZE 15)
(ACTION WINE-F)>
<ROUTINE WINE-F ()
<COND (<VERB? DRINK ENJOY>
<TELL
"You take a sip, and the room spins a little faster." CR>)
(<VERB? THROW POUR>
<SHRIEK>)
(<VERB? DROP>
<DROP-AT-PARTY>)>>
<OBJECT APPETIZERS
(IN LOCAL-GLOBALS) ;"just for the purpose of MOBY-FIND"
(DESC "plate of hors d'oeuvres")
(SYNONYM PLATE D\'OEUV APPETI SNACKS)
(ADJECTIVE HORS)
(FLAGS TAKEBIT EATBIT)
(SIZE 15)
(ACTION APPETIZERS-F)>
<ROUTINE APPETIZERS-F ()
<COND (<VERB? EAT ENJOY>
<TELL
"You nibble at one of the hors d'oeuvres. It tastes ">
<COND (<PROB 40>
<TELL "okay." CR>)
(<PROB 50>
<TELL "delicious." CR>)
(T
<TELL "terrible." CR>)>)
(<VERB? THROW>
<SHRIEK>)
(<VERB? COUNT>
<TELL
"More than three, which is as high as you can count in your condition." CR>)
(<VERB? DROP>
<DROP-AT-PARTY>)>>
<ROUTINE DROP-AT-PARTY ()
<COND (<NOT ,ITEM-DROPPED-AT-PARTY>
<SETG ITEM-DROPPED-AT-PARTY ,PRSO>
<FSET ,HOSTESS ,NDESCBIT>
<ENABLE <QUEUE I-HOSTESS 3>>)>
<MOVE ,PRSO ,HERE>
<COND (<VERB? DROP>
<TELL "Dropped." CR>)
(T
<TELL "Thrown." CR>)>>
<ROUTINE SHRIEK ()
<TELL
"The hostess lets out a blood-chilling shriek. \"My new carpet!\" ">
<COND (<VERB? THROW>
<TELL
"Grabbing a shard from your broken " D ,PRSO ", s">)
(T
<TELL "S">)>
<JIGS-UP "he rushes toward you, vengeance burning in her eyes.">
<RTRUE>>
<OBJECT HOSTESS
(IN LIVING-ROOM)
(DESC "hostess")
(LDESC
"You notice the hostess approaching, but using several mingling couples
as cover you maneuver away.")
(SYNONYM HOSTESS)
(FLAGS ACTORBIT)
(ACTION HOSTESS-F)>
<ROUTINE HOSTESS-F ()
<COND (<EQUAL? ,HOSTESS ,WINNER>
<COND (<AND <VERB? YES>
<EQUAL? ,AWAITING-REPLY 4>>
<SETG WINNER ,PROTAGONIST>
<V-YES>
<SETG WINNER ,HOSTESS>)
(<AND <VERB? NO>
<EQUAL? ,AWAITING-REPLY 4>>
<SETG WINNER ,PROTAGONIST>
<V-NO>
<SETG WINNER ,HOSTESS>)
(T
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,HOSTESS>
<FUCKING-CLEAR>)>)
(<AND <VERB? HELLO ASK-ABOUT TELL-ABOUT>
<PRSO? ,HOSTESS>>
<TELL
"The hostess is delighted to engage in " D ,CONVERSATION>
<JIGS-UP
" and pulls you into a corner. Days later, you expire from thirst
and exhaustion.">
<RTRUE>)>>
<ROUTINE I-HOSTESS ()
<ENABLE <QUEUE I-HOSTESS -1>>
<COND (<NOT ,ITEM-DROPPED-AT-PARTY>
<FCLEAR ,HOSTESS ,TOUCHBIT>
<DISABLE <INT I-HOSTESS>>
<RFALSE>)>
<MOVE ,HOSTESS ,HERE>
<MOVE ,ITEM-DROPPED-AT-PARTY ,HERE>
<CRLF>
<COND (<FSET? ,HOSTESS ,TOUCHBIT>
<SETG AWAITING-REPLY 4>
<ENABLE <QUEUE I-REPLY 2>>
<TELL
"\"Tricia dear,\" says the hostess insistently, \"don't you want
your " D ,ITEM-DROPPED-AT-PARTY "?\"" CR>)
(T
<FSET ,HOSTESS ,TOUCHBIT>
<SETG P-IT-OBJECT ,ITEM-DROPPED-AT-PARTY>
<FSET ,ITEM-DROPPED-AT-PARTY ,NDESCBIT>
<TELL
"The hostess, whom you've been avoiding all evening, scurries up with your "
D ,ITEM-DROPPED-AT-PARTY ". \"Oh, hello Tricia, how lovely to see you, I think
you dropped this, dear.\"" CR>)>>
<OBJECT JACKET-FLUFF
(IN LOCAL-GLOBALS) ;"for purposes of MOBY-FIND"
(DESC "jacket fluff")
(SYNONYM FLUFF LINT)
(ADJECTIVE JACKET UNSIGH)
(FLAGS NARTICLEBIT TAKEBIT TRYTAKEBIT NDESCBIT)
(GENERIC POCKET-FLUFF)>