Update to serial 210328
[homeland.git] / src / intro.inf
diff --git a/src/intro.inf b/src/intro.inf
new file mode 100644 (file)
index 0000000..e33f63c
--- /dev/null
@@ -0,0 +1,940 @@
+! Copyright (C) 2019, 2020 Jason Self <j@jxself.org>
+!
+! This file is free software: you may copy, redistribute and/or
+! modify it under the terms of the GNU Affero General Public License
+! as published by the Free Software Foundation, either version 3 of
+! the License, or (at your option) any later version.
+!
+! This file is distributed in the hope that it will be useful, but
+! WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+! Affero General Public License for more details.
+!
+! You should have received a copy of the GNU Affero General Public
+! License along with this file. If not, see https://gnu.org/licenses/
+
+Object  kitchen "Kitchen"
+  with  description 
+            "This looks like a restaurant-quality kitchen. It's small 
+            but full of natural light coming in through the large 
+            window, adding a nice sense of a warm glow. Despite the 
+            small size it has a high ceiling, and the room was set up 
+            into a rectangular shape. The layout allows for easy 
+            access. The walls are painted a buttery yellow and broken 
+            up by celery green curtains on the window. The highly 
+            polished floor ties everything together to create a 
+            feeling of comfort and elegance. It's the perfect example 
+            of well-balanced home design. The livingroom is to the 
+            east.",
+        n_to window,
+        cant_go "You walk smack into one of those buttery yellow 
+                walls I described.",
+        e_to livingroom,
+        before [;
+          Go:
+            if (chair in player) {
+                print_ret "The chair is too awkward to do that while 
+                          you're carrying it.";
+            }
+        ],
+  has   light;
+
+Object  wall "wall" kitchen
+  with  name 'yellow' 'wall' 'walls',
+        description [;
+            if (location == kitchen)
+                print
+                    "The walls are painted a buttery yellow and
+                    broken up by celery green curtains on the
+                    windows.^";
+            else
+                print "You see nothing special about the walls.^";
+        ],
+        found_in kitchen livingroom bedroom neighborkitchen neighborlivingroom,
+  has   scenery;
+
+Object  chair "chair" kitchen
+  with  name 'chair' 'backrest' 'seat',
+        description 
+            "It seems to be your average kitchen chair: Four chrome 
+            legs and a backrest with a yellow seat that matches the 
+            walls.",
+        before [;
+          Take:
+            move chair to player;
+            print_ret "As awkward as it is, you take the chair.";
+        ],
+  has   scenery supporter enterable;
+
+Object  table "table" kitchen
+  with  name 'table' 'kitchen table' 'formica',
+        description 
+            "It looks like something right out of the 1950s: Green 
+            formica and chrome legs.",
+        before [;
+          Take, Pull, Push, PushDir, Turn:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+  has   scenery supporter enterable;
+
+Object  newspaper "newspaper" table
+  with  name 'newspaper' 'paper',
+        description 
+            "It's your favorite newspaper: U.S. News And Grue Report, 
+            which also airs on TV. The headline story says ~The GUE's 
+            redesigned 100 zorkmid bill makes history today, becoming 
+            the first ever zorkmid to feature a woman on the front. 
+            The bill is set to become legal tender next year, with 
+            the decision finalized by the Governor yesterday.~
+            ~I have enthusiastically embraced this bold new way of 
+            designing money, showing a woman's face. I believe this 
+            landmark achievement will stimulate public confidence in 
+            our monetary system and will help build the GUE's 
+            creative capabilities,~ the Governor said. The next 
+            story talks about how a local resident has won the 
+            carrot-growing contest for the third time in a row."; 
+
+Object  window "window" kitchen
+  with  name 'window' 'windows',
+        description 
+            "Framed by celery green curtains it seems almost large 
+            enough to climb through.",
+        short_name [;
+            if (location == kitchen)
+                print "window to your neighbor's back yard";
+            else
+                print "window to your kitchen";
+            return true;
+        ],
+        found_in kitchen backyard,
+        door_dir [;
+            if (location == kitchen)
+                return n_to;
+            else
+                return s_to;
+        ],
+        door_to [;
+            if (location == kitchen)
+                return backyard;
+            else
+                return kitchen;
+        ],
+        before [;
+          Search:
+            if (curtains has open) {
+                print "You see your neighbor's backyard.^";
+                return true;
+            }
+            else {
+                print "The curtains are closed, and you can't see 
+                      through them.^";
+                return true;
+            }
+          Open:
+            if (window hasnt visited) {
+                score = score + 1;
+                give window visited;
+            }
+          Climb:
+            if (window hasnt visited) {
+                score = score + 1;
+                give window visited;
+            }
+            PlayerTo(backyard);
+        ],
+  has   scenery door openable;
+
+Object  curtains "curtains" kitchen
+  with  name 'celery' 'green' 'curtain' 'curtains',
+        description "Celery green in color, you see nothing special 
+                    about the curtains.",
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret "Don't you think they look nice where they are?";
+        ],
+  has   scenery open openable pluralname;
+
+Object  legs "legs" kitchen
+  with  name 'leg' 'legs',
+        found_in kitchen neighborkitchen,
+  has   scenery;
+
+Object  livingroom "Livingroom"
+  with  description 
+            "You are in a modestly furnished living room. It's very a 
+            traditional but modern as far as the style of rooms go. It 
+            has a certain bourgeois feeling, although it doesn't seem 
+            very large. There's a couch in the middle of the room 
+            facing a television. Pictures hang from the other walls. 
+            The pictures were commissioned by your family, but a lot 
+            of people claim they painted them. You can hear the sound 
+            of vehicles driving by outside. The kitchen is to the 
+            west. The front door is to the east. Your bedroom is to 
+            the south.",
+        before [;
+          Listen:
+            print "You can hear the sound of vehicles driving by outside.^";
+            return true;
+        ],
+        n_to 
+            "Since when did you get the ability to walk through 
+            walls? The kitchen is to the west. The front door is to 
+            the east. Your bedroom is to the south.",
+        s_to bedroom,
+        w_to kitchen,
+        e_to frontdoor,
+  has   light;
+
+Object  picture "pictures" livingroom
+  with  description 
+            "The pictures in the room consist of a landscape painting 
+            showing a strangely geometric mountain, another of a 
+            still life painting of a table laid out with a feast and 
+            the third is a portrait of an unknown man. He has a full 
+            beard, is wearing a black robe and no shoes. On his head 
+            is a large 1970s-era hard disk platter.",
+        name 'picture' 'photo' 'photos' 'frame' 'frames' 'pictures' 
+        'image' 'images',
+        Before [;
+          Take:
+            print_ret 
+                "They look so nice, perhaps it's better to leave them 
+                where they are.";
+        ],
+  has   scenery pluralname;
+
+Object  man "man" livingroom
+  with  description "It's a painting of Richard Stallman dressed as 
+                    St IGNUcius.",
+        name 'man' 'disk' 'hard' 'platter' 'robe' 'rms' 'Richard' 'Stallman'
+        'robe' 'black' 'image' 'images',
+        Before [;
+          Take:
+            print_ret 
+                "The painting looks so nice, perhaps it's better to 
+                leave it where it is.";
+        ],
+  has   scenery;
+
+Object  television "television" livingroom
+  with  name 'television' 'tv',
+        description 
+            "It's big, gray, and one of those old-fashioned CRT 
+            models. It looks very heavy.",
+        watch_count 0,
+        before [;
+          Listen, Examine:
+            if (television has on) {
+                self.watch_count = self.watch_count + 1;
+                switch (self.watch_count) {
+                  1:
+                    print 
+                        "It's big, gray, and one of those 
+                        old-fashioned CRT models. It looks very 
+                        heavy.^The TV is currently switched on. Your 
+                        favorite news program is on: U.S. News And 
+                        Grue Report.^The news anchor is saying ~In 
+                        other news, authorities continue to 
+                        investigate the missing persons case.~^";
+                    score = score + 1;
+                    return true;
+                  2:
+                    print 
+                        "The news anchor continues by saying ~We're 
+                        told the that number of missing people is now 
+                        up to as many as 5.~^";
+                    score = score + 1;
+                    return true;
+                  3:
+                    print 
+                        "The news anchor concludes their coverage by 
+                        saying ~We'll have more as the story continues 
+                        to develop.~^";
+                    score = score + 1;
+                    return true;
+                  default:
+                    print 
+                        "It's big, gray, and one of those 
+                        old-fashioned CRT models. It looks very 
+                        heavy.^The TV is currently switched on. Your 
+                        favorite news program is on: U.S. News And 
+                        Grue Report.^";
+                    return true;
+                }
+            }
+            ;
+          Take, Pull, Push, PushDir:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+        after [;
+          SwitchOn:
+            print 
+                "The television comes to life. Your favorite news 
+                program is on: U.S. News And Grue Report.^";
+            if (television hasnt visited) {
+                score = score + 1;
+                give television visited;
+            }
+            return true;
+        ],
+  has   scenery static switchable;
+
+Object  couch "couch" livingroom
+  with  name 'couch' 'sofa',
+        description 
+            "It looks like a throwback from the 1970s but has held up 
+            very well.",
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+        after [;
+          Enter:
+            print 
+                 "The couch makes a nauseating, high-pitched groan as 
+                 your weight is added.^";
+            return true;
+          Exit, GetOff:
+            print "The couch makes a muted snort as your weight is removed.^";
+            return true;
+        ],
+  has   scenery static supporter enterable;
+
+Object  frontdoor "front door" livingroom
+  with  name 'door' 'front',
+        description 
+            "Cinnamon brown in color it appears to be a very solid 
+            and hefty door.",
+        short_name [;
+            if (location == livingroom)
+                print "door to the outside";
+            else
+                print "door to your house";
+            return true;
+        ],
+        found_in livingroom sidewalk,
+        door_dir [;
+            if (location == sidewalk)
+                return w_to;
+            else
+                return e_to;
+        ],
+        door_to [;
+            if (location == sidewalk)
+                return livingroom;
+            else
+                return sidewalk;
+        ],
+  has   scenery door openable;
+
+Object  bedroom "Bedroom"
+  with  description 
+            "You walk through the door and find yourself in your own 
+            bedroom, which was once used by your grandmother. This 
+            room was designed in a renaissance style by a master 
+            decorator. It has a certain sense of extravagance, with 
+            ornate inlaid walls in a variety of complimentary colors 
+            that form exquisite patterns, with gold and marble 
+            highlights. The fully-decorated bed looks very comfortable 
+            - it projects a very light, airy feeling that's perfect 
+            for sleeping and adds to the sense of luxury. On the wall 
+            across from your bed is a large painting. The livingroom 
+            is to the north.",
+        n_to livingroom,
+        cant_go 
+            "Since when did you get the ability to walk through 
+            walls? Your livingroom is to the north.",
+  has   light;
+
+Object  painting "painting" bedroom
+  with  description 
+            "It's a picture of Aragain Falls, the most breathtaking 
+            and awesome waterfall in the known lands.",
+        before [;
+          Insert:
+            if (second == box)
+                print_ret (The) self, " is too big to fit.";
+        ],
+        name 'painting' 'paint' 'picture' 'of' 'aragain' 'falls',
+  has   scenery;
+
+Object  bed "bed" bedroom
+  with  name 'bed' 'twin',
+        description 
+            "With a frame of solid wood with a golden brown finish, 
+            it's a finely crafted bed.",
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+  has   scenery static supporter enterable;
+
+Object  box "dented steel box" bed
+  with  name 'box' 'safe' 'safety' 'deposit',
+        description 
+            "It's a safety deposit box. Made of steel, and dented, 
+            the words ~Property Of The Bank of Zork~ are on it.",
+  has   container openable;
+
+Object  directional "compass" box
+  with  name 'compass',
+        description [;
+            if (location == livingroom || location == sidewalk) {
+                print "The compass is pointing west.^";
+                rtrue;
+            }
+            if (location == frontporch) {
+                print "The compass is pointing southeast.^";
+                rtrue;
+            }
+            else
+                print 
+                    "Ordinarily you'd expect a compass to point north
+                    but this one is spinning wildly in every
+                    direction.^";
+        ],
+        ;
+
+Object  grandlivingroom "Grand Livingroom"
+  with  description [;
+            if (grandlivingroom has visited) {
+                print 
+                    "This time there's no sign of the woman but the 
+                    guards she called for are here. They grab & arrest 
+                    you. Perhaps you should have listened.^";
+            }
+            if (grandlivingroom hasnt visited) {
+                print 
+                    "Feeling a little disoriented as you enter, this 
+                    doesn't seem like the same place: The interior 
+                    feels very open. Walls of pine extend upward to a 
+                    ceiling soaring above this two-story height 
+                    livingroom with windows extending all the way up 
+                    the walls, providing an abundance of sunlight for 
+                    the space. The ceiling is painted with soft moss 
+                    on a deep silver background creating an inviting 
+                    effect. A wide doorway on the other side of the 
+                    room leads to a wide balcony, providing a perfect 
+                    view of the garden and pond beyond it. As you 
+                    begin to take in the bold colors of this lavish 
+                    room a woman comes out of one of the walkways on 
+                    the other end. Dressed in a stunning red and blue 
+                    gown she seems a combination of surprised and 
+                    startled to see you. ~Who are you? Why are you 
+                    here?~ she asks, demandingly. Not giving time for 
+                    a response she yells for the guards. I don't know 
+                    where we are but I think now would be a good time 
+                    to leave.^";
+            }
+        ],
+                each_turn [;
+                guardscalled = guardscalled + 1;
+                if (guardscalled == 1)
+                    PlayerTo(neighborlivingroom);
+                else
+                    if (guardscalled == 2) {
+                        deadflag = 3;
+                    }
+        ],
+  has   light;
+
+Object  Sidewalk "Sidewalk"
+  with  description 
+            "You are standing on the sidewalk in front of your house. 
+            The street is normally quiet, but it's been very busy 
+            and crowded today, like trying to get through a busy movie 
+            theater, and the sound of the traffic has been 
+            particularly noticeable. The traffic is a good sign of 
+            what's going on in the city as a whole today. It is barely 
+            cloudy and already hot this morning. Smaller branches of 
+            trees are in motion from the light wind, which helps to 
+            provide some relief from the heat. Your home is to the 
+            west. Your neighbor's home is to the northwest.",
+        n_to 
+            "Some inconsiderate person parked their car on the 
+            sidewalk which blocks your path. It might be nice to call 
+            Parking Enforcement so they can get a ticket for creating 
+            an obstruction but you don't have a phone.",
+        s_to 
+            "You arrive at an intersection. Lots of traffic drives 
+            past at high speed creating a small breeze that makes your 
+            shirt ripple. You decide it is better to not risk being 
+            run over and go back.",
+        e_to 
+            "As you start to step out into the street a car quickly 
+            zooms by at high speed. You jump back to avoid becoming 
+            part of the pavement.",
+        se_to 
+            "As you start to step out into the street a car honks 
+            impatiently for you to get out of the way. You go back to 
+            your old spot.",
+        ne_to 
+            "The street is very busy. Surely you'd be hit by a moving 
+            vehicle if you went there.",
+        nw_to frontporch,
+        sw_to "A rock wall blocks your path.",
+        w_to frontdoor,
+  has   light;
+
+Object  street "street" sidewalk
+  with  name 'street' 'road',
+        description "It's your typical street.",
+  has   scenery;
+
+Object  rockwall "rock wall" sidewalk
+  with  name 'rock' 'wall' 'stone' 'rock' 'boulder' 'stonework' 
+        'cobblestone' 'mortar' 'stones' 'rocks' 'walls',
+         description 
+            "Made up of assorted stones of various sizes and shapes, 
+            with a healthy dose of mortar between them to fill and 
+            seal the irregular gaps between them, it serves as a wall 
+            separating your property from someone else's.",
+  has   scenery;
+
+Object  car "car" sidewalk
+  with  name 'car' 'vehicle' 'automobile',
+        description 
+            "It's a white two-door car. The license plate holder says 
+            FrobozzCo International.",
+        before [;
+          Unlock:
+            print_ret "The car is locked, and there is apparently no key.";
+          Open:
+            print_ret "The car is locked, and there is apparently no key.";
+          Climb:
+            print_ret 
+                "I'm not sure that FrobozzCo International would 
+                appreciate people climbing on one of their cars.";
+          Take:
+            print_ret 
+                "I doubt that FrobozzCo International would 
+                appreciate someone taking one of their cars.";
+          Pull, Push, PushDir, Turn:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+  has   scenery;
+
+Object  licenseplateframe "license plate holder" sidewalk
+  with  name 'license' 'plate' 'frame' 'holder',
+        description "It says FrobozzCo International in white letters 
+                    on a black frame.",
+        Before [;
+          Take, Pull, Push, PushDir, Turn:
+            print_ret (The) self, " is firmly attached to the car.";
+        ],
+  has   scenery;
+
+Object  frontporch "Front Porch"
+  with  description 
+            "You are on your neighbor's front porch. It consists of a 
+            coffee brown wooden floor connected to and surrounded a 
+            parchment white wooden fence. The fence is obviously new 
+            and looks great. It's tall enough to make climbing it 
+            impossible. The design of the porch places the focus on 
+            the front door. A deep red color, the door is large, high 
+            quality and has no window. It has a shiny brass handle, 
+            which appears very sturdy. There's an opening to the 
+            southwest toward the sidewalk. Their front door is to the 
+            west.",
+        cant_go "That parchment white wooden fence is too high to get over.",
+        se_to sidewalk,
+        w_to neighbordoor,
+  has   light;
+
+Object  neighbordoor "front door" frontporch
+  with  name 'door' 'front' 'red',
+        description "The door is large and high quality. A deep red 
+                    color it has no window and a shiny brass handle, 
+                    which appears to be very sturdy.",
+        found_in frontporch neighborlivingroom,
+        door_dir [;
+            if (location == frontporch)
+                return w_to;
+            else
+                return e_to;
+        ],
+        door_to [;
+            if (location == frontporch)
+                return neighborlivingroom;
+            else
+                return frontporch;
+        ],
+  has   scenery door openable;
+
+Object  brasshandle "brass door handle" frontporch
+  with  name 'brass' 'handle',
+        found_in frontporch neighborlivingroom,
+  has   scenery;
+
+Object  fence "wooden fence" frontporch
+  with  name 'fence' 'wooden' 'wood',
+        found_in backyard frontporch,
+  has   scenery;
+
+Object  neighborlivingroom "Neighbor's Livingroom"
+  with  description 
+            "You are in your neighbor's livingroom. It seems that no 
+            one has lived here in a long time, even though you saw 
+            your neighbor here last week. All of the furniture has 
+            been removed and the air smells stale. A large bay window 
+            enclosed by sheer cobalt blue curtains allowing light to 
+            come through. A door is to the east.^^A machine as tall as 
+            you sits in the center of their livingroom. It consists 
+            of three transparent spheres joined together containing 
+            machinery. A barrel with a small aperture comes out of the 
+            farthest sphere, pointing down and to the wall. The 
+            entire thing rests on a shiny metal platform allowing it 
+            to rotate and tilt with ease.",
+        w_to neighborkitchen,
+        e_to neighbordoor,
+        before [;
+          Go:
+            if (bluebutton has on && poker notin machine) {
+                machine.shoot();
+                rtrue;
+            }
+        ],
+  has   light;
+
+Object  neighborwindow "window" neighborlivingroom
+  with  name 'large' 'bay' 'window' 'windows',
+        description "A large bay window enclosed by sheer cobalt blue 
+                    curtains allowing light to come through.",
+        before [;
+          Go:
+            print_ret "The window is not something you can go through.";
+          Open, Close:
+            print_ret "This isn't the type of window that can be 
+                      opened or closed.";
+        ],
+  has   scenery;
+
+Object  neighborcurtains "curtains" neighborlivingroom
+  with  name 'cobalt' 'blue' 'curtain' 'curtains',
+        description 
+            "Cobalt blue in color, the curtains have been decorated with 
+            intricate embroidery.",
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret "Don't you think they look nice where they are?";
+        ],
+  has   scenery openable pluralname;
+
+Object  embroidery "embroidery" neighborlivingroom
+  with  name 'embroidery' 'pattern' 'patterns',
+  has   scenery;
+
+Object  redbutton "red button" neighborlivingroom
+  with  name 'red' 'red button' 'button' 'buttons',
+        before [;
+          Push:
+            if (bluebutton has on && poker notin machine) {
+                print 
+                    "You reach for the red button, but not in 
+                    time...^ ";
+                machine.shoot();
+                rtrue;
+            }
+            if (poker in machine)
+                print_ret 
+                    "You press the red button but it's futile because 
+                    the machine's shorted out.";
+            else {
+                print 
+                    "You push the red button. The machine makes clunky 
+                    noises as machinery moves inside. A loud humming 
+                    begins to emanate from it. It comes to life, spins 
+                    around on its base, aims, and quickly fires a 
+                    series of three bright blue sparks at you. You 
+                    hear a small explosive sound as they impact your 
+                    chest. You feel a little disoriented as it 
+                    teleports you away.^";
+                move box to bed ;
+                move directional to box ;
+                move newspaper to table ;
+                move letter to island ;
+                move poker to fireplace ;
+                PlayerTo(campsite);
+                rtrue;
+            }
+        ],
+  has   scenery;
+
+Object  bluebutton "blue button" neighborlivingroom
+  with  name 'blue' 'blue button' 'button' 'buttons',
+        before [;
+          Push:
+            if (bluebutton has on) {
+                if (poker notin machine) {
+                    print 
+                        "You reach for the blue button, but not 
+                        in time...^ ";
+                    machine.shoot();
+                    rtrue;
+                }
+                else {
+                    give bluebutton ~on;
+                    print_ret "You push the blue button. The machine 
+                    sounds like it powers down.";
+                }
+            }
+            else {
+                give bluebutton on;
+                if (poker notin machine) {
+                    machine.shoot();
+                    rtrue;
+                }
+                print_ret "You push the blue button.";
+            }
+        ],
+  has   scenery on;
+
+Object  machine "machine" neighborlivingroom
+  with  name 'machine' 'machinery' 'sphere' 'spheres' 'platform' 'barrel'
+        'aperture' 'metal platform' 'shiny metal platform' 'shiny platform'
+        'shiny' 'metal',
+        description 
+            "It consists of three transparent spheres joined together 
+            containing machinery. A barrel with a small aperture comes 
+            out of the farthest sphere, pointing down and to the wall. 
+            The entire thing rests on a shiny metal platform allowing 
+            it to rotate and tilt with ease. There is a blue button 
+            and a red button.",
+        time_left,
+        before [ weapon;
+          Attack:
+            if (noun == self)
+                weapon = second;
+            else
+                weapon = noun;
+            if (weapon ~= poker) {
+                print "That wasn't helpful.^";
+                if (bluebutton has on)
+                    self.shoot();
+                rtrue;
+            }
+            self.shortout();
+            return true;
+          Receive:
+            if (noun == poker) {
+                self.shortout();
+                return true;
+            }
+            if (bluebutton has on)
+                self.shoot();
+            rtrue;
+        ],
+        time_out [;
+            if (poker in self)
+                StopTimer(machine);
+            else
+                if (bluebutton has on)
+                    self.shoot();
+        ],
+        daemon [;
+            if (poker in player)
+                rfalse;
+            if (player in parent(self) && poker notin machine)
+                self.shoot();
+        ],
+        shoot [ destination;
+            destination = random(3);
+            print 
+                "^A loud humming begins to emanate from the machine. 
+                It comes to life, spins around on its base, aims, and 
+                quickly fires a series of three bright blue sparks at 
+                you. You hear a small explosive sound as they impact 
+                your chest. You feel a little disoriented as it 
+                teleports you away.^";
+            if (destination == 1)
+                PlayerTo(kitchen);
+            if (destination == 2)
+                PlayerTo(livingroom);
+            if (destination == 3)
+                PlayerTo(bedroom);
+        ],
+        shortout [;
+            if (machine hasnt visited) {
+                score = score + 1;
+                give machine visited;
+            }
+            move poker to self;
+            print "You put the poker into ", (the) self, 
+                ". Sparks 
+                fly wildly in every direction as it shorts out.^";
+        ],
+  has   scenery container open;
+
+Object  backyard "Back Yard"
+  with  description 
+            "You are in your neighbor's back yard. It is barely cloudy 
+            and already hot this morning. Some shade from the sun 
+            would be nice but the closest tree is at the sidewalk, on 
+            the other side of the building and the sun is causing all 
+            of the shadows to go in the wrong direction. The healthy, 
+            dark green grass is well manicured. It looks like a nice 
+            place. You hear some dogs barking in the distance. A high 
+            wooden fence encompasses the area, painted a burnt umber. 
+            Their back door is to the east. Your kitchen window is to 
+            the south.",
+        before [;
+          Go:
+            if (noun == s_obj) {
+                print 
+                    "Climbing over the fence you squeeze back through 
+                    your kitchen window.^";
+            }
+        ],
+        s_to window,
+        n_to "Their fence is too high to climb over in that direction.",
+        e_to backdoor,
+        w_to "Their fence is too high to climb over in that direction.",
+  has   light;
+
+Object  leaves "leaves" backyard
+  with  name 'leaf' 'leaves',
+        found_in backyard sidewalk,
+  has   scenery;
+
+Object  scratches "scratches" backyard
+  with  name 'scratch' 'scratches' 'mark' 'marks' 'marking' 'markings',
+        found_in backyard neighborkitchen,
+  has   scenery;
+
+Object  house "neighbor's house" backyard
+  with  name 'neighbor' 'neighbors' 'house' 'home' 'building',
+        found_in backyard frontporch kitchen sidewalk,
+  has   scenery;
+
+Object  backdoor "back door" backyard
+  with  name 'door' 'back' 'backdoor',
+        description 
+            "Burgundy in color it seems a solid and hefty door. It 
+            has scratches along the bottom, as if from a pet long 
+            forgotten.",
+        short_name [;
+            if (location == backyard)
+                print "door to your neighbor's house";
+            else
+                print "door to the back yard";
+            return true;
+        ],
+        found_in backyard neighborkitchen,
+        door_dir [;
+            if (location == backyard)
+                return e_to;
+            else
+                return w_to;
+        ],
+        door_to [;
+            if (location == backyard)
+                return neighborkitchen;
+            else
+                return backyard;
+        ],
+  has   scenery door openable;
+
+Object  neighborkitchen "Kitchen"
+  with  description 
+            "You are in your neighbor's kitchen. It's a large 
+             contemporary kitchen with an open design and many flat 
+             surfaces. The color palette is very bright and in 
+             perfect harmony with the kitchen. It's timeless and 
+             beautiful. The walls look like they've been used to 
+             store things, with some faint outlines remaining that 
+             gives a lived-in look. It could have been a luxury 
+             cooking environment, though by now everything has been 
+             removed. Only the kitchen island and fireplace remain in 
+             stark contrast to the bare kitchen. The livingroom is to 
+             the east. The door to the back yard is to the west.",
+        e_to neighborlivingroom,
+        w_to backyard,
+  has   light;
+
+Object  island "kitchen island" neighborkitchen
+  with  name 'kitchen' 'island' 'table' 'wood' 'wooden' 'top' 'wood',
+        description 
+            "It has metal legs firmly embedded into the floor, and a 
+            wooden top. Strangely, all of the drawers have been 
+            removed.",
+        before [;
+          Take, Pull, Push, PushDir, Turn:
+            print_ret "The kitchen island is firmly planted in the floor.";
+        ],
+  has   scenery supporter enterable;
+
+Object  brick "brick" neighborkitchen
+  with  name 'brick' 'bricks' 'mortar',
+        description 
+            "You find nothing special about the bricks that make up 
+            the fireplace.",
+  has   scenery;
+
+Object  fireplace "fireplace" neighborkitchen
+  with  name 'fireplace' 'fire' 'place' 'mouth',
+        description [;
+            print 
+                "A stain is splayed against the brick fireplace, 
+                making its curved mouth appear like a black, toothless 
+                scream. A confection of ashes occupy the fireplace";
+            if (poker in self)
+                print 
+                    ", and a poker hangs out which looks like it 
+                    could make an effective weapon";
+            print ".";
+            new_line;
+        ],
+  has   scenery container transparent open;
+
+Object  poker "poker" fireplace
+  with  name 'poker',
+        description 
+            "This poker may have once been used to expedite the 
+            flame's envelopment, as well as the house's many stories 
+            and secrets.",
+        before [;
+          Take, Pull, Push, PushDir, Remove:
+            give poker ~concealed;
+            if (poker hasnt visited) {
+                score = score + 1;
+                give poker visited;
+                }
+            if (player in neighborlivingroom) {
+                if (bluebutton has on)
+                    machine.shoot();
+            }
+        ],
+  has   concealed;
+
+Object  ashes "ashes" fireplace
+  with  name 'ash' 'ashes',
+        description "It looks like a pile of ash.",
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret "The ashes are so fine they fall between your fingers.";
+        ],
+  has   concealed pluralname;
+
+Object  stain "stain" fireplace
+  with  name 'stain',
+  has   scenery;
+
+Object  mouth "mouth of the fireplace" fireplace
+  with  name 'mouth',
+  has   scenery;
+
+Object  letter "letter" island
+  with  name 'letter',
+        description 
+            "The letter reads: ~Thank you for evaluating this 
+            prototype of the Frobozz Magic Teleporter. Please refer to 
+            the enclosed manual to learn how to program destinations 
+            in to your teleporter. Pressing the red button recalls the 
+            last-used destination and teleports you there. Pressing 
+            the blue button engages Defense Mode, which instantly 
+            whisks intruders away. Use it to provide defense for any 
+            location! Please send feedback about this prototype to 
+            your local FrobozzCo International sales person. Warning: 
+            Side effects can include disorientation, loss of memory, 
+            lightheadedness, loss of appetite, nausea, vomiting, 
+            weakness, and death.~";
\ No newline at end of file