-
Notifications
You must be signed in to change notification settings - Fork 10
/
restaurant.zil
1456 lines (1348 loc) · 42 KB
/
restaurant.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
"RESTAURANT for
NORD AND BERT
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
;"ENTER FROM OUTSIDE WITH VEIW OF TEAPOT-LOOKING REST."
<OBJECT RESTAURANT ;"name of scene"
(LOC LOCAL-GLOBALS)
(DESC "restaurant")
(PICK-IT "Eat your Words")
(MAX-SCORE 31)
(SCENE-SCORE 0)
(SCENE-ROOM FLOOR-1)
(SCENE-CUR 0)
(SYNONYM RESTAURANT KITCHEN ;FLOOR TEMPEST TEAPOT POT)
;"create a t. in a teapot"
;(ADJECTIVE ;FIRST ;SECOND TEA)
(FLAGS NDESCBIT SCENEBIT)
(ACTION RESTAURANT-F)>
<ROUTINE RESTAURANT-F ()
<COND (<AND <VERB? NO-VERB WALK-TO ENTER>
<NOUN-USED ,RESTAURANT ,W?KITCHEN>
<GLOBAL-IN? ,RESTAURANT ,HERE>>
<COND (<EQUAL? ,HERE ,FLOOR-1>
<DO-WALK ,P?IN>)
(<EQUAL? ,HERE ,KITCHEN>
<TELL ,LOOK-AROUND>)
(T
<CANT-GET-THERE>)>)
(<AND <VERB? SET>
<EQUAL? <GET ,P-NAMW 0> ,W?TEMPEST>
<EQUAL? <GET ,P-NAMW 1> ,W?TEAPOT>>
<TELL "Indeed, that's the whole idea." CR>)
;(<VERB? EXAMINE>
<PERFORM ,V?LOOK>
<RTRUE>)
;(T
<CHANGE-OBJECT ,RESTAURANT ,GLOBAL-ROOM>
<RTRUE>)>>
<ROOM FLOOR-1
(LOC ROOMS)
(DESC "First floor")
(UP TO FLOOR-2)
(IN PER FLOOR-1-EXIT)
;(OUT PER FLOOR-1-EXIT)
(GLOBAL RESTAURANT STAIRS)
(FLAGS INDOORSBIT)
(ACTION FLOOR-1-F)>
<ROUTINE FLOOR-1-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are on the first floor of The Teapot Cafe, ">
<COND (<IN? ,PROTAGONIST ,REST-CHAIR>
<TELL "sitting at">)
(T
<TELL "standing next to">)>
<TELL
" " D ,REST-TABLE " under the shadowy umbrage of the second floor balcony, which can be reached by a stairway">
<COND (<NOT <FSET? ,COMEUPPANCE ,TOUCHBIT>>
<TELL " that is marked with a blue neon sign">)>
<TELL ".">
<COND (<IN? ,SHRIFT ,REST-TABLE>
<TELL CR CR
"Your table is only partially covered by a skimpy little tablecloth">
<COND (<G? <CCOUNT ,REST-TABLE> 1>
<TELL " upon which rests">
<D-CONTENTS ,REST-TABLE 2>
<RTRUE>)
(T
<TELL ".">)>)
(<FIRST? ,REST-TABLE>
<TELL CR CR "Your table contains">
<D-CONTENTS ,REST-TABLE 2>
<RTRUE>)>
<RTRUE>)
(<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,FLOOR-1 ,TOUCHBIT>>>
<TELL
"First, you arrive in front of a large, two-story Teapot with wisps of smoke
drifting out of its spout. As you walk inside you're nearly broadsided by a
waitress who's all in a rush, which seems odd since you see no one else in the
restaurant. Nevertheless, the waitress does not smile and say hello, does
not introduce herself as Jenny, does not even acknowledge your existence
with a tip of her headband.||">)
(<AND <EQUAL? .RARG ,M-END>
<NOT <IN? ,WAITRESS ,HERE>>>
<WAITRESS-COMES>)>>
<OBJECT REST-TABLE
(LOC FLOOR-1)
(DESC "your table")
(LDESC "Your table stands alone in the middle of the room.")
;"ldesc must stay for not printed of d-contents"
(SYNONYM TABLE TABLES)
(ADJECTIVE MY YOUR)
(FLAGS CONTBIT SURFACEBIT OPENBIT SEARCHBIT NARTICLEBIT
DESC-IN-ROOMBIT)
(CAPACITY 60)
(ACTION REST-TABLE-F)>
;"rmungbit tell it jiggles on its pedistal"
<ROUTINE REST-TABLE-F ()
<COND (<AND <VERB? TURN-OBJECT-ON>
<PRSI? ,WAITRESS>>
<OFFENCE>)
(<AND <VERB? EXAMINE>
<NOT <FSET? ,REST-TABLE ,PHRASEBIT>>>
<TELL "You notice a slight swivel to it. ">
<RFALSE>)
(<VERB? SET MOVE PUSH>
<SETG ORPHAN-FLAG ,REST-TABLE>
<QUEUE I-ORPHAN 2>
<TELL
"Whom do you want to turn the tables on?" CR>)>>
<OBJECT REST-CHAIR
(LOC FLOOR-1)
(DESC "your chair")
(SYNONYM CHAIR)
(ADJECTIVE MY YOUR)
(FLAGS NDESCBIT NARTICLEBIT VEHBIT CONTBIT SURFACEBIT OPENBIT
SEARCHBIT)
(ACTION REST-CHAIR-F)>
<ROUTINE REST-CHAIR-F ("OPT" (RARG <>))
<COND (.RARG
<RFALSE>)>>
<OBJECT SHRIFT
(LOC REST-TABLE)
(DESC "short shrift")
(SYNONYM TABLECLOTH SHRIFT CLOTH)
(ADJECTIVE SKIMPY SHORT)
(FLAGS TAKEBIT ;NDESCBIT)
(ACTION SHRIFT-F)>
<ROUTINE SHRIFT-F ()
<COND (<VERB? EXAMINE>
;<FSET ,SHRIFT ,SEENBIT>
<TELL
"From the looks of it, you've been given the " D ,SHRIFT ", this shrunken
little tablecloth that's hardly big enough to cover a table." CR>)
(<AND <VERB? TAKE>
<IN? ,SHRIFT ,REST-TABLE>
<G? <CCOUNT ,REST-TABLE> 1>
;<EQUAL? <ITAKE> T> ;"moves obj to protag"
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
<TELL
"With the flair for the dramatic that has so marked your progress through
this strange universe, you yank the " D ,SHRIFT " away without at
all disturbing">
<D-CONTENTS ,REST-TABLE ;2>
<TELL ,PERIOD>
<RTRUE>)
(<AND <VERB? PUT-ON>
<PRSI? ,REST-TABLE>
<FIRST? ,REST-TABLE>>
<MOVE ,SHRIFT ,REST-TABLE>
<TELL
"You clear the table, lay down the " D ,SHRIFT ", and reset the table."
CR>)>>
<OBJECT SALT-SHAKER
(LOC LOCAL-GLOBALS)
(DESC "salt shaker")
(SYNONYM SHAKER SALT)
(ADJECTIVE SALT)
(FLAGS TAKEBIT)
(GENERIC GEN-SALT)
(ACTION SALT-SHAKER-F)>
<ROUTINE SALT-SHAKER-F ()
<COND (<NOUN-USED ,SALT-SHAKER ,W?GRAIN>;"phrase was 'grain of salt'"
<CANT-SEE <> "grain of salt">
<RTRUE>)
(<VERB? SHAKE>
<COND (<IN? ,GRAIN-OF-SALT ,LOCAL-GLOBALS>
<MOVE ,GRAIN-OF-SALT ,HERE>
<TELL
"Just one grain of salt spills out of the shaker onto the floor." CR>)
(T
<TELL "Nothing comes out." CR>)>)
(<AND <VERB? PUT>
<PRSO? ,GRAIN-OF-SALT>>
<TELL
"It's like threading a needle, and you keep missing." CR>)
(<VERB? OPEN CLOSE>
<TELL
"It's not designed to be opened. You should've seen how hard it was to put
all the grains of salt into those little holes." CR>)>>
<OBJECT GRAIN-OF-SALT
(LOC LOCAL-GLOBALS) ;"must be, above"
(DESC "grain of salt")
(SYNONYM GRAIN SALT)
(ADJECTIVE SALT GRAIN)
(FLAGS TAKEBIT)
(GENERIC GEN-SALT)
;(ACTION GRAIN-OF-SALT-F)>
<ROUTINE GEN-SALT ()
,GRAIN-OF-SALT>
<OBJECT FORTUNE
;(LOC LOCAL-GLOBALS)
(DESC "fortune cookie")
(SYNONYM COOKIE FOOD)
(ADJECTIVE FORTUNE)
(FLAGS TAKEBIT FOODBIT)
(ACTION FORTUNE-F)>
<ROUTINE FORTUNE-F ()
<COND (<VERB? OPEN MUNG EAT>
<MOVE ,ADVICE ,PROTAGONIST>
<REMOVE ,FORTUNE>
<TELL "Crumbs from the cookie drift away upon a pungent
smelling wind from the kitchen. That's the way the cookie crumbles. However,
you are left with a piece of advice." CR>)>>
<OBJECT ADVICE
(DESC "advice")
(SYNONYM SLIP PAPER ADVICE FORTUNE PIECE)
(ADJECTIVE TINY)
(FLAGS TAKEBIT NARTICLEBIT)
(ACTION ADVICE-F)>
<ROUTINE ADVICE-F ()
<COND (<AND <VERB? TAKE-WITH>
<PRSI? ,GRAIN-OF-SALT>>
<COND (<IN? ,WAITRESS ,HERE>
<OFFENCE>)
(T
<TELL
"Too bad the waitress isn't around to see this insult." CR>)>)
(<VERB? READ>
<TELL
"The tiny slip of paper reads: \"Patience is the best remedy for every
trouble.\" You're not sure how to take it." CR>)>>
<OBJECT CROW
(SDESC "crow")
(SYNONYM CROW GRITTY NITTY-GRITTY BIRD FOOD)
(ADJECTIVE NITTY CHARRED DARK-FEATHERED)
(FLAGS TAKEBIT NARTICLEBIT FOODBIT)
(ACTION CROW-F)>
;"rmungbit = eaten once"
<ROUTINE CROW-F ()
<COND (<VERB? EAT>
<COND (<NOT <FSET? ,CROW ,RMUNGBIT>>
<FSET ,CROW ,RMUNGBIT>
<PUTP ,CROW ,P?SDESC "nitty-gritty crow">
<TELL
"You take a squeamish bite of it and chew slowly, finding the consistency
to be ">
<ITALICIZE "nitty-gritty">)
(T
<TELL
"You find" T ,CROW " to be inedible">)>
<TELL ,PERIOD>)
(<VERB? DISEMBARK> ;"Get down obj"
;<NOUN-USED ,CROW ,W?NITTY-GRITTY>
<OFFENCE>)>>
<OBJECT ROAST
(DESC "rump roast")
(SYNONYM ROAST ROAST CHEEKS CHEEK HALF FOOD)
(ADJECTIVE RUMP OTHER YOUR MY CHARRED)
(FLAGS ;NDESCBIT TAKEBIT FOODBIT)
(ACTION ROAST-F)>
<ROUTINE ROAST-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's primarily in two parts, one half charred, the other cheek merely
well-done." CR>)
(<AND <VERB? SET>
<ADJ-USED ,ROAST ,W?OTHER>
<NOUN-USED ,ROAST ,W?CHEEK>>
<COND (<NOT <FSET? ,ROAST ,PHRASEBIT>>
<FSET ,ROAST ,PHRASEBIT>
<UPDATE-SCORE>)>
<TELL
"You mull over the food in front of you, with many thoughts. As you
turn the other cheek, however noble your intention, ">
<COND (<IN? ,WAITRESS ,HERE>
<TELL "the waitress still ignores you">)
(T
<TELL "no good comes of it">)>
<TELL ,PERIOD>)
(<VERB? SET>
<TELL "The phrasing doesn't seem quite right." CR>)>>
<OBJECT HUMBLE-PIE
(DESC "humble pie")
(SYNONYM PIE FOOD)
(ADJECTIVE HUMBLE)
(FLAGS TAKEBIT NARTICLEBIT FOODBIT)
(ACTION HUMBLE-PIE-F)>
<ROUTINE HUMBLE-PIE-F ()
<COND (<VERB? EAT>
<UPDATE-SCORE>
<REMOVE ,HUMBLE-PIE>
<TELL
"As gingerly as possible, nibbling around the edges and taking smallish guilty
bites out of the pie, and chewing slowly and thoughtfully with wide eyes to
prolong the expression of your humility, you gradually consume the pie until
it is all gone." CR>)>>
<OBJECT PRIDE
(DESC "collective of lions' meat")
(SYNONYM LIONS COLLECTIVE PRIDE MEAT FOOD)
(ADJECTIVE COOKED LION LION\'S LIONS\' YOUR MY)
(FLAGS TAKEBIT FOODBIT)
(ACTION PRIDE-F)>
<ROUTINE PRIDE-F ()
<COND (<VERB? EAT>
<COND (<NOT <NOUN-USED ,PRIDE ,W?PRIDE>>
<TELL
"The phrasing seems off, since the meat defends itself from such an
approach">)
(<EQUAL? ,P-PRSA-WORD ,W?SWALLOW>
<UPDATE-SCORE>
<REMOVE ,PRIDE>
<TELL
"It's hard to swallow, but with determination and several long, Adam's
apple-jacking gulps, you manage to do it">)
(T
<TELL "You have an awful lot to chew on here">)>
<TELL ,PERIOD>)>>
<OBJECT HATCHET
(LOC LOCAL-GLOBALS)
(DESC "hatchet")
(SYNONYM AX AXE HATCHET BLADE)
(FLAGS TAKEBIT)
(ACTION HATCHET-F)>
;"rmungbit = have sharpened it"
<ROUTINE HATCHET-F ()
<COND (<AND <VERB? GRIND>
<EQUAL? ,HERE ,KITCHEN>>
<COND (<FSET? ,HATCHET ,PHRASEBIT>
<TELL ,ALREADY-HAVE>)
(T
<FSET ,HATCHET ,PHRASEBIT>
<UPDATE-SCORE>
<TELL
"After all you've been through, you believe you have a legitimate axe
to grind, and you do so, with relish. The blade of the axe twinkles with
razor sharpness." CR>)>)
(<AND <VERB? GIVE>
;<NOUN-USED ,HATCHET ,W?AX>
<PRSI? ,COOK ,WAITRESS>>
<TELL
"You can't give the " D ,PRSI " the ax, since, you're not ">
<COND (<EQUAL? ,PRSI ,COOK>
<TELL "his">)
(T
<TELL "her">)>
<TELL " boss." CR>)>>
<OBJECT NAPKIN
(DESC "white cloth napkin")
(SYNONYM NAPKIN CLOTH FLAG)
(ADJECTIVE WHITE CLOTH)
(FLAGS TAKEBIT ;NARTICLEBIT)
(ACTION NAPKIN-F)>
<ROUTINE NAPKIN-F ()
<COND (<VERB? WAVE>
<COND (<NOT <FSET? ,NAPKIN ,PHRASEBIT>>
<FSET ,NAPKIN ,PHRASEBIT>
<UPDATE-SCORE>)>
<TELL
"With your shoulders scrunched together so as not to presume to take
up much room in the Teapot Cafe, and with a sheepish look on your face,
you wave the little white napkin, looking side to side to see if it's
having any effect at all." CR>)>>
;"total of 16 acts of offense"
<ROUTINE OFFENCE ("OPTIONAL" (OBJ <>))
<COND (<ZERO? .OBJ>
<SET OBJ ,PRSO>)>
<COND (<OR <AND <FSET? .OBJ ,PHRASEBIT>
<NOT <ADJ-USED ,EYES ,W?EVIL>>>
<AND <ADJ-USED ,EYES ,W?EVIL>
<FSET? ,EYES ,RMUNGBIT>>>
<TELL ,ALREADY-HAVE>
<RTRUE>)
(T
<UPDATE-SCORE>
<COND (<ADJ-USED ,EYES ,W?EVIL>
<FSET ,EYES ,RMUNGBIT>)
(<ADJ-USED ,EYES ,W?JAUNDICED>
<FSET ,EYES ,PHRASEBIT>)
(T
<FSET .OBJ ,PHRASEBIT>)>
<COND (<PRSO? ,CROW> ;"ie nitty-gritty"
<TELL
"You do your best... but the attempt falls on the waitress's deaf ears">)
(<PRSO? ,REST-TABLE>
<SETG OLD-HERE <>>
<MOVE ,PROTAGONIST ,REST-CHAIR>
<TELL
"The waitress steps quickly toward you, pressing her thighs against the
table's opposite edge and staring coldly into your eyes.|
|
Her eyelashes are spidery with thick mascara, and the volume of white
powder below each brow could open a ski season. Her cheeks are brazen
with a raw swath of rouge, and the heavy lip blush is indeed embarrassing.|
|
You muster a grimace of your own, and you both follow the table around as
it makes one complete revolution and notches to a stop. You plop down on
the chair, sweat draining from your temples">)
(<PRSO? ,ADVICE>
<TELL
"You read the advice in a loud voice with much sarcasm, taking it so
lightly that the slip of paper almosts drifts up into the air. The
waitress seems snubbed that you don't seem to be taking the advice to
heart">)
(<PRSO? ,UMBRAGE>
<TELL
"You do so, and the Teapot cafe seems a little less dim, which unfortunately
can't be said of its employees, not excluding the waitress">)
(<PRSO? ,SHRIFT>
<REMOVE ,SHRIFT>
<TELL
"That's one way to turn the tables on the waitress. She accepts the short
shrift gruffly and begins polishing glasses with it">)
(<PRSO? ,WOOL>
<TELL
"The headband slips lower upon the waitress's forehead, narrowing her vision
to table-level and below">)
(<PRSO? ,DANDER>
<TELL
"The waitress shrugs her shoulders in contempt of your pestering, and sure
enough her dander is raised">)
(<PRSO? ,CHIP>
<TELL
"\"Come on, knock it off!\" the waitress says defiantly, and the chip goes
flying off into the air">)
(<PRSO? ,COMEUPPANCE>
<REMOVE ,COMEUPPANCE>
<TELL
"The fuzzily glowing neon goes well with her dime-store face. Her eyes
pick up the glow, and she storms away">)
(<AND <PRSO? ,WAITRESS> ;"rake over coals"
<VERB? RAKE-OVER>>
<TELL
"Not a bad idea, since the " D ,WAITRESS " looked so much in need of a rake
over. Of course, this only ends up in fanning the flames, and scorched by
your harshness, she stalks off">)
(<PRSO? ,CEILING>
<TELL
"The full brunt of your impact is taken by your head and shoulders, and the
entire teapot rattles loudly as you raise the roof">)
(<PRSO? ,RIOT-ACT>
<TELL
"\"How sweet,\" thinks the waitress. \"I haven't been read to since I was a
child, before going to sleep.\" But when she suddenly realizes it's bedtime
for Bonzo, her face reddens">)
(<PRSO? ,DESSERTS>
<REMOVE ,DESSERTS>
<TELL
"At first, the waitress perks up, no doubt expecting a large tip. But when
she gets the meanness of your offering, her face sours">)
(<AND <PRSI? ,EYES> ;"perform v-examine in pre-give"
<ADJ-USED ,EYES ,W?EVIL>>
<TELL
"You give her the evil eye, which is not as painful as you might have expected,
and in fact brings you a good deal of satisfaction. As for the waitress, she
seems ruffled, but continues about her business">)
(<AND <PRSI? ,EYES> ;"l at x with j. eye"
<ADJ-USED ,EYES ,W?JAUNDICED>>
<TELL
"Under your nasty gaze, the waitress seems momentarily self-conscious,
then hurriedly continues on with her work">)
(<PRSO? ,SPLEEN>
<TELL
"On a gut feeling, you let it all hang out, which brings you a
general feeling of well-being. It seems to have struck a nerve in the
waitress too, since she takes a rare glance in your direction">)
(<PRSI? ,GROUND> ;"call x onto carpet"
<TELL
"Bristling at your presumption of authority, the waitress stops in front of
you for one brief moment. Then before you can open your mouth, she turns
and leaves">)>
<TELL ". ">
<OFFENCE-REACTION>)>>
<GLOBAL OFFENCES 0>
<ROUTINE OFFENCE-REACTION ()
;<SET OFFENCES <GETP ,SCENE ,P?SCENE-SCORE>>
<SETG OFFENCES <+ ,OFFENCES 1>>
<COND (<EQUAL? ,OFFENCES 1>
<TELL
"She ducks out for a few seconds and returns to hurriedly ">
<GIVE-IT ,HATCHET "set your table with" "give you">
<TELL
" something strange and crude for an eating instrument, a hatchet">)
(<EQUAL? ,OFFENCES 2>
<TELL
"Becoming agitated at your behavior, she disappears for a few moments, and comes back to serve you some ">
<GIVE-IT ,HUMBLE-PIE "pie by setting it on the table" "pie">
<TELL "." CR CR "The waitress "
<PICK-NEXT <GET ,S-WAITRESS 0>>
<PICK-NEXT <GET ,S-WAITRESS 1>>>)
(<EQUAL? ,OFFENCES 4>
<TELL
"She charges back into the kitchen, and ">
<GIVE-IT ,PRIDE "brings to your table" "dishes out to you">
<TELL
" some strange meat that she briefly describes as being
\"collective of lions.\" Strange indeed">)
(<EQUAL? ,OFFENCES 6>
<TELL "She leaves, comes back and ">
<GIVE-IT ,FORTUNE
"flings a fortune cookie down on your table" "closes your hand
gently around a fortune cookie">
<GIVE-IT ,SALT-SHAKER " along with a salt shaker"
" along with a salt shaker">
<TELL "." CR CR "The waitress "
<PICK-NEXT <GET ,S-WAITRESS 0>>
<PICK-NEXT <GET ,S-WAITRESS 1>>>)
(<EQUAL? ,OFFENCES 7>
<TELL
"She flies the coop for a minute and comes back with a charred,
dark-feathered bird which she ">
<GIVE-IT ,CROW "drops onto your table" "puts in your arms">)
(<EQUAL? ,OFFENCES 8>
<TELL
"She makes a brief exit, and a briefer entrance to drop a white cloth napkin ">
<GIVE-IT ,NAPKIN "onto your table" "into your arms">)
(<EQUAL? ,OFFENCES 9>
<TELL "She exits, then comes back and slips a rump roast ">
<GIVE-IT ,ROAST "onto your table" "to you">
<TELL "." CR CR "The waitress "
<PICK-NEXT <GET ,S-WAITRESS 0>>
<PICK-NEXT <GET ,S-WAITRESS 1>>>)
(<EQUAL? ,OFFENCES 10> ;"no need for answer"
<TELL
"She pretends not to be bothered, but you observe that she's reaching her
boiling point, being driven into a tizzy as she walks in circles. Her dander
is jumping up from her shoulders as she storms away, and the distant sound
of a teapot whistling can be heard">)
(<EQUAL? ,OFFENCES 12>
<TELL
"\"Well, if you've really reached the boiling point,\" shouts the waitress,
\"why don't you take it up with the cook!\"" CR>
<RTRUE>)
(T
<TELL CR "The waitress "
<PICK-NEXT <GET ,S-WAITRESS 0>>
<PICK-NEXT <GET ,S-WAITRESS 1>>>
<TELL ,PERIOD>
<RTRUE>)>
<TELL ,PERIOD>
<RTRUE>>
<GLOBAL S-WAITRESS
<PTABLE
<LTABLE 2
"continues on, "
"steps away from you, "
"resumes her duties, which seem to include "
"stomps away in a huff and begins ">
<LTABLE 2
"calculating her tips for the day"
"performing a quick set of high-impact aerobics"
"clearing plates with her bristly hair"
"taking a standing coffee break"
"munching on some pilfered salad makings"
"fingering her neck nervously">>>
<ROUTINE GIVE-IT (OBJ STR1 STR2)
<COND (<EQUAL? ,HERE ,FLOOR-1>
<MOVE .OBJ ,REST-TABLE>
<TELL .STR1>)
(T
<MOVE .OBJ ,PROTAGONIST>
<TELL .STR2>)>
<RTRUE>>
<OBJECT UMBRAGE
(LOC FLOOR-1)
(DESC "umbrage")
(SYNONYM UMBRAGE)
(FLAGS NDESCBIT TRYTAKEBIT)
(ACTION UMBRAGE-F)>
<ROUTINE UMBRAGE-F ()
<COND (<AND <VERB? TAKE TAKE-WITH>
<PRSO? ,UMBRAGE>>
<COND (<OR <NOT ,PRSI>
<PRSI? ,WAITRESS>>
<OFFENCE>)
(T
<WASTES>)>)>>
<OBJECT COMEUPPANCE
(LOC FLOOR-1)
(DESC "Comeuppance")
(SYNONYM SIGN COMEUPPANCE)
(ADJECTIVE COMEUPPANCE BLUE NEON HER)
(FLAGS NDESCBIT NARTICLEBIT ;READBIT TAKEBIT TRYTAKEBIT)
(ACTION COMEUPPANCE-F)>
<ROUTINE COMEUPPANCE-F ()
<COND (<AND <VERB? TAKE>
<FSET? ,COMEUPPANCE ,TRYTAKEBIT>>
<TELL
"The waitress, though busy scurrying around and up and down, would be able to observe such a flagrant violation upon the premises." CR>)
(<AND <VERB? TAKE>
<NOT <FSET? ,COMEUPPANCE ,TOUCHBIT>>
;<EQUAL? <ITAKE> T>
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
<FCLEAR ,COMEUPPANCE ,TRYTAKEBIT>
<TELL
"Having pulled the wool over the waitress's eyes, you snatch the neon sign,
which glows warm in your hands." CR>)
(<VERB? EXAMINE READ>
<COND (<NOT <FSET? ,PRSO ,TOUCHBIT>>
<TELL "Next to the stairway, ">)
(T
<TELL "The ">)>
<TELL "glowing blue neon letters read \"">
<HLIGHT ,H-BOLD>
<TELL "Comeuppance">
<HLIGHT ,H-NORMAL>
<TELL ".\"" CR>)>>
<OBJECT WAITRESS
(LOC FLOOR-1)
(DESC "waitress")
(LDESC "A waitress here is trying to look busy.")
(SYNONYM WAITRESS GIRL JEN JENNY)
(FLAGS ACTORBIT FEMALEBIT CONTBIT OPENBIT SEARCHBIT NO-D-CONT)
(GENERIC GEN-GIRL)
(ACTION WAITRESS-F)>
<ROUTINE WAITRESS-F ()
<COND (<VERB? TELL>
<TELL
"She issues you a loud, head-shaking raspberry, which is as much service
as you've gotten from her yet." CR>
<STOP>)
(<AND <VERB? MUNG KILL>
<NOT ,PRSI>
<HELD? ,HATCHET>>
<TELL "[with the hatchet]" CR CR>
<PERFORM ,V?KILL ,WAITRESS ,HATCHET>
<RTRUE>)
(<AND <VERB? MUNG KILL>
<PRSI? ,HATCHET>>
<TELL
"The waitress firmly grips your forearm in defense of her mohawk. \"Come
on now, enough of this hair-splitting, I'll get to you, just as soon as I can.\"" CR>)
(<VERB? EXAMINE>
<TELL
"She is a hatchet-faced young woman, with a spiked purple mohawk and a
pink woolen headband">
<COND (<FSET? ,WOOL ,PHRASEBIT>
<TELL ", which's been pulled over her eyes">)
(T
<TELL " worn low on her forehead">)>
<TELL ". ">
<COND (<IN? ,CHIP ,WAITRESS>
<TELL
"A stray wood chip, apparently having been picked up from the kitchen,
sits upon">)
(T
<TELL "You've knocked the chip off">)>
<TELL " her shoulder">
<COND (<FSET? ,DANDER ,PHRASEBIT>
<TELL
". You've done your darndest to raise her dander">)
(T
<TELL
", which is otherwise sprinkled amply with dandruff, or dander">)>
<TELL ,PERIOD>
<COND (<NOT <FSET? ,WOOL ,PHRASEBIT>>
<TELL CR
"She eyes you suspiciously for a moment, as if you've done wrong." CR>)>
<RTRUE>)
(<VERB? GIVE>
<COND (<PRSO? ,SHRIFT ,COMEUPPANCE ,DESSERTS>
<OFFENCE>)
(<PRSO? ,BRANCH>
<UPDATE-SCORE>
<REMOVE ,BRANCH>
<TELL
"She accepts the peace offering, leaves, then comes back." CR>)
(;<PRSI? ,HATCHET>
<PRSO? ,HATCHET>
<RFALSE>)
(<AND <PRSO? ,CROW>
<EQUAL? <GET ,P-NAMW 0> ,W?BIRD>>
<TELL
"She missed it, and you withdraw the finger like a smoking gun." CR>)>)
(<AND <VERB? PASS>
<EQUAL? ,HERE ,FLOOR-1>
<L? ,OFFENCES 11>>
<DO-WALK ,P?IN>
<RTRUE>)>>
<OBJECT WOOL
(LOC WAITRESS)
(DESC "wool")
(SYNONYM HEADBAND WOOL)
(ADJECTIVE WAITRESS WOOL WOOLEN PINK HER)
(FLAGS TRYTAKEBIT)
(ACTION WOOL-F)>
<ROUTINE WOOL-F ()
<COND (<OR <AND <VERB? PULL-OVER>
<PRSI? ,EYES>>
<AND <VERB? MOVE>
<EQUAL? ,P-PRSA-WORD ,W?PULL>>>
<COND (<ADJ-USED ,EYES ,W?MY>
<TELL "It can't stretch that far." CR>
<RTRUE>)>
<FCLEAR ,COMEUPPANCE ,TRYTAKEBIT>
<OFFENCE>)>>
<OBJECT DANDER
(LOC WAITRESS)
(DESC "dander")
(SYNONYM DANDRUFF DANDER)
(ADJECTIVE WAITRESS HER) ;"no apostrophe"
(FLAGS TRYTAKEBIT)
(ACTION DANDER-F)>
<ROUTINE DANDER-F ()
<COND (<VERB? STAND RAISE> ;"get up obj"
<OFFENCE>)>>
<OBJECT CHIP
(LOC WAITRESS)
(DESC "chip")
(SYNONYM WOODCHIP WOOD-CHIP CHIP)
(ADJECTIVE WOOD)
(FLAGS TRYTAKEBIT)
(ACTION CHIP-F)>
<ROUTINE CHIP-F ()
<COND (<AND <VERB? KNOCK-OFF MUNG>
<OR <NOT ,PRSI>
<PRSI? ,SHOULDER ,WAITRESS>>>
<REMOVE ,CHIP>
<OFFENCE>)
(<VERB? TAKE>
<WASTES>)>>
<ROOM FLOOR-2
(LOC ROOMS)
(DESC "Second floor")
(DOWN TO FLOOR-1)
(FLAGS INDOORSBIT)
(GLOBAL RESTAURANT STAIRS)
(ACTION FLOOR-2-F)>
<ROUTINE FLOOR-2-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the second floor of The Teapot Cafe. You're standing below a
low-slung ceiling, upon a carpet, next to an official-looking sign on the wall.
Across from you, built into a stone wall, lies a large open-air hearth which is filled with smoldering coals.">)
(<AND <EQUAL? .RARG ,M-END>
<NOT <IN? ,WAITRESS ,HERE>>>
<WAITRESS-COMES>)>>
<ROUTINE WAITRESS-COMES ()
<MOVE ,WAITRESS ,HERE>
<CRLF>
<TELL "The waitress ">
<COND (<PROB 40>
<TELL "stalks">)
(<PROB 30>
<TELL "stomps">)
(T
<TELL "trails">)>
<TELL " after you." CR>
<RTRUE>>
<OBJECT RIOT-ACT
(LOC FLOOR-2)
(DESC "riot act")
(SYNONYM ACT SIGN)
(ADJECTIVE RIOT OFFICIAL-)
(FLAGS TRYTAKEBIT NDESCBIT)
(ACTION RIOT-ACT-F)>
<ROUTINE RIOT-ACT-F ()
<COND (<VERB? EXAMINE READ>
<TELL
"\"It is unlawful for this room to be occupied by more than 350 angry
persons." CR>
<TELL
" -- Section 204D, paragraph 7-6, The Riot Act\"|">)
(<AND <VERB? READ-TO>
<PRSI? ,WAITRESS>>
<OFFENCE>)
(<VERB? TAKE>
<TELL "It's firmly attached." CR>)>>
<OBJECT RAKE
(LOC FLOOR-2)
(DESC "rake")
(FDESC "Leaning against the stone wall is a rake.")
(SYNONYM RAKE)
(FLAGS TAKEBIT)
;(ACTION RAKE-F)>
<OBJECT COALS
(LOC FLOOR-2)
(DESC "coals")
(SYNONYM COALS COAL FIRE HEARTH)
(ADJECTIVE OPEN-AIR LARGE HOT)
(FLAGS PLURALBIT NDESCBIT)
(ACTION COALS-F)>
<ROUTINE COALS-F ()
<COND (<AND <VERB? RAKE-OVER>
<PRSO? ,WAITRESS>> ;"else v-rake-over"
<OFFENCE>)
(<VERB? ENTER BOARD WALK-TO STAND-ON>
<TELL "It's too hot to trot." CR>)
(<VERB? LOOK-INSIDE EXAMINE>
<TELL "The coals in the hearth glow red and white hot." CR>
<RTRUE>)>>
<OBJECT OLIVE-TREE
(LOC FLOOR-2)
(DESC "olive tree")
(LDESC "A decorative olive tree stands in the shadowy corner.")
(SYNONYM TREE BRANCH BRANCHES OLIVE)
(ADJECTIVE OLIVE)
(FLAGS NO-D-CONT CONTBIT OPENBIT SEARCHBIT VOWELBIT)
(GENERIC GEN-OLIVE)
(ACTION OLIVE-TREE-F)>
<ROUTINE OLIVE-TREE-F ()
<COND (<AND <VERB? EXAMINE>
<IN? ,BRANCH ,OLIVE-TREE>>
<TELL "There's one branch loose." CR>)
(<AND <VERB? CUT>
<PRSI? ,HATCHET>>
<COND (<IN? ,BRANCH ,OLIVE-TREE>
<PERFORM ,V?TAKE ,BRANCH>
<RTRUE>)
(T
<TELL
"Thump! The leaves shake and shimmer in the fire light, but the tree
is undamaged." CR>)>)
(<NOUN-USED ,OLIVE-TREE ,W?OLIVE>
<TELL "No olives have yet been produced." CR>)>>
<OBJECT BRANCH
(LOC OLIVE-TREE)
(DESC "olive branch")
(SYNONYM BRANCH)
(ADJECTIVE OLIVE)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT VOWELBIT)
(GENERIC GEN-OLIVE)
(ACTION BRANCH-F)>
<ROUTINE BRANCH-F ()
<COND (<AND <VERB? TAKE MUNG PICK CUT>
<IN? ,BRANCH ,OLIVE-TREE>
<PRSO? ,BRANCH>
;<EQUAL? <ITAKE <>> T>
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
<TELL
"\"Snap!\" The branch comes off in your hands." CR>)>>
<ROUTINE GEN-OLIVE ()
,BRANCH>
<OBJECT DESSERTS
(LOC FLOOR-2)
(DESC "just desserts")
(FDESC
"Some food has been left here, no doubt by some impatient patrons of the
cafe.")
(SYNONYM DESSERTS DESSERT FOOD)
(ADJECTIVE JUST HER)
(FLAGS TAKEBIT PLURALBIT NARTICLEBIT FOODBIT)
;(GENERIC GEN-DESSERTS)
(ACTION DESSERTS-F)>
<ROUTINE DESSERTS-F ()
<COND (<OR <VERB? EXAMINE>
<AND <VERB? SMELL>
<NOT <FSET? ,DESSERTS ,SEENBIT>>>>
<FSET ,DESSERTS ,SEENBIT>
<TELL "They're " D ,DESSERTS "." CR>)
(<VERB? EAT>
<TELL
"Since they're " D ,DESSERTS ", they don't look all that appetizing." CR>)
(<AND <VERB? TAKE>
;<EQUAL? <ITAKE> T>
<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
<TELL "You get your " D ,DESSERTS ,PERIOD>)>>
<OBJECT CAPE
(LOC FLOOR-1)
(DESC "red velvet curtain")
(FDESC
"A red velvet curtain appears to mark the entrance to the kitchen.")
(SYNONYM CURTAIN CAPE)
(ADJECTIVE RED VELVET)
(FLAGS TAKEBIT TRYTAKEBIT)
(ACTION CAPE-F)>
<ROUTINE CAPE-F ()
<COND (<AND <TOUCHING? ,CAPE>
<FSET? ,CAPE ,TRYTAKEBIT>>
<DO-WALK ,P?IN>
<RTRUE>)
(<OR <AND <VERB? WAVE>
<PRSI? ,COOK>
;,IN-FRONT-FLAG>
<AND <VERB? WAVE>
<NOT ,PRSI>
<IN? ,COOK ,HERE>>>
<COND (<IN? ,BAD-BLOOD ,HERE>
<TELL-BAD-BLOOD T>
<RTRUE>)>
<OFFENCE-COOK>)
(<OR <AND <VERB? WAVE>
<PRSI? ,WAITRESS>
;,IN-FRONT-FLAG>
<AND <VERB? WAVE>
<IN? ,WAITRESS ,HERE>>>
<TELL "Ole! The waitress pretends not to notice." CR>)>>
;"kitchen stuff"
<ROUTINE FLOOR-1-EXIT ("AUX" SC)
<SET SC <GETP ,SCENE ,P?SCENE-SCORE>>
<COND (<G? .SC 11 ;10>
<COND (<NOT <FSET? ,KITCHEN ,TOUCHBIT>>
<FCLEAR ,CAPE ,TRYTAKEBIT>
<FCLEAR ,CAPE ,NDESCBIT>
<MOVE ,CAPE ,PROTAGONIST>
<FSET ,CAPE ,TOUCHBIT>
<TELL
"You're drawn toward the kitchen amid the fast-paced, dramatic sounds
of a big-band era orchestra -- matador music. As you make your
entrance, the red velvet curtain, now appearing like a cape, comes off
into your hands." CR CR>)>
<RETURN ,KITCHEN>)
(T
<TELL
"As you head toward the kitchen, the waitress heads you off at the pass. ">
<COND (<G? .SC 8>
<TELL
"But you're certainly wearing down her defenses.">)
(<G? .SC 6>
<TELL "But you're gradually getting to her.">)
(<G? .SC 4>
<TELL "But you're on the right track.">)
(<G? .SC 2>
<TELL
"You don't have nearly enough gall to storm into the kitchen, but you're
getting there.">)
(<NOT <ZERO? .SC>>
<TELL
"You're not hot enough yet to take the kitchen by storm.">)
(T
<TELL
"You haven't even mixed it up with the waitress. So there's no need to take
it up with the cook yet.">)>
<CRLF>
<RFALSE>)>>
<ROOM KITCHEN
(LOC ROOMS)
(DESC "Kitchen")
(OUT PER KITCHEN-EXIT)
(GLOBAL RESTAURANT)
(FLAGS INDOORSBIT)
(ACTION KITCHEN-F)>
<ROUTINE KITCHEN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The dominating feature of the kitchen is the cook, who is dwarfish in
dimension but gigantic in size." CR CR>