From: Jason Self Date: Sun, 29 Mar 2020 17:37:32 +0000 (-0700) Subject: Update to serial 200329 X-Git-Url: https://jxself.org/git/?p=homeland.git;a=commitdiff_plain;h=57e7057cc7196914e3477ac73aaf73966c2195ac Update to serial 200329 --- diff --git a/src/homeland.inf b/src/homeland.inf index 0defe48..bb97de1 100644 --- a/src/homeland.inf +++ b/src/homeland.inf @@ -1,6 +1,6 @@ -! Copyright (C) 2019 Jason Self +! Copyright (C) 2019, 2020 Jason Self ! -! 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 index 9d10c70..0000000 --- a/src/objects/backyard.inf +++ /dev/null @@ -1,92 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 5d4a221..0000000 --- a/src/objects/bedroom.inf +++ /dev/null @@ -1,71 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 039a7c1..0000000 --- a/src/objects/campsite.inf +++ /dev/null @@ -1,34 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index f883ca5..0000000 --- a/src/objects/frontporch.inf +++ /dev/null @@ -1,55 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 926f1b6..0000000 --- a/src/objects/grandlivingroom.inf +++ /dev/null @@ -1,57 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 0000000..4755b6d --- /dev/null +++ b/src/objects/intro/backyard.inf @@ -0,0 +1,92 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..7edec20 --- /dev/null +++ b/src/objects/intro/bedroom.inf @@ -0,0 +1,70 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..e85bef2 --- /dev/null +++ b/src/objects/intro/frontporch.inf @@ -0,0 +1,55 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..11b0071 --- /dev/null +++ b/src/objects/intro/grandlivingroom.inf @@ -0,0 +1,57 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..51dfc7c --- /dev/null +++ b/src/objects/intro/kitchen.inf @@ -0,0 +1,160 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..e7a473e --- /dev/null +++ b/src/objects/intro/livingroom.inf @@ -0,0 +1,176 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..a81851d --- /dev/null +++ b/src/objects/intro/neighborkitchen.inf @@ -0,0 +1,113 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..601a6ea --- /dev/null +++ b/src/objects/intro/neighborlivingroom.inf @@ -0,0 +1,205 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 0000000..3770904 --- /dev/null +++ b/src/objects/intro/sidewalk.inf @@ -0,0 +1,141 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index 166d642..0000000 --- a/src/objects/kitchen.inf +++ /dev/null @@ -1,148 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 9010e8a..0000000 --- a/src/objects/livingroom.inf +++ /dev/null @@ -1,176 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 193d828..0000000 --- a/src/objects/neighborkitchen.inf +++ /dev/null @@ -1,109 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 1feaaae..0000000 --- a/src/objects/neighborlivingroom.inf +++ /dev/null @@ -1,174 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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 index 0000000..5c1a604 --- /dev/null +++ b/src/objects/overworld/campsite.inf @@ -0,0 +1,77 @@ +! Copyright (C) 2019, 2020 Jason Self +! +! 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 index 0000000..1cf633b --- /dev/null +++ b/src/objects/overworld/westofcampsite.inf @@ -0,0 +1,31 @@ +! Copyright (C) 2019 Jason Self +! +! 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 index c2d0136..0000000 --- a/src/objects/sidewalk.inf +++ /dev/null @@ -1,141 +0,0 @@ -! Copyright (C) 2019 Jason Self -! -! 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;