Update to serial 210823
authorJason Self <j@jxself.org>
Tue, 24 Aug 2021 03:04:05 +0000 (20:04 -0700)
committerJason Self <j@jxself.org>
Tue, 24 Aug 2021 03:04:05 +0000 (20:04 -0700)
src/forest.inf [deleted file]
src/snowed-in.inf

diff --git a/src/forest.inf b/src/forest.inf
deleted file mode 100644 (file)
index f621e7f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-! Copyright (C) 2021 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/
-Class Forest;
-
-Object  snow "snow" forest
-  with  name 'snow' 'flake' 'flakes',
-  found_in forest,
-  has   scenery;
index 6929991915271571ab3a8b2dd6f100656702551b..c0b9f000f845bd373a258c54eb01405cddf1ad9a 100644 (file)
@@ -15,6 +15,8 @@
 Global lantern_fuel_left = 20;
 Global body_temperature = 20;
 Global cabin_has_electricity = 1;
+Global forest_location = 1;
+Constant NO_SCORE;
 Constant DEATH_MENTION_UNDO;
 Constant Story "Snowed In";
 Constant Headline 
@@ -35,8 +37,7 @@ Constant Headline
 Include "parser";
 Include "verblib";
 Release 0;
-Serial "210617";
-Include "src/forest.inf";
+Serial "210823";
 
 Object  mainroom "Main Room"
   with  description 
@@ -114,7 +115,8 @@ Object  coffeetable "coffee table" mainroom
 Object  lantern "copper lantern" coffeetable
   with  name 'lantern' 'copper' 'lamp',
         description 
-            "This is an exceptionally beautiful lantern. About eleven 
+            "This is an exceptionally beautiful lantern, made of 
+            fired copper, and polished until it shines. About eleven 
             inches high, with a base of about 5 inches or so in 
             diameter and a large, brass-closed hook at the top. A 
             rainbow of unique colors run through the copper. The 
@@ -255,6 +257,15 @@ Object  office "Office"
             broken, letting in the cold air from outside. Chunks of 
             drywall and insulation cover the floor. The desk has a 
             bullet hole through the middle.",
+        before [;
+          Go:
+            if (noun == e_obj) {
+                if (snowshoes has worn)
+                    print_ret 
+                        "You can't fit through the window while wearing the snow 
+                        shoes.";
+            }
+        ],
         w_to mainroom,
         e_to window,
   has   light;
@@ -439,7 +450,7 @@ Object  bed "bed" bedroom
   has   scenery supporter;
 
 Object  suitcase "suitcase" bedroom
-  with  name 'suitcase',
+  with  name 'suitcase' 'case',
   with  description 
             "The suitcase is made of a light metallic material that 
             you can't quite make out. The color of it is somewhere 
@@ -544,33 +555,257 @@ Object  snowshoes "snowshoes" bedroom
         daemon [;
             if (location ~= mainroom && location ~= office && location ~=
             kitchenette && location ~= bedroom && location ~= thedark &&
-            snowshoes hasnt worn) {
+            location ~= eastofcabin && snowshoes hasnt worn) {
                 deadflag = 3;
             }
         ],
   has   pluralname clothing;
 
-Forest  southofcabin "South Of Cabin"
+Object  southofcabin "South Of Cabin"
   with  description [;
-            print "The wind is howling, and there's snow flying everywhere.";
+            print 
+                "The wind is howling, and there's snow flying 
+                everywhere.^";
             if (snowsuit hasnt worn)
                 print 
-                    " It's really cold and 
-                    you're not dressed for this weather.";
+                    "^It's really cold and you're not dressed for 
+                    this weather.^";
             if (frontdoor has open) {
                 check_for_cabin_lighting();
             }
         ],
         n_to frontdoor,
+        s_to forest,
         e_to eastofcabin,
         w_to westofcabin,
   has   light;
 
