Update to serial 210328
[homeland.git] / src / intro.inf
1 ! Copyright (C) 2019, 2020 Jason Self <j@jxself.org>
2 !
3 ! This file is free software: you may copy, redistribute and/or
4 ! modify it under the terms of the GNU Affero General Public License
5 ! as published by the Free Software Foundation, either version 3 of
6 ! the License, or (at your option) any later version.
7 !
8 ! This file is distributed in the hope that it will be useful, but
9 ! WITHOUT ANY WARRANTY; without even the implied warranty of
10 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ! Affero General Public License for more details.
12 !
13 ! You should have received a copy of the GNU Affero General Public
14 ! License along with this file. If not, see https://gnu.org/licenses/
15
16 Object  kitchen "Kitchen"
17   with  description 
18             "This looks like a restaurant-quality kitchen. It's small 
19             but full of natural light coming in through the large 
20             window, adding a nice sense of a warm glow. Despite the 
21             small size it has a high ceiling, and the room was set up 
22             into a rectangular shape. The layout allows for easy 
23             access. The walls are painted a buttery yellow and broken 
24             up by celery green curtains on the window. The highly 
25             polished floor ties everything together to create a 
26             feeling of comfort and elegance. It's the perfect example 
27             of well-balanced home design. The livingroom is to the 
28             east.",
29         n_to window,
30         cant_go "You walk smack into one of those buttery yellow 
31                 walls I described.",
32         e_to livingroom,
33         before [;
34           Go:
35             if (chair in player) {
36                 print_ret "The chair is too awkward to do that while 
37                           you're carrying it.";
38             }
39         ],
40   has   light;
41
42 Object  wall "wall" kitchen
43   with  name 'yellow' 'wall' 'walls',
44         description [;
45             if (location == kitchen)
46                 print
47                     "The walls are painted a buttery yellow and
48                     broken up by celery green curtains on the
49                     windows.^";
50             else
51                 print "You see nothing special about the walls.^";
52         ],
53         found_in kitchen livingroom bedroom neighborkitchen neighborlivingroom,
54   has   scenery;
55
56 Object  chair "chair" kitchen
57   with  name 'chair' 'backrest' 'seat',
58         description 
59             "It seems to be your average kitchen chair: Four chrome 
60             legs and a backrest with a yellow seat that matches the 
61             walls.",
62         before [;
63           Take:
64             move chair to player;
65             print_ret "As awkward as it is, you take the chair.";
66         ],
67   has   scenery supporter enterable;
68
69 Object  table "table" kitchen
70   with  name 'table' 'kitchen table' 'formica',
71         description 
72             "It looks like something right out of the 1950s: Green 
73             formica and chrome legs.",
74         before [;
75           Take, Pull, Push, PushDir, Turn:
76             print_ret (The) self, " is too heavy for that.";
77         ],
78   has   scenery supporter enterable;
79
80 Object  newspaper "newspaper" table
81   with  name 'newspaper' 'paper',
82         description 
83             "It's your favorite newspaper: U.S. News And Grue Report, 
84             which also airs on TV. The headline story says ~The GUE's 
85             redesigned 100 zorkmid bill makes history today, becoming 
86             the first ever zorkmid to feature a woman on the front. 
87             The bill is set to become legal tender next year, with 
88             the decision finalized by the Governor yesterday.~
89             ~I have enthusiastically embraced this bold new way of 
90             designing money, showing a woman's face. I believe this 
91             landmark achievement will stimulate public confidence in 
92             our monetary system and will help build the GUE's 
93             creative capabilities,~ the Governor said. The next 
94             story talks about how a local resident has won the 
95             carrot-growing contest for the third time in a row."; 
96
97 Object  window "window" kitchen
98   with  name 'window' 'windows',
99         description 
100             "Framed by celery green curtains it seems almost large 
101             enough to climb through.",
102         short_name [;
103             if (location == kitchen)
104                 print "window to your neighbor's back yard";
105             else
106                 print "window to your kitchen";
107             return true;
108         ],
109         found_in kitchen backyard,
110         door_dir [;
111             if (location == kitchen)
112                 return n_to;
113             else
114                 return s_to;
115         ],
116         door_to [;
117             if (location == kitchen)
118                 return backyard;
119             else
120                 return kitchen;
121         ],
122         before [;
123           Search:
124             if (curtains has open) {
125                 print "You see your neighbor's backyard.^";
126                 return true;
127             }
128             else {
129                 print "The curtains are closed, and you can't see 
130                       through them.^";
131                 return true;
132             }
133           Open:
134             if (window hasnt visited) {
135                 score = score + 1;
136                 give window visited;
137             }
138           Climb:
139             if (window hasnt visited) {
140                 score = score + 1;
141                 give window visited;
142             }
143             PlayerTo(backyard);
144         ],
145   has   scenery door openable;
146
147 Object  curtains "curtains" kitchen
148   with  name 'celery' 'green' 'curtain' 'curtains',
149         description "Celery green in color, you see nothing special 
150                     about the curtains.",
151         before [;
152           Take, Pull, Push, PushDir:
153             print_ret "Don't you think they look nice where they are?";
154         ],
155   has   scenery open openable pluralname;
156
157 Object  legs "legs" kitchen
158   with  name 'leg' 'legs',
159         found_in kitchen neighborkitchen,
160   has   scenery;
161
162 Object  livingroom "Livingroom"
163   with  description 
164             "You are in a modestly furnished living room. It's very a 
165             traditional but modern as far as the style of rooms go. It 
166             has a certain bourgeois feeling, although it doesn't seem 
167             very large. There's a couch in the middle of the room 
168             facing a television. Pictures hang from the other walls. 
169             The pictures were commissioned by your family, but a lot 
170             of people claim they painted them. You can hear the sound 
171             of vehicles driving by outside. The kitchen is to the 
172             west. The front door is to the east. Your bedroom is to 
173             the south.",
174         before [;
175           Listen:
176             print "You can hear the sound of vehicles driving by outside.^";
177             return true;
178         ],
179         n_to 
180             "Since when did you get the ability to walk through 
181             walls? The kitchen is to the west. The front door is to 
182             the east. Your bedroom is to the south.",
183         s_to bedroom,
184         w_to kitchen,
185         e_to frontdoor,
186   has   light;
187
188 Object  picture "pictures" livingroom
189   with  description 
190             "The pictures in the room consist of a landscape painting 
191             showing a strangely geometric mountain, another of a 
192             still life painting of a table laid out with a feast and 
193             the third is a portrait of an unknown man. He has a full 
194             beard, is wearing a black robe and no shoes. On his head 
195             is a large 1970s-era hard disk platter.",
196         name 'picture' 'photo' 'photos' 'frame' 'frames' 'pictures' 
197         'image' 'images',
198         Before [;
199           Take:
200             print_ret 
201                 "They look so nice, perhaps it's better to leave them 
202                 where they are.";
203         ],
204   has   scenery pluralname;
205
206 Object  man "man" livingroom
207   with  description "It's a painting of Richard Stallman dressed as 
208                     St IGNUcius.",
209         name 'man' 'disk' 'hard' 'platter' 'robe' 'rms' 'Richard' 'Stallman'
210         'robe' 'black' 'image' 'images',
211         Before [;
212           Take:
213             print_ret 
214                 "The painting looks so nice, perhaps it's better to 
215                 leave it where it is.";
216         ],
217   has   scenery;
218
219 Object  television "television" livingroom
220   with  name 'television' 'tv',
221         description 
222             "It's big, gray, and one of those old-fashioned CRT 
223             models. It looks very heavy.",
224         watch_count 0,
225         before [;
226           Listen, Examine:
227             if (television has on) {
228                 self.watch_count = self.watch_count + 1;
229                 switch (self.watch_count) {
230                   1:
231                     print 
232                         "It's big, gray, and one of those 
233                         old-fashioned CRT models. It looks very 
234                         heavy.^The TV is currently switched on. Your 
235                         favorite news program is on: U.S. News And 
236                         Grue Report.^The news anchor is saying ~In 
237                         other news, authorities continue to 
238                         investigate the missing persons case.~^";
239                     score = score + 1;
240                     return true;
241                   2:
242                     print 
243                         "The news anchor continues by saying ~We're 
244                         told the that number of missing people is now 
245                         up to as many as 5.~^";
246                     score = score + 1;
247                     return true;
248                   3:
249                     print 
250                         "The news anchor concludes their coverage by 
251                         saying ~We'll have more as the story continues 
252                         to develop.~^";
253                     score = score + 1;
254                     return true;
255                   default:
256                     print 
257                         "It's big, gray, and one of those 
258                         old-fashioned CRT models. It looks very 
259                         heavy.^The TV is currently switched on. Your 
260                         favorite news program is on: U.S. News And 
261                         Grue Report.^";
262                     return true;
263                 }
264             }
265             ;
266           Take, Pull, Push, PushDir:
267             print_ret (The) self, " is too heavy for that.";
268         ],
269         after [;
270           SwitchOn:
271             print 
272                 "The television comes to life. Your favorite news 
273                 program is on: U.S. News And Grue Report.^";
274             if (television hasnt visited) {
275                 score = score + 1;
276                 give television visited;
277             }
278             return true;
279         ],
280   has   scenery static switchable;
281
282 Object  couch "couch" livingroom
283   with  name 'couch' 'sofa',
284         description 
285             "It looks like a throwback from the 1970s but has held up 
286             very well.",
287         before [;
288           Take, Pull, Push, PushDir:
289             print_ret (The) self, " is too heavy for that.";
290         ],
291         after [;
292           Enter:
293             print 
294                  "The couch makes a nauseating, high-pitched groan as 
295                  your weight is added.^";
296             return true;
297           Exit, GetOff:
298             print "The couch makes a muted snort as your weight is removed.^";
299             return true;
300         ],
301   has   scenery static supporter enterable;
302
303 Object  frontdoor "front door" livingroom
304   with  name 'door' 'front',
305         description 
306             "Cinnamon brown in color it appears to be a very solid 
307             and hefty door.",
308         short_name [;
309             if (location == livingroom)
310                 print "door to the outside";
311             else
312                 print "door to your house";
313             return true;
314         ],
315         found_in livingroom sidewalk,
316         door_dir [;
317             if (location == sidewalk)
318                 return w_to;
319             else
320                 return e_to;
321         ],
322         door_to [;
323             if (location == sidewalk)
324                 return livingroom;
325             else
326                 return sidewalk;
327         ],
328   has   scenery door openable;
329
330 Object  bedroom "Bedroom"
331   with  description 
332             "You walk through the door and find yourself in your own 
333             bedroom, which was once used by your grandmother. This 
334             room was designed in a renaissance style by a master 
335             decorator. It has a certain sense of extravagance, with 
336             ornate inlaid walls in a variety of complimentary colors 
337             that form exquisite patterns, with gold and marble 
338             highlights. The fully-decorated bed looks very comfortable 
339             - it projects a very light, airy feeling that's perfect 
340             for sleeping and adds to the sense of luxury. On the wall 
341             across from your bed is a large painting. The livingroom 
342             is to the north.",
343         n_to livingroom,
344         cant_go 
345             "Since when did you get the ability to walk through 
346             walls? Your livingroom is to the north.",
347   has   light;
348
349 Object  painting "painting" bedroom
350   with  description 
351             "It's a picture of Aragain Falls, the most breathtaking 
352             and awesome waterfall in the known lands.",
353         before [;
354           Insert:
355             if (second == box)
356                 print_ret (The) self, " is too big to fit.";
357         ],
358         name 'painting' 'paint' 'picture' 'of' 'aragain' 'falls',
359   has   scenery;
360
361 Object  bed "bed" bedroom
362   with  name 'bed' 'twin',
363         description 
364             "With a frame of solid wood with a golden brown finish, 
365             it's a finely crafted bed.",
366         before [;
367           Take, Pull, Push, PushDir:
368             print_ret (The) self, " is too heavy for that.";
369         ],
370   has   scenery static supporter enterable;
371
372 Object  box "dented steel box" bed
373   with  name 'box' 'safe' 'safety' 'deposit',
374         description 
375             "It's a safety deposit box. Made of steel, and dented, 
376             the words ~Property Of The Bank of Zork~ are on it.",
377   has   container openable;
378
379 Object  directional "compass" box
380   with  name 'compass',
381         description [;
382             if (location == livingroom || location == sidewalk) {
383                 print "The compass is pointing west.^";
384                 rtrue;
385             }
386             if (location == frontporch) {
387                 print "The compass is pointing southeast.^";
388                 rtrue;
389             }
390             else
391                 print 
392                     "Ordinarily you'd expect a compass to point north
393                     but this one is spinning wildly in every
394                     direction.^";
395         ],
396         ;
397
398 Object  grandlivingroom "Grand Livingroom"
399   with  description [;
400             if (grandlivingroom has visited) {
401                 print 
402                     "This time there's no sign of the woman but the 
403                     guards she called for are here. They grab & arrest 
404                     you. Perhaps you should have listened.^";
405             }
406             if (grandlivingroom hasnt visited) {
407                 print 
408                     "Feeling a little disoriented as you enter, this 
409                     doesn't seem like the same place: The interior 
410                     feels very open. Walls of pine extend upward to a 
411                     ceiling soaring above this two-story height 
412                     livingroom with windows extending all the way up 
413                     the walls, providing an abundance of sunlight for 
414                     the space. The ceiling is painted with soft moss 
415                     on a deep silver background creating an inviting 
416                     effect. A wide doorway on the other side of the 
417                     room leads to a wide balcony, providing a perfect 
418                     view of the garden and pond beyond it. As you 
419                     begin to take in the bold colors of this lavish 
420                     room a woman comes out of one of the walkways on 
421                     the other end. Dressed in a stunning red and blue 
422                     gown she seems a combination of surprised and 
423                     startled to see you. ~Who are you? Why are you 
424                     here?~ she asks, demandingly. Not giving time for 
425                     a response she yells for the guards. I don't know 
426                     where we are but I think now would be a good time 
427                     to leave.^";
428             }
429         ],
430                 each_turn [;
431                 guardscalled = guardscalled + 1;
432                 if (guardscalled == 1)
433                     PlayerTo(neighborlivingroom);
434                 else
435                     if (guardscalled == 2) {
436                         deadflag = 3;
437                     }
438         ],
439   has   light;
440
441 Object  Sidewalk "Sidewalk"
442   with  description 
443             "You are standing on the sidewalk in front of your house. 
444             The street is normally quiet, but it's been very busy 
445             and crowded today, like trying to get through a busy movie 
446             theater, and the sound of the traffic has been 
447             particularly noticeable. The traffic is a good sign of 
448             what's going on in the city as a whole today. It is barely 
449             cloudy and already hot this morning. Smaller branches of 
450             trees are in motion from the light wind, which helps to 
451             provide some relief from the heat. Your home is to the 
452             west. Your neighbor's home is to the northwest.",
453         n_to 
454             "Some inconsiderate person parked their car on the 
455             sidewalk which blocks your path. It might be nice to call 
456             Parking Enforcement so they can get a ticket for creating 
457             an obstruction but you don't have a phone.",
458         s_to 
459             "You arrive at an intersection. Lots of traffic drives 
460             past at high speed creating a small breeze that makes your 
461             shirt ripple. You decide it is better to not risk being 
462             run over and go back.",
463         e_to 
464             "As you start to step out into the street a car quickly 
465             zooms by at high speed. You jump back to avoid becoming 
466             part of the pavement.",
467         se_to 
468             "As you start to step out into the street a car honks 
469             impatiently for you to get out of the way. You go back to 
470             your old spot.",
471         ne_to 
472             "The street is very busy. Surely you'd be hit by a moving 
473             vehicle if you went there.",
474         nw_to frontporch,
475         sw_to "A rock wall blocks your path.",
476         w_to frontdoor,
477   has   light;
478
479 Object  street "street" sidewalk
480   with  name 'street' 'road',
481         description "It's your typical street.",
482   has   scenery;
483
484 Object  rockwall "rock wall" sidewalk
485   with  name 'rock' 'wall' 'stone' 'rock' 'boulder' 'stonework' 
486         'cobblestone' 'mortar' 'stones' 'rocks' 'walls',
487          description 
488             "Made up of assorted stones of various sizes and shapes, 
489             with a healthy dose of mortar between them to fill and 
490             seal the irregular gaps between them, it serves as a wall 
491             separating your property from someone else's.",
492   has   scenery;
493
494 Object  car "car" sidewalk
495   with  name 'car' 'vehicle' 'automobile',
496         description 
497             "It's a white two-door car. The license plate holder says 
498             FrobozzCo International.",
499         before [;
500           Unlock:
501             print_ret "The car is locked, and there is apparently no key.";
502           Open:
503             print_ret "The car is locked, and there is apparently no key.";
504           Climb:
505             print_ret 
506                 "I'm not sure that FrobozzCo International would 
507                 appreciate people climbing on one of their cars.";
508           Take:
509             print_ret 
510                 "I doubt that FrobozzCo International would 
511                 appreciate someone taking one of their cars.";
512           Pull, Push, PushDir, Turn:
513             print_ret (The) self, " is too heavy for that.";
514         ],
515   has   scenery;
516
517 Object  licenseplateframe "license plate holder" sidewalk
518   with  name 'license' 'plate' 'frame' 'holder',
519         description "It says FrobozzCo International in white letters 
520                     on a black frame.",
521         Before [;
522           Take, Pull, Push, PushDir, Turn:
523             print_ret (The) self, " is firmly attached to the car.";
524         ],
525   has   scenery;
526
527 Object  frontporch "Front Porch"
528   with  description 
529             "You are on your neighbor's front porch. It consists of a 
530             coffee brown wooden floor connected to and surrounded a 
531             parchment white wooden fence. The fence is obviously new 
532             and looks great. It's tall enough to make climbing it 
533             impossible. The design of the porch places the focus on 
534             the front door. A deep red color, the door is large, high 
535             quality and has no window. It has a shiny brass handle, 
536             which appears very sturdy. There's an opening to the 
537             southwest toward the sidewalk. Their front door is to the 
538             west.",
539         cant_go "That parchment white wooden fence is too high to get over.",
540         se_to sidewalk,
541         w_to neighbordoor,
542   has   light;
543
544 Object  neighbordoor "front door" frontporch
545   with  name 'door' 'front' 'red',
546         description "The door is large and high quality. A deep red 
547                     color it has no window and a shiny brass handle, 
548                     which appears to be very sturdy.",
549         found_in frontporch neighborlivingroom,
550         door_dir [;
551             if (location == frontporch)
552                 return w_to;
553             else
554                 return e_to;
555         ],
556         door_to [;
557             if (location == frontporch)
558                 return neighborlivingroom;
559             else
560                 return frontporch;
561         ],
562   has   scenery door openable;
563
564 Object  brasshandle "brass door handle" frontporch
565   with  name 'brass' 'handle',
566         found_in frontporch neighborlivingroom,
567   has   scenery;
568
569 Object  fence "wooden fence" frontporch
570   with  name 'fence' 'wooden' 'wood',
571         found_in backyard frontporch,
572   has   scenery;
573
574 Object  neighborlivingroom "Neighbor's Livingroom"
575   with  description 
576             "You are in your neighbor's livingroom. It seems that no 
577             one has lived here in a long time, even though you saw 
578             your neighbor here last week. All of the furniture has 
579             been removed and the air smells stale. A large bay window 
580             enclosed by sheer cobalt blue curtains allowing light to 
581             come through. A door is to the east.^^A machine as tall as 
582             you sits in the center of their livingroom. It consists 
583             of three transparent spheres joined together containing 
584             machinery. A barrel with a small aperture comes out of the 
585             farthest sphere, pointing down and to the wall. The 
586             entire thing rests on a shiny metal platform allowing it 
587             to rotate and tilt with ease.",
588         w_to neighborkitchen,
589         e_to neighbordoor,
590         before [;
591           Go:
592             if (bluebutton has on && poker notin machine) {
593                 machine.shoot();
594                 rtrue;
595             }
596         ],
597   has   light;
598
599 Object  neighborwindow "window" neighborlivingroom
600   with  name 'large' 'bay' 'window' 'windows',
601         description "A large bay window enclosed by sheer cobalt blue 
602                     curtains allowing light to come through.",
603         before [;
604           Go:
605             print_ret "The window is not something you can go through.";
606           Open, Close:
607             print_ret "This isn't the type of window that can be 
608                       opened or closed.";
609         ],
610   has   scenery;
611
612 Object  neighborcurtains "curtains" neighborlivingroom
613   with  name 'cobalt' 'blue' 'curtain' 'curtains',
614         description 
615             "Cobalt blue in color, the curtains have been decorated with 
616             intricate embroidery.",
617         before [;
618           Take, Pull, Push, PushDir:
619             print_ret "Don't you think they look nice where they are?";
620         ],
621   has   scenery openable pluralname;
622
623 Object  embroidery "embroidery" neighborlivingroom
624   with  name 'embroidery' 'pattern' 'patterns',
625   has   scenery;
626
627 Object  redbutton "red button" neighborlivingroom
628   with  name 'red' 'red button' 'button' 'buttons',
629         before [;
630           Push:
631             if (bluebutton has on && poker notin machine) {
632                 print 
633                     "You reach for the red button, but not in 
634                     time...^ ";
635                 machine.shoot();
636                 rtrue;
637             }
638             if (poker in machine)
639                 print_ret 
640                     "You press the red button but it's futile because 
641                     the machine's shorted out.";
642             else {
643                 print 
644                     "You push the red button. The machine makes clunky 
645                     noises as machinery moves inside. A loud humming 
646                     begins to emanate from it. It comes to life, spins 
647                     around on its base, aims, and quickly fires a 
648                     series of three bright blue sparks at you. You 
649                     hear a small explosive sound as they impact your 
650                     chest. You feel a little disoriented as it 
651                     teleports you away.^";
652                 move box to bed ;
653                 move directional to box ;
654                 move newspaper to table ;
655                 move letter to island ;
656                 move poker to fireplace ;
657                 PlayerTo(campsite);
658                 rtrue;
659             }
660         ],
661   has   scenery;
662
663 Object  bluebutton "blue button" neighborlivingroom
664   with  name 'blue' 'blue button' 'button' 'buttons',
665         before [;
666           Push:
667             if (bluebutton has on) {
668                 if (poker notin machine) {
669                     print 
670                         "You reach for the blue button, but not 
671                         in time...^ ";
672                     machine.shoot();
673                     rtrue;
674                 }
675                 else {
676                     give bluebutton ~on;
677                     print_ret "You push the blue button. The machine 
678                     sounds like it powers down.";
679                 }
680             }
681             else {
682                 give bluebutton on;
683                 if (poker notin machine) {
684                     machine.shoot();
685                     rtrue;
686                 }
687                 print_ret "You push the blue button.";
688             }
689         ],
690   has   scenery on;
691
692 Object  machine "machine" neighborlivingroom
693   with  name 'machine' 'machinery' 'sphere' 'spheres' 'platform' 'barrel'
694         'aperture' 'metal platform' 'shiny metal platform' 'shiny platform'
695         'shiny' 'metal',
696         description 
697             "It consists of three transparent spheres joined together 
698             containing machinery. A barrel with a small aperture comes 
699             out of the farthest sphere, pointing down and to the wall. 
700             The entire thing rests on a shiny metal platform allowing 
701             it to rotate and tilt with ease. There is a blue button 
702             and a red button.",
703         time_left,
704         before [ weapon;
705           Attack:
706             if (noun == self)
707                 weapon = second;
708             else
709                 weapon = noun;
710             if (weapon ~= poker) {
711                 print "That wasn't helpful.^";
712                 if (bluebutton has on)
713                     self.shoot();
714                 rtrue;
715             }
716             self.shortout();
717             return true;
718           Receive:
719             if (noun == poker) {
720                 self.shortout();
721                 return true;
722             }
723             if (bluebutton has on)
724                 self.shoot();
725             rtrue;
726         ],
727         time_out [;
728             if (poker in self)
729                 StopTimer(machine);
730             else
731                 if (bluebutton has on)
732                     self.shoot();
733         ],
734         daemon [;
735             if (poker in player)
736                 rfalse;
737             if (player in parent(self) && poker notin machine)
738                 self.shoot();
739         ],
740         shoot [ destination;
741             destination = random(3);
742             print 
743                 "^A loud humming begins to emanate from the machine. 
744                 It comes to life, spins around on its base, aims, and 
745                 quickly fires a series of three bright blue sparks at 
746                 you. You hear a small explosive sound as they impact 
747                 your chest. You feel a little disoriented as it 
748                 teleports you away.^";
749             if (destination == 1)
750                 PlayerTo(kitchen);
751             if (destination == 2)
752                 PlayerTo(livingroom);
753             if (destination == 3)
754                 PlayerTo(bedroom);
755         ],
756         shortout [;
757             if (machine hasnt visited) {
758                 score = score + 1;
759                 give machine visited;
760             }
761             move poker to self;
762             print "You put the poker into ", (the) self, 
763                 ". Sparks 
764                 fly wildly in every direction as it shorts out.^";
765         ],
766   has   scenery container open;
767
768 Object  backyard "Back Yard"
769   with  description 
770             "You are in your neighbor's back yard. It is barely cloudy 
771             and already hot this morning. Some shade from the sun 
772             would be nice but the closest tree is at the sidewalk, on 
773             the other side of the building and the sun is causing all 
774             of the shadows to go in the wrong direction. The healthy, 
775             dark green grass is well manicured. It looks like a nice 
776             place. You hear some dogs barking in the distance. A high 
777             wooden fence encompasses the area, painted a burnt umber. 
778             Their back door is to the east. Your kitchen window is to 
779             the south.",
780         before [;
781           Go:
782             if (noun == s_obj) {
783                 print 
784                     "Climbing over the fence you squeeze back through 
785                     your kitchen window.^";
786             }
787         ],
788         s_to window,
789         n_to "Their fence is too high to climb over in that direction.",
790         e_to backdoor,
791         w_to "Their fence is too high to climb over in that direction.",
792   has   light;
793
794 Object  leaves "leaves" backyard
795   with  name 'leaf' 'leaves',
796         found_in backyard sidewalk,
797   has   scenery;
798
799 Object  scratches "scratches" backyard
800   with  name 'scratch' 'scratches' 'mark' 'marks' 'marking' 'markings',
801         found_in backyard neighborkitchen,
802   has   scenery;
803
804 Object  house "neighbor's house" backyard
805   with  name 'neighbor' 'neighbors' 'house' 'home' 'building',
806         found_in backyard frontporch kitchen sidewalk,
807   has   scenery;
808
809 Object  backdoor "back door" backyard
810   with  name 'door' 'back' 'backdoor',
811         description 
812             "Burgundy in color it seems a solid and hefty door. It 
813             has scratches along the bottom, as if from a pet long 
814             forgotten.",
815         short_name [;
816             if (location == backyard)
817                 print "door to your neighbor's house";
818             else
819                 print "door to the back yard";
820             return true;
821         ],
822         found_in backyard neighborkitchen,
823         door_dir [;
824             if (location == backyard)
825                 return e_to;
826             else
827                 return w_to;
828         ],
829         door_to [;
830             if (location == backyard)
831                 return neighborkitchen;
832             else
833                 return backyard;
834         ],
835   has   scenery door openable;
836
837 Object  neighborkitchen "Kitchen"
838   with  description 
839             "You are in your neighbor's kitchen. It's a large 
840              contemporary kitchen with an open design and many flat 
841              surfaces. The color palette is very bright and in 
842              perfect harmony with the kitchen. It's timeless and 
843              beautiful. The walls look like they've been used to 
844              store things, with some faint outlines remaining that 
845              gives a lived-in look. It could have been a luxury 
846              cooking environment, though by now everything has been 
847              removed. Only the kitchen island and fireplace remain in 
848              stark contrast to the bare kitchen. The livingroom is to 
849              the east. The door to the back yard is to the west.",
850         e_to neighborlivingroom,
851         w_to backyard,
852   has   light;
853
854 Object  island "kitchen island" neighborkitchen
855   with  name 'kitchen' 'island' 'table' 'wood' 'wooden' 'top' 'wood',
856         description 
857             "It has metal legs firmly embedded into the floor, and a 
858             wooden top. Strangely, all of the drawers have been 
859             removed.",
860         before [;
861           Take, Pull, Push, PushDir, Turn:
862             print_ret "The kitchen island is firmly planted in the floor.";
863         ],
864   has   scenery supporter enterable;
865
866 Object  brick "brick" neighborkitchen
867   with  name 'brick' 'bricks' 'mortar',
868         description 
869             "You find nothing special about the bricks that make up 
870             the fireplace.",
871   has   scenery;
872
873 Object  fireplace "fireplace" neighborkitchen
874   with  name 'fireplace' 'fire' 'place' 'mouth',
875         description [;
876             print 
877                 "A stain is splayed against the brick fireplace, 
878                 making its curved mouth appear like a black, toothless 
879                 scream. A confection of ashes occupy the fireplace";
880             if (poker in self)
881                 print 
882                     ", and a poker hangs out which looks like it 
883                     could make an effective weapon";
884             print ".";
885             new_line;
886         ],
887   has   scenery container transparent open;
888
889 Object  poker "poker" fireplace
890   with  name 'poker',
891         description 
892             "This poker may have once been used to expedite the 
893             flame's envelopment, as well as the house's many stories 
894             and secrets.",
895         before [;
896           Take, Pull, Push, PushDir, Remove:
897             give poker ~concealed;
898             if (poker hasnt visited) {
899                 score = score + 1;
900                 give poker visited;
901                 }
902             if (player in neighborlivingroom) {
903                 if (bluebutton has on)
904                     machine.shoot();
905             }
906         ],
907   has   concealed;
908
909 Object  ashes "ashes" fireplace
910   with  name 'ash' 'ashes',
911         description "It looks like a pile of ash.",
912         before [;
913           Take, Pull, Push, PushDir:
914             print_ret "The ashes are so fine they fall between your fingers.";
915         ],
916   has   concealed pluralname;
917
918 Object  stain "stain" fireplace
919   with  name 'stain',
920   has   scenery;
921
922 Object  mouth "mouth of the fireplace" fireplace
923   with  name 'mouth',
924   has   scenery;
925
926 Object  letter "letter" island
927   with  name 'letter',
928         description 
929             "The letter reads: ~Thank you for evaluating this 
930             prototype of the Frobozz Magic Teleporter. Please refer to 
931             the enclosed manual to learn how to program destinations 
932             in to your teleporter. Pressing the red button recalls the 
933             last-used destination and teleports you there. Pressing 
934             the blue button engages Defense Mode, which instantly 
935             whisks intruders away. Use it to provide defense for any 
936             location! Please send feedback about this prototype to 
937             your local FrobozzCo International sales person. Warning: 
938             Side effects can include disorientation, loss of memory, 
939             lightheadedness, loss of appetite, nausea, vomiting, 
940             weakness, and death.~";