-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathrockvil.zil
10905 lines (10160 loc) · 337 KB
/
rockvil.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
"ROCKVIL for
A MIND FOREVER VOYAGING
(c) 1985 by Infocom, Inc. All Rights Reserved."
<ROOM ROCKVIL-CENTRE
(LOC ROOMS)
(DESC "Rockvil Centre")
(NORTH TO HALLEY-AND-PARK)
(NE TO CENTRE-AND-KENNEDY)
(EAST TO MAIN-AND-KENNEDY)
(SE PER DUNBARS-ENTER-F)
(SOUTH TO ELM-AND-PARK)
(SW SORRY "There's no entrance to City Hall in that direction.")
(WEST PER CITY-HALL-ENTER-F)
(NW SORRY "There's no entrance to City Hall in that direction.")
(FLAGS STREETBIT OUTSIDEBIT NARTICLEBIT)
(GLOBAL CITY-HALL-OBJECT DUNBARS-OBJECT PEOPLE)
(ACTION ROCKVILLE-CENTRE-F)>
<ROUTINE ROCKVILLE-CENTRE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "The name of this plaza tells it all. The ">
<COND (<EQUAL? ,SYEAR 2041>
<TELL "well-maintained">)
(<EQUAL? ,SYEAR 2051 2061>
<TELL "aging">)
(T
<SCORE 11> ;"1 point"
<TELL "crumbling">)>
<TELL
" portico of City Hall stretches along the west side of the plaza, and
Dunbar's lies on the southeast corner. Park Street leads north and south.
Main Street and Centre Street both begin here, leading eastward and
northeastward, respectively.">)>>
<ROUTINE DUNBARS-ENTER-F ()
<COND (<OR <G? ,STIME 1260>
<L? ,STIME 600>>
<CLOSED-PRINT "Dunbar's">
<RFALSE>)
(<EQUAL? ,SYEAR 2071>
<SCORE 122> ;"1 point"
<TELL
"A security guard stops you at the doorway, scrutinizing you with a haughty
sneer. \"Do you have an appointment?\"">
<COND (<YES?>
<TELL CR "\"">
<REPEAT ()
<TELL "The name on that appointment?\"" CR CR>
<PRINTI ">">
<READ ,P-INBUF ,P-LEXV>
<COND (<ZERO? <GETB ,P-LEXV ,P-LEXWORDS>>
<TELL "\"Sorry, I missed that. ">
<AGAIN>)>
<RETURN>>
<TELL
"\"I'm sorry, sir. There's no appointment in that name.\"">)
(T
<TELL
"\"Next time, please call for an appointment beforehand.\"">)>
<TELL
" The guard leads you firmly away from the building before leaving." CR>
<RFALSE>)
(T
,DUNBARS)>>
<ROOM DUNBARS
(LOC ROOMS)
(DESC "Dunbar's")
(NW TO ROCKVIL-CENTRE)
(OUT TO ROCKVIL-CENTRE)
(FLAGS NARTICLEBIT)
(GLOBAL DUNBARS-OBJECT PEOPLE)
(ACTION DUNBARS-F)>
<ROUTINE DUNBARS-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<MOVE ,SPEAR-CARRIER ,HERE>
<PUTP ,SPEAR-CARRIER ,P?SDESC "clerk">)
(<EQUAL? .RARG ,M-LOOK>
<TELL "You have entered a">
<COND (<EQUAL? ,SYEAR 2041>
<TELL "n upscale">)
(<EQUAL? ,SYEAR 2051>
<TELL " swank">)
(<EQUAL? ,SYEAR 2061>
<TELL " very swank">)>
<TELL " department store, ">
<COND (<EQUAL? ,SYEAR 2041>
<TELL "crowded despite its rather steep prices">)
(<EQUAL? ,SYEAR 2051>
<TELL "an elegant boutique with a wealthy clientele">)
(T
<TELL "catering exclusively to the wealthy elite">)>
<COND (<EQUAL? ,SYEAR 2061>
<TELL
". Racks in this part of the store are filled with plainer garments">)
(T
<TELL
". Racks all around you are stocked with the latest fashions">)>
<TELL ". The exit to the street is northwest.">)
(<EQUAL? .RARG ,M-END>
<CLOSING-TIME 1260 "the store" "a guard" ,ROCKVIL-CENTRE>)>>
<OBJECT DUNBARS-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "Dunbar's")
(SYNONYM DUNBAR\'S DUNBARS STORE SHOP BOUTIQUE)
(ADJECTIVE VENERABLE DEPARTMEN DEPT SWANK ELEGANT UPSCALE)
(FLAGS NARTICLEBIT)
(ACTION DUNBARS-OBJECT-F)>
<ROUTINE DUNBARS-OBJECT-F ()
<COND (<VERB? THROUGH WALK-TO>
<COND (<EQUAL? ,HERE ,DUNBARS>
<TELL ,LOOK-AROUND CR>)
(<GLOBAL-IN? ,PRSO ,HERE>
<DO-WALK ,P?SE>)>)
(<VERB? DISEMBARK LEAVE>
<COND (<EQUAL? ,HERE ,ROCKVIL-CENTRE>
<TELL ,LOOK-AROUND CR>)
(T
<DO-WALK ,P?NW>)>)
(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,DUNBARS>
<V-LOOK>)
(T
<TELL
"Dunbar's, a venerable shop, specializes in fashions for both sexes." CR>)>)>>
<OBJECT RACKS
(LOC DUNBARS)
(DESC "racks of fashionable clothes")
(SYNONYM RACK RACKS FASHION FASHIONS)
(ADJECTIVE FASHIONABLE)
(FLAGS NDESCBIT NARTICLEBIT PLURALBIT)
(ACTION RACKS-F)>
<ROUTINE RACKS-F ()
<COND (<VERB? EXAMINE>
<COND (<EQUAL? ,SYEAR 2041>
<TELL
"The clothes are diverse and fashionable, and quite steeply priced." CR>)
(<EQUAL? ,SYEAR 2051>
<TELL
"The clothes are quite stylish, and virtually all
out of your price range." CR>)
(T
<TELL
"The clothes in the few racks near you are mostly in the drab browns and
olives worn by the lower classes. Over in the restricted areas of the store,
you can spot racks laden with stylish clothes in the violets and golds
favored by Churchmen and other landowners." CR>)>)>>
<OBJECT CLOTHES
(LOC GLOBAL-OBJECTS)
(DESC "clothes")
(SYNONYM CLOTHES CLOTHING GARMENT GARMENTS PANTS SHIRT SHIRTS)
(ADJECTIVE MY PAIR PAIRS FASHIONABLE DRAB BROWN OLIVE STYLISH
VIOLET GOLD)
(FLAGS NARTICLEBIT TRYTAKEBIT NDESCBIT PLURALBIT)
(ACTION CLOTHES-F)>
<ROUTINE CLOTHES-F ("AUX" GARMENT)
<COND (<VERB? BUY>
<COND (<EQUAL? ,HERE ,DUNBARS>
<COND (<OR <NOT <FSET? ,SWEATER ,TRYTAKEBIT>>
<NOT <IN? ,SCARF ,LOCAL-GLOBALS>>>
<CLOTHES-BUDGET>)
(T
<COND (<EQUAL? ,SYEAR 2041>
<SET GARMENT ,SWEATER>
<TELL
"You look through many racks, finding nothing you like, and finally select
a brightly colored myalon sweater that fits you perfectly">)
(T
<SET GARMENT ,VEST>
<TELL
"After wincing at the prices, you pick out a thin, imitation wool vest">)>
<COND (<TOO-POOR 120 .GARMENT>
<RTRUE>)>
<COND (<EQUAL? ,SYEAR 2041>
<MOVE ,SWEATER ,PLAYER>
<FCLEAR ,SWEATER ,NDESCBIT>
<FCLEAR ,SWEATER ,TRYTAKEBIT>)
(T
<MOVE ,VEST ,PLAYER>
<FCLEAR ,VEST ,NDESCBIT>
<FCLEAR ,VEST ,TRYTAKEBIT>)>
<TELL
". A clerk removes the anti-theft tag from the garment">
<DEBIT 120>
<TELL "." CR>)>)
(<EQUAL? ,HERE ,HEIMAN-VILLAGE ,ROCKVIL-MALL>
<COND (<OR <L? ,STIME 480>
<G? ,STIME 1380>>
<TELL "Every store is closed for the night." CR>
<RTRUE>)
(<OR <NOT <FSET? ,SWEATER ,TRYTAKEBIT>>
<NOT <FSET? ,VEST ,TRYTAKEBIT>>
<NOT <IN? ,SCARF ,LOCAL-GLOBALS>>>
<CLOTHES-BUDGET>
<RTRUE>)>
<PUTP ,SPEAR-CARRIER ,P?SDESC "clerk">
<TELL
"You enter a clothing store, but they have little that suits your taste. You
finally pick out a conservative male scarf">
<COND (<TOO-POOR 39 ,SCARF>
<TELL CR "You meekly leave the store." CR>
<RTRUE>)>
<MOVE ,SCARF ,PLAYER>
<DEBIT 39>
<TELL "." CR>)
(T
<CANT-BUY ,CLOTHES>)>)
(<VERB? TAKE WEAR>
<COND (<AND <EQUAL? ,HERE ,DUNBARS>
<FSET? ,CLOTHES ,TRYTAKEBIT>>
<TELL "You haven't paid for them." CR>)
(T
<TELL "You're already wearing your clothes!" CR>)>)
(<VERB? REMOVE TAKE-OFF ;DROP> ;"DROP is handled by IDROP"
<COND (<IN-APARTMENT?>
<TELL
"You remove your clothes for a minute, but there's a bit of a chill in
the air, so you decide to put them back on." CR>)
(T
<TELL
"You'd be arrested if you removed your clothes in public!" CR>)>)
(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,DUNBARS>
<PERFORM ,V?EXAMINE ,RACKS>
<RTRUE>)
(T
<PERFORM ,V?EXAMINE ,ME>
<RTRUE>)>)>>
<OBJECT SWEATER
(LOC DUNBARS)
(DESC "sweater")
(SYNONYM SWEATER SWEATERS)
(ADJECTIVE BRIGHTLY COLORED MYALON MY)
(SIZE 10)
(FLAGS TAKEBIT WEARBIT TRYTAKEBIT NDESCBIT)
(ACTION SWEATER-F)>
<ROUTINE SWEATER-F ()
<COND (<VERB? BUY>
<PERFORM ,V?BUY ,CLOTHES>
<RTRUE>)
(<AND <VERB? TAKE>
<FSET? ,SWEATER ,TRYTAKEBIT>>
<PERFORM ,V?TAKE ,CLOTHES>
<RTRUE>)
(<AND <VERB? EXAMINE>
<NOT <FSET? ,SWEATER ,TRYTAKEBIT>>>
<TELL
"It is a bright and colorful sweater, made of myalon." CR>)>>
<OBJECT VEST
(LOC DUNBARS)
(DESC "vest")
(SYNONYM VEST VESTS)
(ADJECTIVE THIN IMITATION WOOL)
(SIZE 10)
(FLAGS TAKEBIT WEARBIT TRYTAKEBIT NDESCBIT)
(ACTION VEST-F)>
<ROUTINE VEST-F ()
<COND (<VERB? BUY>
<PERFORM ,V?BUY ,CLOTHES>
<RTRUE>)
(<AND <VERB? TAKE>
<FSET? ,VEST ,TRYTAKEBIT>>
<PERFORM ,V?TAKE ,CLOTHES>
<RTRUE>)
(<AND <VERB? EXAMINE>
<NOT <FSET? ,VEST ,TRYTAKEBIT>>>
<TELL "The vest is of thin imitation wool." CR>)>>
<OBJECT SCARF
(LOC LOCAL-GLOBALS)
(DESC "scarf")
(SYNONYM SCARF)
(ADJECTIVE CONSERVATIVE MALE)
(FLAGS TAKEBIT WEARBIT)
(ACTION SCARF-F)>
<ROUTINE SCARF-F ()
<COND (<VERB? BUY>
<PERFORM ,V?BUY ,CLOTHES>
<RTRUE>)
(<VERB? EXAMINE>
<TELL "The scarf is simple and conservatively styled." CR>)>>
<ROOM CITY-HALL
(LOC ROOMS)
(DESC "City Hall")
(EAST TO ROCKVIL-CENTRE)
(OUT TO ROCKVIL-CENTRE)
(FLAGS NARTICLEBIT)
(GLOBAL CITY-HALL-OBJECT)
(ACTION CITY-HALL-F)>
<ROUTINE CITY-HALL-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The city's seat of government is an old concrete-slab building dating back to
the late twentieth century. ">
<COND (<EQUAL? ,SYEAR 2071>
<SCORE 11> ;"1 point"
<TELL
"The interior is decrepit; it looks as though no maintenance has
been performed here for years. ">)>
<TELL "The only exit is east.">)
(<EQUAL? .RARG ,M-END>
<CLOSING-TIME 1080 "the building" "a guard" ,ROCKVIL-CENTRE>)>>
<ROUTINE CITY-HALL-ENTER-F ()
<COND (<AND <G? ,STIME 600>
<L? ,STIME 1080>>
,CITY-HALL)
(T
<CLOSED-PRINT "City Hall">
<RFALSE>)>>
<OBJECT CITY-HALL-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "City Hall")
(SYNONYM HALL)
(ADJECTIVE CITY)
(FLAGS NARTICLEBIT)
(ACTION CITY-HALL-OBJECT-F)>
<ROUTINE CITY-HALL-OBJECT-F ()
<COND (<VERB? THROUGH WALK-TO>
<COND (<EQUAL? ,HERE ,CITY-HALL>
<TELL ,LOOK-AROUND CR>)
(<GLOBAL-IN? ,PRSO ,HERE>
<DO-WALK ,P?WEST>)>)
(<VERB? LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,ROCKVIL-CENTRE>
<TELL ,LOOK-AROUND CR>)
(T
<DO-WALK ,P?WEST>)>)>>
<OBJECT BENCH
(LOC CITY-HALL)
(DESC "bench")
(SYNONYM BENCH)
(FLAGS NDESCBIT VEHBIT CONTBIT FURNITUREBIT SEARCHBIT)
(ACTION BENCH-F)>
<ROUTINE BENCH-F ;("OPTIONAL" RARG) ()
<COND ;(.RARG
<RFALSE>)
;(<VERB? OPEN CLOSE>
<TELL "Huh?" CR>)
(<AND <VERB? EXAMINE>
<IN? ,GOVERNMENT-OFFICIAL ,HERE>>
<TELL "A ">
<PRINTD ,GOVERNMENT-OFFICIAL>
<TELL " is sitting on the bench." CR>)>>
<OBJECT GOVERNMENT-OFFICIAL
(LOC LOCAL-GLOBALS)
(DESC "government official")
(LDESC
"A government official is sitting on a bench in the center of the lobby,
eating a snack.")
(SYNONYM OFFICIAL)
(ADJECTIVE GOVERNMENT GOVT)
(FLAGS ACTORBIT)
(GENERIC GENERIC-OFFICIAL-F)
(ACTION GOVERNMENT-OFFICIAL-F)>
<ROUTINE GOVERNMENT-OFFICIAL-F ()
<COND (<OR <VERB? TELL>
<EQUAL? ,GOVERNMENT-OFFICIAL ,WINNER>>
<SETG PRSO ,GOVERNMENT-OFFICIAL>
<MOVE ,OFFICIAL-SNACK ,LOCAL-GLOBALS>
<BRIEF-CHAT>
<COND (<EQUAL? ,SYEAR 2041>
<COND (,RECORDING
<PUT ,RECORDING-TABLE 2 1>)>
<TELL
"cheerily comments on how well things in the city are running, and how
rewarding his job has been lately" ,OFFICIAL-LEAVES CR>)
(T
<SCORE 136> ;"2 points"
<TELL
"grumpily complains that most of his department has been laid off as city
services are cut back. Suddenly he notices the time, looks frightened,
and rushes away." CR>)>
<CLEAR-BUF>)
;(<AND <VERB? ASK-ABOUT>
<PRSO? ,GOVERNMENT-OFFICIAL>>
<PERFORM ,V?TELL ,PRSO>
<RTRUE>)
(<VERB? SIT-NEXT-TO>
<PERFORM ,V?SIT ,BENCH>
<RTRUE>)>>
<OBJECT OFFICIAL-SNACK
(LOC LOCAL-GLOBALS)
(DESC "snack")
(SYNONYM SNACK CUPCAKE DONUT DOUGHNUT CAKE)
(ADJECTIVE CUP LARGE)
(FLAGS NDESCBIT)
(ACTION SNACK-F)>
<ROUTINE SNACK-F ()
<COND (<VERB? EXAMINE>
<TELL
,IT-LOOKS-LIKE " some kind of large donut or cupcake." CR>)
(<VERB? TAKE EAT>
<TELL "It's not yours." CR>)>>
<ROOM MAIN-AND-KENNEDY
(LOC ROOMS)
(DESC "Main & Kennedy")
(NORTH TO CENTRE-AND-KENNEDY)
(NE PER OFFICE-BUILDING-ENTER-F)
(EAST TO MAIN-AND-RIVER)
(SE PER OFFICE-BUILDING-ENTER-F)
(SOUTH TO ELM-AND-KENNEDY)
(SW PER KENNEDY-PARK-ENTER-F)
(WEST TO ROCKVIL-CENTRE)
(NW PER SKYBUS-TERMINAL-ENTER-F)
(FLAGS STREETBIT OUTSIDEBIT NARTICLEBIT)
(GLOBAL SKYBUS-TERMINAL-OBJECT PARK-OBJECT GLASS TOWNHOUSE PEOPLE
CONSTRUCTION-OBJECT GATE)
(ACTION MAIN-AND-KENNEDY-F)>
<ROUTINE MAIN-AND-KENNEDY-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the heart of the downtown area, flanked by classical glass-and-steel
skyscrapers. The skybus terminal ">
<COND (<EQUAL? ,SYEAR 2071>
<SCORE 12> ;"2 points"
<TELL
"on the northwest corner has been closed for several years, following an
unprofitable experiment to sell the skybus system to a private company">)
(T
<TELL "is on the northwest corner">)>
<TELL ". To the southwest is an entrance to ">
<COND (<EQUAL? ,SYEAR 2061>
<TELL "a ">
<PRINTD ,CONSTRUCTION-OBJECT>)
(<EQUAL? ,SYEAR 2071>
<TELL "luxury townhouses">)
(T
<TELL "Kennedy Park">)>
<TELL "." CR CR>
<PERFORM ,V?EXAMINE ,INFOTECH-BUILDING>
<TELL CR ,SILICORP-DESCRIPTION
" From this intersection, Main Street runs east and west, and Kennedy
Street can take you north or south.">)>>
<GLOBAL SILICORP-DESCRIPTION
"The high-rise building on the southeast corner is the Silicorp Building,
a tall office tower.">
<OBJECT SILICORP-BUILDING
(LOC MAIN-AND-KENNEDY)
(DESC "Silicorp Building")
(SYNONYM BUILDING BLDG HIGH-RISE TOWER SKYSCRAPER)
(ADJECTIVE TALL OFFICE SILICORP)
(FLAGS NDESCBIT)
(ACTION SILICORP-BUILDING-F)>
<ROUTINE SILICORP-BUILDING-F ()
<COND (<AND <VERB? THROUGH WALK-TO>
<EQUAL? ,HERE ,MAIN-AND-KENNEDY>>
<DO-WALK ,P?SE>)
(<VERB? DISEMBARK LEAVE>
<TELL ,LOOK-AROUND CR>)
(<VERB? EXAMINE>
<TELL ,SILICORP-DESCRIPTION CR>)>>
<OBJECT INFOTECH-BUILDING
(LOC MAIN-AND-KENNEDY)
(DESC "InfoTech Building")
(SYNONYM BUILDING BLDG LANDMARK TOWER SKYSCRAPER)
(ADJECTIVE INFOTECH INFO TECH TALL OFFICE FAMOUS)
(FLAGS NDESCBIT VOWELBIT)
(ACTION INFOTECH-BUILDING-F)>
<ROUTINE INFOTECH-BUILDING-F ()
<COND (<AND <VERB? THROUGH WALK-TO>
<EQUAL? ,HERE ,MAIN-AND-KENNEDY>>
<DO-WALK ,P?NE>)
(<VERB? DISEMBARK LEAVE>
<TELL ,LOOK-AROUND CR>)
(<VERB? EXAMINE>
<TELL
"The skyscraper on the northeast corner is one of Rockvil's most famous
landmarks, the ">
<PRINTD ,INFOTECH-BUILDING>
<TELL
". This 130-story office tower is the tallest building in the city and the ">
<COND (<EQUAL? ,SYEAR 2061>
<TELL "fifth">)
(<EQUAL? ,SYEAR 2071>
<TELL "third">)
(T
<TELL "sixth">)>
<TELL " tallest in the world." CR>)>>
<ROUTINE SKYBUS-TERMINAL-ENTER-F ()
<COND (<EQUAL? ,SYEAR 2071>
<SCORE 12> ;"2 points"
<TELL ,BOARDED-OVER CR>
<RFALSE>)
(T
,SKYBUS-TERMINAL)>>
<ROOM SKYBUS-TERMINAL
(LOC ROOMS)
(DESC "Skybus Terminal")
(DOWN PER TUBES-ENTER-F)
(NW SORRY "The gates are all closed.")
(SE TO MAIN-AND-KENNEDY)
(OUT TO MAIN-AND-KENNEDY)
(FLAGS ONBIT)
(GLOBAL SKYBUS-TERMINAL-OBJECT GATE STAIRS TUBE-STATION
BOARDING-PLATFORM)
(ACTION SKYBUS-TERMINAL-F)>
<ROUTINE SKYBUS-TERMINAL-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<COND (<EQUAL? ,SYEAR 2041>
<TELL
"This is part of the Commuter Skybus System (CSS), built during the 2010's by
the now-defunct Federal Energy Independence Agency. ">)
(<EQUAL? ,SYEAR 2061>
<SCORE 123> ;"1 point"
<TELL
"This station, built long ago by government funds, looks run-down
and in need of repair. ">)>
<TELL
"Skybuses depart from this terminal for many suburban points. The ">
<PRINTD ,BOARDING-PLATFORM>
<TELL
"s lie to the northwest, and the exit to the street is southeast. A stairway
leads downward.">)>>
<OBJECT BOARDING-PLATFORM
(LOC LOCAL-GLOBALS)
(DESC "boarding platform")
(SYNONYM PLATFORM)
(ADJECTIVE BOARDING)
(ACTION BOARDING-PLATFORM-F)>
<ROUTINE BOARDING-PLATFORM-F ()
<COND (<VERB? WALK-TO THROUGH>
<COND (<EQUAL? ,HERE ,SKYBUS-TERMINAL>
<DO-WALK ,P?NW>)
(<FSET? ,HERE ,TUBEBIT>
<TELL ,LOOK-AROUND CR>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,SKYBUS-TERMINAL>
<TELL ,LOOK-AROUND CR>)
(T
<V-WALK-AROUND>)>)>>
<OBJECT SKYBUS
(LOC SKYBUS-TERMINAL)
(DESC "skybus")
(SYNONYM SKYBUS)
(FLAGS NDESCBIT)
(ACTION SKYBUS-F)>
<ROUTINE SKYBUS-F ()
<COND (<VERB? THROUGH>
<DO-WALK ,P?NW>)
(<VERB? WAIT-FOR EXAMINE FIND>
<TELL
"You'd have to be on the skybus boarding platforms for that!" CR>)
(<NOT <MOBY-VERB?>>
<CANT-SEE ,SKYBUS>)>>
<OBJECT SKYBUS-TERMINAL-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "terminal")
(SYNONYM TERMINAL STATION)
(ADJECTIVE SKYBUS RUN-DOWN)
(ACTION SKYBUS-TERMINAL-OBJECT-F)>
<ROUTINE SKYBUS-TERMINAL-OBJECT-F ()
<COND (<VERB? THROUGH WALK-TO>
<COND (<EQUAL? ,HERE ,SKYBUS-TERMINAL>
<TELL ,LOOK-AROUND CR>)
(<EQUAL? ,HERE ,MAIN-AND-KENNEDY>
<DO-WALK ,P?NW>)
(<GLOBAL-IN? ,PRSO ,HERE>
<DO-WALK ,P?UP>)>)
(<VERB? DISEMBARK LEAVE>
<COND (<EQUAL? ,HERE ,SKYBUS-TERMINAL>
<V-WALK-AROUND>)
(T
<TELL ,LOOK-AROUND CR>)>)>>
<OBJECT TOWNHOUSE
(LOC LOCAL-GLOBALS)
(DESC "townhouse")
(SYNONYM TOWNHOUSE COMPLEX CLUSTER)
(ADJECTIVE LUXURY HIGH-SECURITY)
(ACTION TOWNHOUSE-F)>
<ROUTINE TOWNHOUSE-F ()
<COND (<AND <NOT <EQUAL? ,SYEAR 2071>>
<NOT <MOBY-VERB?>>>
<CANT-SEE ,TOWNHOUSE>)
(<VERB? WALK-TO THROUGH>
<COND (<EQUAL? ,HERE ,MAIN-AND-KENNEDY>
<DO-WALK ,P?SW>)
(<EQUAL? ,HERE ,ELM-AND-KENNEDY>
<DO-WALK ,P?NW>)
(<EQUAL? ,HERE ,ELM-AND-PARK>
<DO-WALK ,P?NE>)>)>>
<ROUTINE KENNEDY-PARK-ENTER-F ()
<COND (<EQUAL? ,SYEAR 2071>
<TELL "The entrances to the townhouses are all locked." CR>
<RFALSE>)
(T
,KENNEDY-PARK)>>
<ROOM KENNEDY-PARK
(LOC ROOMS)
(SDESC "")
(NORTH SORRY "There's no exit on that side of the park.")
(NE TO MAIN-AND-KENNEDY)
(EAST SORRY "There's no exit on that side of the park.")
(SE TO ELM-AND-KENNEDY)
(SOUTH SORRY "There's no exit on that side of the park.")
(SW TO ELM-AND-PARK)
(WEST SORRY "There's no exit on that side of the park.")
(NW SORRY "There's no exit on that side of the park.")
(FLAGS OUTSIDEBIT PARKBIT)
(GLOBAL PEOPLE GATE GLOBAL-SIGN WATER PARK-OBJECT CONSTRUCTION-OBJECT)
(ACTION KENNEDY-PARK-F)>
<ROUTINE KENNEDY-PARK-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<COND (<EQUAL? ,SYEAR 2041 2051>
<FSET ,KENNEDY-PARK ,NARTICLEBIT>
<PUTP ,KENNEDY-PARK ,P?SDESC "Kennedy Park">)
(T
<FCLEAR ,KENNEDY-PARK ,NARTICLEBIT>
<PUTP ,KENNEDY-PARK ,P?SDESC "Construction Site">)>)
(<EQUAL? .RARG ,M-LOOK>
<COND (<EQUAL? ,SYEAR 2061>
<SCORE 13> ;"2 points"
<TELL
"There is a construction project in progress here:" CR>
<PERFORM ,V?READ ,GLOBAL-SIGN>
<TELL
"The project is still in the early stages, with trees being torn up on one end
of the site, and digging for the foundation going on at the other end.">)
(T
<TELL
"This is a small, downtown park with gates leading northeast, southeast, and
southwest. There is a sprawling, free-form waterpool surrounding a statue
of John F. Kennedy in the center of the park.">)>)>>
<OBJECT WATERPOOL
(LOC LOCAL-GLOBALS)
(DESC "waterpool")
(SYNONYM WATERPOOL POOL FOUNTAIN)
(ADJECTIVE SPRAWLING FREE-FORM WATER)
(FLAGS NDESCBIT)
(ACTION WATERPOOL-F)>
<ROUTINE WATERPOOL-F ()
<COND (<VERB? THROUGH BOARD SWIM>
<TELL "Swimming in public fountains is illegal." CR>)
(<VERB? LOOK-INSIDE EXAMINE>
<TELL
"You look into the waters of the pool, hoping to find some coins, or
perhaps an unusual fish. However, you discover nothing of interest." CR>)>>
<OBJECT STATUE
(LOC LOCAL-GLOBALS)
(DESC "statue")
(SYNONYM STATUE KENNEDY JOHN JFK)
(ADJECTIVE JOHN FITZGERAL)
(FLAGS NDESCBIT)
(ACTION STATUE-F)>
<ROUTINE STATUE-F ()
<COND (<VERB? READ>
<PERFORM ,V?READ ,PLAQUE>
<RTRUE>)
(<VERB? EXAMINE>
<TELL
"There is a small bronze plaque at the base of the statue." CR>)>>
<OBJECT PLAQUE
(LOC LOCAL-GLOBALS)
(DESC "plaque")
(SYNONYM PLAQUE)
(ADJECTIVE SMALL BRONZE)
(FLAGS NDESCBIT READBIT)
(TEXT
" John Fitzgerald Kennedy|
1917-1963")>
<ROOM ELM-AND-PARK
(LOC ROOMS)
(DESC "Elm & Park")
(NORTH TO ROCKVIL-CENTRE)
(NE PER KENNEDY-PARK-ENTER-F)
(EAST TO ELM-AND-KENNEDY)
(SE TO POST-OFFICE)
(SOUTH TO SOUTHWAY-AND-PARK)
(SW TO POLICE-STATION)
(WEST TO ELM-AND-UNIVERSITY)
(NW PER COURTHOUSE-ENTER-F)
(GLOBAL COURTHOUSE-OBJECT PARK-OBJECT POST-OFFICE-OBJECT TOWNHOUSE
CONSTRUCTION-OBJECT GATE POLICE-STATION-OBJECT PEOPLE)
(FLAGS STREETBIT OUTSIDEBIT NARTICLEBIT)
(ACTION ELM-AND-PARK-F)>
<ROUTINE ELM-AND-PARK-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the intersection of the north-south Park Street and the
east-west Elm Street. A ">
<COND (<EQUAL? ,SYEAR 2071>
<TELL "cluster of townhouses">)
(<EQUAL? ,SYEAR 2061>
<PRINTD ,CONSTRUCTION-OBJECT>)
(T
<TELL "park entrance">)>
<TELL
" is on the northeast corner, and large, old-fashioned edifices occupy
the other three corners of the intersection.">)>>
<ROUTINE COURTHOUSE-ENTER-F ()
<COND (<OR <G? ,STIME 990>
<L? ,STIME 570>>
<CLOSED-PRINT "The courthouse">
<RFALSE>)
(T
,COURTHOUSE)>>
<ROOM COURTHOUSE
(LOC ROOMS)
(DESC "Courthouse")
(SE TO ELM-AND-PARK)
(OUT TO ELM-AND-PARK)
(FLAGS ONBIT)
(GLOBAL COURTHOUSE-OBJECT WOMAN PEOPLE)
(ACTION COURTHOUSE-F)>
<ROUTINE COURTHOUSE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "The ">
<PRINTD ,COURTHOUSE-OBJECT>
<TELL
" is of the same vintage as the other governmental buildings in the area,
dating from around 1990 or so. An exit leads southeast.">
<COND (<AND <G? ,STIME 570>
<L? ,STIME 1080>>
<TELL CR CR "The court is in session. ">
<COND (<EQUAL? ,SYEAR 2041>
<TELL "A woman is being tried for petty theft">)
(<EQUAL? ,SYEAR 2051>
<SCORE 14> ;"2 points"
<TELL
"Two men face the death penalty for attempted rape">)
(<EQUAL? ,SYEAR 2061>
<SCORE 15> ;"5 points"
<TELL
"An Asian-American juvenile has just been handed a life sentence for
violating the Uniform Morality Code">)
(<EQUAL? ,SYEAR 2071>
<SCORE 16> ;"8 points"
<TELL
"Twenty pathetic, emaciated people are being tattooed for upcoming Execution
Matches for cheating on their Food Allowance">)>
<TELL ".">)>)
(<EQUAL? .RARG ,M-END>
<SHOP-CLOSES 990 "courthouse" "A bailiff" ,ELM-AND-PARK>)>>
<OBJECT COURTHOUSE-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "courthouse")
(SYNONYM COURTHOUSE HOUSE)
(ADJECTIVE COURT)
(ACTION COURTHOUSE-OBJECT-F)>
<ROUTINE COURTHOUSE-OBJECT-F ()
<COND (<VERB? THROUGH WALK-TO>
<COND (<EQUAL? ,HERE ,COURTHOUSE>
<TELL ,LOOK-AROUND CR>)
(<GLOBAL-IN? ,PRSO ,HERE>
<DO-WALK ,P?NW>)>)
(<VERB? LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,COURTHOUSE>
<DO-WALK ,P?SE>)
(T
<TELL ,LOOK-AROUND CR>)>)
(<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,COURTHOUSE>>
<V-LOOK>)>>
<OBJECT POLICE-STATION-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "police station")
(SYNONYM STATION HEADQUARTERS HQ)
(ADJECTIVE POLICE)
(ACTION POLICE-STATION-OBJECT-F)>
<ROUTINE POLICE-STATION-OBJECT-F ()
<COND (<VERB? WALK-TO THROUGH>
<COND (<EQUAL? ,HERE ,ELM-AND-PARK>
<DO-WALK ,P?SW>)
(<GLOBAL-IN? ,POLICE-STATION-OBJECT ,HERE>
<TELL ,LOOK-AROUND CR>)>)
(<VERB? LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,POLICE-STATION>
<DO-WALK ,P?NE>)
(T
<TELL ,LOOK-AROUND CR>)>)
(<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,POLICE-STATION>>
<V-LOOK>)>>
<ROOM POLICE-STATION
(LOC ROOMS)
(DESC "Police Station")
(NE TO ELM-AND-PARK)
(EAST SORRY "You're not allowed into the cell area.")
(OUT TO ELM-AND-PARK)
(FLAGS ONBIT)
(GLOBAL JAIL-OBJECT POLICE-STATION-OBJECT DESK PEOPLE)
(ACTION POLICE-STATION-F)>
<ROUTINE POLICE-STATION-F (RARG)
<COND ;(<EQUAL? .RARG ,M-ENTER>
<MOVE ,SPEAR-CARRIER ,HERE>
<PUTP ,SPEAR-CARRIER ,P?SDESC "desk officer">
<RFALSE>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the headquarters for all the city's precinct stations. The building
is at least " N <- ,SYEAR 1966> " years old">
<COND (<EQUAL? ,SYEAR 2041>
<TELL ", but has obviously been recently renovated">)
(<EQUAL? ,SYEAR 2061 2071>
<TELL ", and is obviously ">
<COND (<EQUAL? ,SYEAR 2071>
<TELL "badly ">)>
<TELL "in need of renovation">)>
<TELL ". Behind the reception desk, ">
<COND (<EQUAL? ,SYEAR 2041 2051>
<TELL "crowded ">)
(<EQUAL? ,SYEAR 2071>
<TELL "empty ">)>
<TELL
"jail cells are visible. The desk officer looks at you expectantly.
The only exit is northeast.">)>>
<OBJECT POLICEMAN
(LOC POLICE-STATION)
(DESC "police officer")
(SYNONYM OFFICER POLICE POLICEMAN POLICEMEN COP COPS)
(ADJECTIVE POLICE DESK)
(FLAGS ACTORBIT NDESCBIT)
(ACTION POLICEMAN-F)>
<ROUTINE POLICEMAN-F ()
<COND (<EQUAL? ,POLICEMAN ,WINNER>
<TELL "\"Unless you've got a crime to report, scram.\"" CR>
<CLEAR-BUF>)
(<AND <VERB? TELL-ABOUT>
<PRSI? ,CRIME ,CRIMINAL>>
<TELL
"The officer recites a rapid sing-song about the various forms and
official channels and procedures and personnel required for the
reporting of a crime." CR>)>>
<ROUTINE I-JAIL ()
<SCORE 17> ;"10 points!"
<JIGS-UP
"After many anxious minutes, the door is yanked open, and you are dragged
before a judge, his bench draped with the banner of a Church Holyman. Your
head spins as the proceedings speed past around you. Suddenly you realize
that the judge is addressing you.|
|
\"...a sin against God, Churchmen, and your fellow animals.\" He addresses the
arresting officers. \"He's too old for the Matches. Just take him out back.\"
Seconds later you are in an alley, your face grinding into broken glass as one
of the policemen pounds you again and again and again and again with his
massive club. Finally, bleeding and barely conscious, you hear the second cop,
speaking from a great distance, say \"enough fun -- let's finish it.\" He
draws his biogun.">>
<ROOM JAIL-CELL
(LOC ROOMS)
(DESC "Jail Cell")
(LDESC
"You are in a featureless, grimy jail cell. A heavy metal door forms
the eastern wall of the cell.")
(EAST SORRY "The metal door is locked, of course.")
(OUT SORRY "The metal door is locked, of course.")
(FLAGS ONBIT)
(GLOBAL JAIL-OBJECT UNOPENABLE-DOOR)>
<OBJECT BLANKET
(LOC JAIL-CELL)
(DESC "blanket")
(FDESC "A ratty, bug-infested blanket is the only furnishing.")
(SYNONYM BLANKET)
(ADJECTIVE RATTY TORN BUG-INFESTED)
(FLAGS TAKEBIT)
(SIZE 15)
(ACTION BLANKET-F)>
<ROUTINE BLANKET-F ()
<COND (<AND <VERB? PUT-ON>
<PRSI? ,ME>>
<PERFORM ,V?BOARD ,BLANKET>
<RTRUE>)
(<VERB? EXAMINE>
<TELL "The blanket is torn and crawling with bugs." CR>)
(<VERB? BOARD LIE-DOWN CLIMB-ON WEAR>
<TELL
"You change your mind when some particularly wiggly
bugs crawl onto you." CR>)>>
<ROOM POST-OFFICE
(LOC ROOMS)
(DESC "Post Office")
(NW TO ELM-AND-PARK)
(OUT TO ELM-AND-PARK)
(FLAGS ONBIT)
(GLOBAL GLOBAL-SIGN GLOBAL-WINDOW POST-OFFICE-OBJECT COUNTER PEOPLE)
(ACTION POST-OFFICE-F)>
<ROUTINE POST-OFFICE-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<EQUAL? ,SYEAR 2061 2071>>
<QUEUE I-POST-OFFICE -1>)
(<EQUAL? .RARG ,M-LOOK>
<TELL "This is an old ">
<PRINTD ,POST-OFFICE-OBJECT>
<TELL
", probably built back in the days when \"mail\" usually meant letters
and packages delivered by human messengers. ">
<COND (<EQUAL? ,SYEAR 2041 2051>
<COND (<AND <G? ,STIME 480>
<L? ,STIME 1020>>
<TELL "A ">
<COND (<EQUAL? ,SYEAR 2041>
<TELL "couple">)
(T
<TELL "line">)>
<TELL " of people are waiting at the counter">)
(T
<TELL
"The windows are all closed for the night">)>)
(<OR <AND <EQUAL? ,SYEAR 2061>
<G? ,STIME 600>
<L? ,STIME 960>>
<AND <EQUAL? ,SYEAR 2071>
<G? ,STIME 900>
<L? ,STIME 960>>>
<SCORE 124> ;"1 point"
<TELL
"A long queue of people with resigned expressions are waiting at
the solitary open window">)
(T
<TELL
"The windows along the counter are all closed. One bears a crude,
handwritten sign that reads \"Open daily, ">
<COND (<EQUAL? ,SYEAR 2061>
<TELL "10a">)
(T
<TELL "3p">)>
<TELL "m to 4pm\"">)>
<TELL ". A doorway leads out to the northwest.">)>>
<OBJECT POST-OFFICE-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "post office")
(SYNONYM OFFICE)
(ADJECTIVE POST)
(ACTION POST-OFFICE-OBJECT-F)>
<ROUTINE POST-OFFICE-OBJECT-F ()
<COND (<VERB? THROUGH WALK-TO>
<COND (<EQUAL? ,HERE ,POST-OFFICE>
<TELL ,LOOK-AROUND CR>)
(<GLOBAL-IN? ,PRSO ,HERE>
<DO-WALK ,P?SE>)>)