Update to serial 200329
authorJason Self <j@jxself.org>
Sun, 29 Mar 2020 17:37:32 +0000 (10:37 -0700)
committerJason Self <j@jxself.org>
Sun, 29 Mar 2020 17:37:32 +0000 (10:37 -0700)
22 files changed:
src/homeland.inf
src/objects/backyard.inf [deleted file]
src/objects/bedroom.inf [deleted file]
src/objects/campsite.inf [deleted file]
src/objects/frontporch.inf [deleted file]
src/objects/grandlivingroom.inf [deleted file]
src/objects/intro/backyard.inf [new file with mode: 0644]
src/objects/intro/bedroom.inf [new file with mode: 0644]
src/objects/intro/frontporch.inf [new file with mode: 0644]
src/objects/intro/grandlivingroom.inf [new file with mode: 0644]
src/objects/intro/kitchen.inf [new file with mode: 0644]
src/objects/intro/livingroom.inf [new file with mode: 0644]
src/objects/intro/neighborkitchen.inf [new file with mode: 0644]
src/objects/intro/neighborlivingroom.inf [new file with mode: 0644]
src/objects/intro/sidewalk.inf [new file with mode: 0644]
src/objects/kitchen.inf [deleted file]
src/objects/livingroom.inf [deleted file]
src/objects/neighborkitchen.inf [deleted file]
src/objects/neighborlivingroom.inf [deleted file]
src/objects/overworld/campsite.inf [new file with mode: 0644]
src/objects/overworld/westofcampsite.inf [new file with mode: 0644]
src/objects/sidewalk.inf [deleted file]

index 0defe48bc5e6d487a823f0b4d93b59b90436e647..bb97de1bbff158d75c75c62da11ded8c87fbd4c0 100644 (file)
@@ -1,6 +1,6 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
+! Copyright (C) 2019, 2020 Jason Self <j@jxself.org>
 !
-! This file is free software: you may copy, redistribute gand/or
+! 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.
@@ -22,7 +22,7 @@ Constant Headline
     ^Ongoing development: https://jxself.org/git/?p=homeland.git
     ^Send bugs and feedback by email to j@@64jxself.org.
     ^IFID AC0898CB-0668-4853-9EB9-757958D4AF56
