--- /dev/null
+! 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