+Object  truckspot "Forest"
+  with  description 
+            "The blizzard is still going on. You don't think it's 
+            letting up anytime soon. There is a blue and white 
+            pickup truck here. It looks like it got stuck in the snow 
+            and is slowly being covered by it. The windows are iced 
+            up and you can't see inside.",
+        before [;
+          Go:
+            PlayerTo(forest);
+        ];
+
+Object  truck "blue and white pickup truck" truckspot
+  with  name 'pickup' 'truck' 'door',
+  with  description 
+            "The blue and white pickup truck looks old and battered. 
+            The paint has chipped and faded. The windows are iced up 
+            and you can't see inside.",
+        before [;
+          Take, Pull, Push, PushDir, Turn:
+            print_ret (The) self, " is too heavy for that.";
+          Search:
+            print_ret 
+                "The windows are iced up and you can't see 
+                inside.";
+          Enter, Open, GoIn:
+            print_ret (The) self, " is frozen shut.";
+        ],
+  has   scenery supporter enterable openable;
+
+[ print_forest_description;
+    if (location ~= thedark) {
+        switch (forest_location) {
+          1:
+            print_ret 
+                "It's not getting any easier to move in this 
+                blizzard. You can barely see five feet ahead of you. 
+                The wind is really strong. You try to remember the 
+                survival tips you've read on the internet, but 
+                frankly, you don't remember most of them right now. 
+                You just want this awful nightmare to end.";
+          2:
+            print_ret 
+                "You can't see anything through the blizzard. The 
+                snow is drifting and piling up around you, making 
+                movement almost impossible. You can't see your hand 
+                in front of your face. The wind is bitterly cold. The 
+                situation is looking very grim. Your life feels as if 
+                it is slowly ebbing away in the relentless grip of 
+                the snowstorm.";
+          3:
+            print_ret 
+                "You plow through the heavy snowfall. You're cold, 
+                tired, miserable, and desperate to get out of this 
+                mess. The wind is howling like a banshee. You can 
+                barely keep moving. You wish you had the powers of a 
+                superhero right now. You try to persevere. You push 
+                on despite the bitter cold and the heavy snowfall as 
+                you come to a fork. There are two ways to go here, 
+                one is going up a hill to the south. The other way is 
+                continuing through the woods to the north.";
+          4:
+            print_ret 
+                "You trudge through the snow. The wind is howling 
+                louder than ever. It's almost as if you're lost in a 
+                white, endless void.";
+          5:
+            print_ret 
+                "You continue your way through the snowy white void, 
+                what with the snow piling up around you. This is 
+                getting really old, really fast. It's hard to tell 
+                which direction is which. You wonder if you might be 
+                going in circles and end up wandering around forever, 
+                never finding your way out of this white void.";
+          6:
+            print_ret 
+                "You wander around in the impenetrable white void. 
+                The snowfall is still as heavy as ever. You're unsure 
+                of which way to go. There's no left, right, backward 
+                or forward. There's nothing but endless, unchanging 
+                whiteness. You could be wandering aimlessly in any 
+                direction right now and you wouldn't know the 
+                difference.";
+          7:
+            PlayerTo(truckspot);
+          8:
+            print_ret 
+                "You keep wandering through endless whiteness. It 
+                feels like you've been wandering for hours, but 
+                that's probably just your perception of time slipping 
+                away. You keep trudging through the heavy snowfall, 
+                not knowing if you're even going in any particular 
+                direction anymore. You hope that, as long as you keep 
+                moving, you'll eventually find a way out of this 
+                frozen wasteland.";
+          9:
+            print_ret 
+                "You wander around through the white void. There's 
+                nothing here but you, the snowfall, and the fierce 
+                wind howling through this frozen landscape. You start 
+                to get disoriented. You don't know if you're going in 
+                circles or what, but you start to feel that this 
+                frozen, lifeless landscape is sucking away your very 
+                life force.";
+          10:
+            print_ret 
+                "This isn't just a place of cold and ice - it's 
+                other-worldly. You're in danger here. You have to 
+                keep moving. Sleep is not an option when you're in a 
+                place like this. You have to escape. Somehow, you 
+                know that staying here is a death sentence.";
+          11:
+            print_ret 
+                "The wind starts starts to pick up as it begins 
+                howling louder than ever. You look around the barren 
+                landscape, but there's nothing nearby except snow. 
+                You don't even see any trees to break the force of 
+                this terrible wind. The snowfall is still as heavy as 
+                ever. You can barely see where you are going.";
+          12:
+            print_ret 
+                "The snowfall is still as heavy as ever. The wind is 
+                howling louder than ever. You can barely see where 
+                you are going. This place is so desolate and barren. 
+                As you continue trudging through the snow, you wonder 
+                if you're actually moving in the right direction.";
+          13:
+            print_ret 
+                "The endless snowfall makes it difficult to see where 
+                you're going. It feels like you're lost in a maze of 
+                snow without a map. Out of the corner of your eye, 
+                you spot a tall, shadowy figure lingering at the edge 
+                of your vision. When you turn to look at it directly, 
+                however, it disappears. You think you're going mad.";
+          14:
+            print_ret 
+                "You continue walking. You're not sure that you're 
+                going in the right direction but you can't stop now. 
+                You must find a way out of this frozen wasteland. 
+                There has to be something here besides endless snow. 
+                You won't give up. You can't give up.";
+          15:
+            print_ret 
+                "You hear a horrible howl in the distance or is it 
+                the wind? Looking around you see nothing in this 
+                barren landscape but snow. You're not sure what to 
+                make of it, but you don't want to stick around to 
+                find out. You keep walking. The wind is really 
+                picking up now and the snowfall is getting heavier.";
+          16:
+            print_ret 
+                "The wind is now a shrieking banshee, freezing and 
+                relentless, as it throws the snow into your face, 
+                blinding you. Every step you take is hard-fought. The 
+                whole world is white. You can't see anything, but you 
+                must keep going. There is no choice. You have no idea 
+                where you are.";
+          17:
+            print_ret 
+                "The blizzard rages, but you continue to press on. 
+                It's hard to walk against the brutal winds. Every 
+                step is an effort. You can barely see anything, and 
+                you stumble forward. You're determined to live but 
+                the blizzard doesn't seem to care whether you live or 
+                die. It just keeps howling and shrieking.";
+          18:
+            print_ret 
+                "The wind screams in your ears and you can't see 
+                anything. It's as if you're in a sea of white. You 
+                trudge on and try to keep your spirits up and not let 
+                the snowstorm get to you. The wind knocks you down on 
+                your hands and knees. You get back up, but you're 
+                slipping and sliding all over the place.";
+          19:
+            print_ret 
+                "Can't go back. Can't go forward. You can't even see 
+                where you are. The snowstorm has made it impossible 
+                to see anything more than a few feet in front of you. 
+                Nothing makes any sense and you feel like you're 
+                starting to go in circles.";
+          20:
+            print_ret 
+                "You hope you're going the right way. You can't let 
+                the snowstorm get the best of you. You have to keep 
+                going. As you walk you try to keep your mind occupied 
+                with anything other than the storm. You really have 
+                no idea how far you've come or in what direction.";
+          21:
+            print_ret 
+                "You keep walking and walking. You can't tell where 
+                the white sky and white ground begin and end. You 
+                don't even know if you're walking in a circle or not. 
+                The snowfall is so thick that you can barely see your 
+                hand if you hold it right in front of your face.";
+          22:
+            deadflag = 2;
+            print_ret 
+                "You see something in the distance but can't make it 
+                out. You walk toward it to find out that it's the 
+                hotel. You collapse in the lobby as the hotel staff 
+                rush over to you.";
+        }
+    }
+];
+
+Object  forest "Forest"
+  with  description [;
+            print_forest_description();
+        ],
+        before [;
+          Go:
+            if (location == thedark) {
+                DarkToDark();
+            }
+            if (noun == d_obj || noun == u_obj) {
+                print_ret "You can't go that way.";
+            }
+            forest_location = forest_location++;
+        ],
+        cant_go print_forest_description;
+
 [ check_for_cabin_lighting;
     if (lightbulb has on) {
         print 
-            "The light from inside the cabin only penetrates 
-            a few feet from the building. ";
+            "The light from inside the cabin only penetrates a few 
+            feet from the building. ";
     }
     else
         if (lantern in player && lantern has on) {
@@ -589,7 +824,7 @@ Forest  southofcabin "South Of Cabin"
     }
 ];
 
-Forest  eastofcabin "East Of Cabin"
+Object  eastofcabin "East Of Cabin"
   with  description [;
             print "It's dark outside. ";
             check_for_cabin_lighting();
@@ -598,7 +833,7 @@ Forest  eastofcabin "East Of Cabin"
         s_to southofcabin,
   has   light;
 
-Forest  westofcabin "Westh Of Cabin"
+Object  westofcabin "West Of Cabin"
   with  description 
             "The snow is falling so fast that you can barely see 
             anything. You can't even be sure you're going in the right 
@@ -710,7 +945,7 @@ Object  grue "grue" thedark
             if (location == mainroom || location == office || location ==
             kitchenette || location == bedroom && self.grue_active_around_cabin
             == 15) {
-                print "^The lights flicker and suddenly go out.";
+                print "^The lights flicker and suddenly go out.^";
                 cabin_has_electricity = 0;
                 give lightbulb ~on;
                 give mainroom ~light;