-    ^Copyright (C) 2019 Jason Self
+    ^Copyright (C) 2019, 2020 Jason Self
     ^You can change and share this game under the terms of the GNU 
     Affero General Public License as published by the Free Software 
     Foundation (FSF), either version 3 of the License, or (at your 
@@ -34,17 +34,19 @@ Constant Headline
 Include "parser";
 Include "verblib";
 Release 0;
-Serial "190728";
-Include "src/objects/kitchen.inf";
-Include "src/objects/livingroom.inf";
-Include "src/objects/bedroom.inf";
-Include "src/objects/grandlivingroom.inf";
-Include "src/objects/sidewalk.inf";
-Include "src/objects/frontporch.inf";
-Include "src/objects/neighborlivingroom.inf";
-Include "src/objects/backyard.inf";
-Include "src/objects/neighborkitchen.inf";
-Include "src/objects/campsite.inf";
+Serial "200329";
+Include "src/objects/intro/kitchen.inf";
+Include "src/objects/intro/livingroom.inf";
+Include "src/objects/intro/bedroom.inf";
+Include "src/objects/intro/grandlivingroom.inf";
+Include "src/objects/intro/sidewalk.inf";
+Include "src/objects/intro/frontporch.inf";
+Include "src/objects/intro/neighborlivingroom.inf";
+Include "src/objects/intro/backyard.inf";
+Include "src/objects/intro/neighborkitchen.inf";
+
+Include "src/objects/overworld/campsite.inf";
+Include "src/objects/overworld/westofcampsite.inf";
 
 [ DeathMessage;
     if (deadflag == 3)
@@ -77,9 +79,9 @@ Include "src/objects/campsite.inf";
     print 
         "While reading the morning newspaper, there was another small 
         explosion from your neighbor's home. This time you were able 
-        to see a series of three bright blue sparks that your friends 
-        were talking about from your kitchen window through the 
-        curtains covering their living room windows.^^";
+        to see the series of three bright blue sparks that your 
+        friends were talking about from your kitchen window through 
+        the curtains covering their living room window.^^";
     print 
         "You crane your neck out the window to look, but all is 
         quiet. ~What's going on over there?~ you wonder.^^";
diff --git a/src/objects/backyard.inf b/src/objects/backyard.inf
deleted file mode 100644 (file)
index 9d10c70..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  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. 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  grass "grass" backyard
-  with  name 'green' 'grass' 'meadow' 'sod' 'turf' 'lawn',
-        found_in backyard campsite,
-  has   scenery;
-
-Object  sky "sky" backyard
-  with  name 'sky',
-        found_in backyard frontporch kitchen sidewalk,
-  has   scenery;
-
-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 '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;
\ No newline at end of file
diff --git a/src/objects/bedroom.inf b/src/objects/bedroom.inf
deleted file mode 100644 (file)
index 5d4a221..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  bedroom "Bedroom"
-  with  description 
-            "The green-beige walls are reminiscent of a hospital. On 
-            the wall is a 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.",
-        name 'painting' 'paint',
-        Before [;
-          Take:
-            print_ret "It looks so nice, perhaps it's better to leave 
-                      it where it is.";
-        ],
-  has   scenery;
-
-Object  bed "twin-sized 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   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 == bedroom || location == kitchen || 
-            location == backyard || location == neighborkitchen || 
-            location == neighborlivingroom)
-                print 
-                    "Ordinarily you'd expect a compass to point north 
-                    but this one is spinning wildly in every 
-                    direction.^";
-            if (location == livingroom || location == sidewalk)
-                print "The compass is pointing west.^";
-            if (location == frontporch)
-                print "The compass is pointing southeast.^";
-        ],
-        ;
\ No newline at end of file
diff --git a/src/objects/campsite.inf b/src/objects/campsite.inf
deleted file mode 100644 (file)
index 039a7c1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  campsite "Campsite"
-  with  description [;
-            print 
-                "You are at an old campsite set among some low-lying 
-                hills. Healthy, dark green grass carpets the ground 
-                except around an old firepit.^^";
-            print 
-                "You can see a log (on which are a copper lantern and 
-                a diary) here.^^";
-            print 
-                "The diary is old and worn. The pages are tattered 
-                and yellowed, and most of the writing has faded due to 
-                exposure to the elements. In reviewing the pages you 
-                recognize it as your neighbor's handwriting and can 
-                make out a single passage: ~The humming... the 
-                humming... I can't make it stop.~";
-            deadflag = 3;
-        ],
-  has   light;
\ No newline at end of file
diff --git a/src/objects/frontporch.inf b/src/objects/frontporch.inf
deleted file mode 100644 (file)
index f883ca5..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  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 by a 
-            parchment white wooden fence, with an opening to the 
-            sidewalk in the southeast. 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 "A deep red color it has no window and a shiny 
-                    brass handle.",
-        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;
\ No newline at end of file
diff --git a/src/objects/grandlivingroom.inf b/src/objects/grandlivingroom.inf
deleted file mode 100644 (file)
index 926f1b6..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  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;
\ No newline at end of file
diff --git a/src/objects/intro/backyard.inf b/src/objects/intro/backyard.inf
new file mode 100644 (file)
index 0000000..4755b6d
--- /dev/null
@@ -0,0 +1,92 @@
+! Copyright (C) 2019 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  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. 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  grass "grass" backyard
+  with  name 'green' 'grass' 'meadow' 'sod' 'turf' 'lawn',
+        found_in backyard campsite,
+  has   scenery;
+
+Object  sky "sky" backyard
+  with  name 'sky',
+        found_in backyard frontporch kitchen sidewalk,
+  has   scenery;
+
+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;
\ No newline at end of file
diff --git a/src/objects/intro/bedroom.inf b/src/objects/intro/bedroom.inf
new file mode 100644 (file)
index 0000000..7edec20
--- /dev/null
@@ -0,0 +1,70 @@
+! Copyright (C) 2019 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  bedroom "Bedroom"
+  with  description 
+            "The green-beige walls are reminiscent of a hospital. 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';
+
+Object  bed "twin-sized 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   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 == bedroom || location == kitchen || 
+            location == backyard || location == neighborkitchen || 
+            location == neighborlivingroom)
+                print 
+                    "Ordinarily you'd expect a compass to point north 
+                    but this one is spinning wildly in every 
+                    direction.^";
+            if (location == livingroom || location == sidewalk)
+                print "The compass is pointing west.^";
+            if (location == frontporch)
+                print "The compass is pointing southeast.^";
+        ],
+        ;
\ No newline at end of file
diff --git a/src/objects/intro/frontporch.inf b/src/objects/intro/frontporch.inf
new file mode 100644 (file)
index 0000000..e85bef2
--- /dev/null
@@ -0,0 +1,55 @@
+! Copyright (C) 2019 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  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 by a 
+            parchment white wooden fence, with an opening to the 
+            sidewalk in the southeast. 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 "A deep red color it has no window and a shiny 
+                    brass handle.",
+        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;
\ No newline at end of file
diff --git a/src/objects/intro/grandlivingroom.inf b/src/objects/intro/grandlivingroom.inf
new file mode 100644 (file)
index 0000000..11b0071
--- /dev/null
@@ -0,0 +1,57 @@
+! Copyright (C) 2019 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  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;
\ No newline at end of file
diff --git a/src/objects/intro/kitchen.inf b/src/objects/intro/kitchen.inf
new file mode 100644 (file)
index 0000000..51dfc7c
--- /dev/null
@@ -0,0 +1,160 @@
+! Copyright (C) 2019 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;
\ No newline at end of file
diff --git a/src/objects/intro/livingroom.inf b/src/objects/intro/livingroom.inf
new file mode 100644 (file)
index 0000000..e7a473e
--- /dev/null
@@ -0,0 +1,176 @@
+! Copyright (C) 2019 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  livingroom "Livingroom"
+  with  description 
+            "You are in a modestly furnished livingroom. Pictures 
+            hang from the walls. 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   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   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;
\ No newline at end of file
diff --git a/src/objects/intro/neighborkitchen.inf b/src/objects/intro/neighborkitchen.inf
new file mode 100644 (file)
index 0000000..a81851d
--- /dev/null
@@ -0,0 +1,113 @@
+! Copyright (C) 2019 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  neighborkitchen "Kitchen"
+  with  description 
+            "You are in your neighbor's kitchen. A large kitchen, 
+            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
diff --git a/src/objects/intro/neighborlivingroom.inf b/src/objects/intro/neighborlivingroom.inf
new file mode 100644 (file)
index 0000000..601a6ea
--- /dev/null
@@ -0,0 +1,205 @@
+! Copyright (C) 2019 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  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. There's another room to the north. 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,
+        n_to grandlivingroom,
+        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.^";
+                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;
\ No newline at end of file
diff --git a/src/objects/intro/sidewalk.inf b/src/objects/intro/sidewalk.inf
new file mode 100644 (file)
index 0000000..3770904
--- /dev/null
@@ -0,0 +1,141 @@
+! Copyright (C) 2019 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  Sidewalk "Sidewalk"
+  with  description 
+            "You are standing on the sidewalk of a very busy street 
+            in front of your house. 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  sun "sun" sidewalk
+  with  name 'sun',
+        found_in sidewalk backyard,
+  has   scenery;
+
+Object  clouds "clouds" sidewalk
+  with  name 'cloud' 'clouds',
+        found_in sidewalk backyard,
+  has   scenery;
+
+Object  tree "tree" sidewalk
+  with  name 'tree' 'trees' 'evergreen' 'evergreen' 'leaves' 'leaf',
+        found_in sidewalk backyard campsite,
+        description 
+            "Standing strong, majestic and tall, as if reaching for 
+            the sky. There are countless numbers of sun-drenched 
+            leaves, each a deep green.",
+        before [;
+          Climb:
+            print_ret 
+                "Despite your best efforts you're not able to. 
+                There's no branch low enough to grab.";
+          Taste:
+            print_ret "It tastes like wood.";
+          Touch:
+            print_ret "The trunk of the free feels rough to the touch.";
+          Take, Pull, Push, PushDir, Turn:
+            print_ret 
+                "The tree is firmly anchored into the ground by a 
+                healthy root system. It's not going anywhere.";
+          Drink:
+            print_ret "The tree is not a liquid.";
+          Blow:
+            print_ret "You huff and you puff but nothing happens.";
+          Burn:
+            print_ret "Only you can prevent forest fires.";
+          Buy:
+            print_ret "The tree is not for sale.";
+          JumpOver:
+            print_ret 
+                "Since when did you gain the ability to jump over 
+                trees in a single bound?";
+        ],
+  has   scenery;
+
+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;
diff --git a/src/objects/kitchen.inf b/src/objects/kitchen.inf
deleted file mode 100644 (file)
index 166d642..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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 
-            "You are in the kitchen and in front of the window that 
-            looks out on to your neighbor's back yard. It's a small 
-            simple kitchen, but adequately lit by natural light from 
-            the outside. The walls are painted a buttery yellow and 
-            broken up by celery green curtains on the windows, which 
-            move slightly in a small breeze you cannot feel. The floor 
-            is highly polished, having received a fresh coat 
-            yesterday afternoon. 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, 
-                    which move slightly in a small breeze you cannot 
-                    feel.^";
-            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.";
-
-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 'curtain' 'curtains' 'green curtains' 'celery' 'celery green'
-        'celery green 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;
\ No newline at end of file
diff --git a/src/objects/livingroom.inf b/src/objects/livingroom.inf
deleted file mode 100644 (file)
index 9010e8a..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  livingroom "Livingroom"
-  with  description 
-            "You are in a modestly furnished livingroom. Pictures 
-            hang from the walls. 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   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   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;
\ No newline at end of file
diff --git a/src/objects/neighborkitchen.inf b/src/objects/neighborkitchen.inf
deleted file mode 100644 (file)
index 193d828..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  neighborkitchen "Kitchen"
-  with  description 
-            "You are in your neighbor's kitchen. A large kitchen, 
-            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 (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
diff --git a/src/objects/neighborlivingroom.inf b/src/objects/neighborlivingroom.inf
deleted file mode 100644 (file)
index 1feaaae..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  neighborlivingroom "Neighbor's Livingroom"
-  with  description 
-            "You are in your neighor'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. There's another 
-            room to the north. 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,
-        n_to grandlivingroom,
-        before [;
-          Go:
-            if (bluebutton has on && poker notin machine) {
-                machine.shoot();
-                rtrue;
-            }
-        ],
-  has   light;
-
-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.^";
-                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.";
-                }
-            }
-            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;
\ No newline at end of file
diff --git a/src/objects/overworld/campsite.inf b/src/objects/overworld/campsite.inf
new file mode 100644 (file)
index 0000000..5c1a604
--- /dev/null
@@ -0,0 +1,77 @@
+! 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  campsite "Campsite"
+  with  description 
+            "You are at an old campsite set among some low-lying 
+            hills. Healthy, dark green grass carpets the ground 
+            except around an old fire pit.",
+        w_to westofcampsite,
+        before [;
+          Listen:
+            print_ret 
+                "You hear chanting from right behind you but looking 
+                around you see no one is there.^";
+        ],
+        u_to 
+            "That's the sky. Not sure how you plan to get there but 
+            maybe you know something I don't.",
+        d_to "That's the ground. Since when are you able to move through it?",
+  has   light;
+
+Object  firepit "firepit" campsite
+  with  name 'fire' 'firepit' 'pit',
+        description 
+            "The fire pit is small and nothing more than an 
+            indentation in the ground. It reeks of old campfires.",
+  has   scenery;
+
+Object  log "log" campsite
+  with  name 'log' 'wood',
+        description 
+            "It's the remnant of a tree uprooted by a storm. Someone 
+            has taken the time to shape it flat and square for 
+            sitting. Slightly recessed into the ground, it's a 
+            combination of cinnamon and caramel brown. Deep scratches 
+            and ominous stains mar the surface.",
+  has   supporter enterable static;
+
+Object  diary "diary"
+  with  name 'diary' 'book',
+        description 
+            "The diary is old and worn. The pages are tattered and 
+            yellowed, and most of the writing has faded due to 
+            exposure to the elements over the years. In reviewing the 
+            pages you can make out a single passage: ~The humming... 
+            the humming... I can't make it stop.~",
+  has   ;
+
+Object  lantern "copper lantern" log
+  with  name 'lantern' 'copper',
+        description 
+            "This is an exceptionally beautiful oil lamp. About 
+            eleven inches high, with a base of about 5 inches or so in 
+            diameter and a large, brass-closed hook at the top. The 
+            glass in the lamp has a Fresnel type of design, which is 
+            used to distribute light widely. The words ~Manufactured 
+            By The Frobozz Magic Lantern Company~ are engraved in the 
+            base.^",
+        after [;
+          SwitchOn:
+            give lantern light;
+          SwitchOff:
+            give lantern ~light;
+        ],
+  has   switchable;
\ No newline at end of file
diff --git a/src/objects/overworld/westofcampsite.inf b/src/objects/overworld/westofcampsite.inf
new file mode 100644 (file)
index 0000000..1cf633b
--- /dev/null
@@ -0,0 +1,31 @@
+! Copyright (C) 2019 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  westofcampsite "West Of Campsite"
+  with  description 
+            "You're in an area of flat grassland just east of a 
+            forest. There is a circle of dead grass near recent 
+            livestock tracks in some mud. A flock of birds fly 
+            overhead and disappear into the forest.",
+        before [;
+          Listen:
+            print_ret 
+                "You hear strange whispers but looking around see no 
+                one.^";
+        ],
+        e_to campsite,
+        cant_go 
+            "That area has not yet been implemented in this game.",
+  has   light;
\ No newline at end of file
diff --git a/src/objects/sidewalk.inf b/src/objects/sidewalk.inf
deleted file mode 100644 (file)
index c2d0136..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-! Copyright (C) 2019 Jason Self <j@jxself.org>
-!
-! This file is free software: you may copy, redistribute gand/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  Sidewalk "Sidewalk"
-  with  description 
-            "You are standing on the sidewalk of a very busy street 
-            in front of your house. 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  sun "sun" sidewalk
-  with  name 'sun',
-        found_in sidewalk backyard,
-  has   scenery;
-
-Object  clouds "clouds" sidewalk
-  with  name 'cloud' 'clouds',
-        found_in sidewalk backyard,
-  has   scenery;
-
-Object  tree "tree" sidewalk
-  with  name 'tree' 'trees' 'evergreen' 'evergreen' 'leaves' 'leaf',
-        found_in sidewalk backyard,
-        description 
-            "Standing strong, majestic and tall, as if reaching for 
-            the sky. There are countless numbers of sundrenched 
-            leaves, each a deep green.",
-        before [;
-          Climb:
-            print_ret 
-                "Despite your best efforts you're not able to. 
-                There's no branch low enough to grab.";
-          Taste:
-            print_ret "It tastes like wood.";
-          Touch:
-            print_ret "The trunk of the free feels rough to the touch.";
-          Take, Pull, Push, PushDir, Turn:
-            print_ret 
-                "The tree is firmly anchored into the ground by a 
-                healthy root system. It's not going anywhere.";
-          Drink:
-            print_ret "The tree is not a liquid.";
-          Blow:
-            print_ret "You huff and you puff but nothing happens.";
-          Burn:
-            print_ret "Only you can prevent forest fires.";
-          Buy:
-            print_ret "The tree is not for sale.";
-          JumpOver:
-            print_ret 
-                "Since when did you gain the ability to jump over 
-                trees in a single bound?";
-        ],
-  has   scenery;
-
-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 aparently no key.";
-          Open:
-            print_ret "The car is locked, and there is aparently 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;