Update to serial 221129
authorJason Self <j@jxself.org>
Wed, 30 Nov 2022 00:54:10 +0000 (16:54 -0800)
committerJason Self <j@jxself.org>
Wed, 30 Nov 2022 00:54:10 +0000 (16:54 -0800)
src/hotel.inf [new file with mode: 0644]
src/snowed-in.inf

diff --git a/src/hotel.inf b/src/hotel.inf
new file mode 100644 (file)
index 0000000..336d682
--- /dev/null
@@ -0,0 +1,232 @@
+! Copyright (C) 2022 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/
+!
+! SPDX-License-Identifier: AGPL-3.0-or-later
+
+Object  lobby1 "Hotel Lobby"
+  with  description 
+            "The lobby is a large open space with marble flooring, 
+            dark wood paneled walls, a high vaulted ceiling and an 
+            impressive crystal chandelier. The room feels full of 
+            light and quiet elegance. A life-sized bronze statue of a 
+            man in his twenties stands at the far end of the room. In 
+            front of the statue is a plush red leather chair next to 
+            a low marble table. The front desk is to the north. The 
+            lobby continues to the west and east.",
+  has   light;
+
+Object  bronzestatue "life-sized bronze statue" lobby1
+  with  name 'life-sized' 'bronze' 'statue',
+  with  description [;
+            print 
+                "The life-sized bronze statue appears to be that of a
+                young man with a very serious and determined 
+                expression on his face";
+            if (bronzestatue has visited) {
+                print 
+                    ", and there's a small crack running diagonally 
+                    through one of the cheeks";
+            }
+            print_ret 
+                ". The statue sits on a small pedestal bearing a 
+                plaque.";
+        ],
+        before [;
+          Take, Pull, Push, PushDir, Turn:
+            if (bronzestatue hasnt visited) {
+                give bronzestatue visited;
+                print_ret 
+                    "The statue falls off its pedestal and lands on
+                    the ground, cracking loudly as it hits the floor.
+                    Some hotel staff hurry over to shoo you away and 
+                    place the statue back on the pedestal.";
+            }
+            else {
+                print_ret 
+                    "Haven't you damaged the statue enough 
+                    already?";
+            }
+        ],
+  has   scenery;
+
+Object  pedestal "stone pedestal" lobby1
+  with  name 'stone' 'pedestal',
+  with  description 
+            "It's made of a dull grey stone and is rectangular in 
+            shape. There's a bronze plaque near the top.",
+  has   scenery;
+
+Object  plaque "bronze plaque" lobby1
+  with  name 'bronze' 'plaque' 'sign' 'plate',
+  with  description 
+            "The bronze plaque is engraved with the words ~Frederick 
+            Smith, Hotel Founder~.",
+  has   scenery;
+
+Object  marblefloor "marble floor" lobby1
+  with  name 'marble' 'floor' 'flooring',
+  with  description 
+            "The marble floor has been polished to a sheen, making it 
+            appear almost shiny underfoot.",
+  has   scenery;
+
+Object  woodpanels "dark wood paneled walls" lobby1
+  with  name 'dark' 'wood' 'panel' 'panels' 'paneling' 'wall' 'walls',
+  with  description 
+            "The walls have been painted a rich deep brown color 
+            which contrasts nicely with the rest of the room.",
+  has   scenery;
+
+Object  chandelier "crystal chandelier" lobby1
+  with  name 'crystal' 'chandelier' 'gold' 'silver' 'filigree',
+  with  description 
+            "The crystal chandelier is beautiful and ornate, with 
+            many branches extending from a central shaft. It seems to 
+            be made mostly of clear crystal, though some parts are 
+            decorated with gold and silver filigree. The crystal 
+            chandelier is suspended by thick iron chains as it hangs 
+            in the center of the room, high above the marble floor.",
+  has   scenery;
+
+Object  ironchains "thick iron chains" lobby1
+  with  name 'thick' 'iron' 'chain' 'chains' 'metal',
+  with  description 
+            "The thick iron chains dangle down from the ceiling and 
+            connect to a crystal chandelier. They're strong enough to 
+            hold a great deal of weight without breaking.",
+  has   scenery;
+
+Object  leatherchair "plush red leather chair" lobby1
+  with  name 'plush' 'red' 'leather' 'chair',
+  with  description 
+            "It looks like a comfortable, well-made seat, featuring a 
+            high back and padded seat covered in soft red leather. 
+            It's clearly designed for comfort.",
+        before [;
+          Enter:
+            print 
+                "You sink into the deep cushions of the chair. It feels 
+                really nice, as if it was made just for you. You can 
+                feel your body relax immediately.^";
+            PlayerTo(leatherchair, 1);
+            rtrue;
+        ],
+  has   enterable supporter scenery;
+
+Object  marbletable "low marble table" lobby1
+  with  name 'low' 'marble' 'table' 'leg' 'legs' 'stylized' 'vine' 'vines',
+  with  description 
+            "The table is made from a slab of white marble, looking 
+            smooth and polished. It's large enough to hold several 
+            books or magazines comfortably. The marble legs are 
+            carved with stylized vines.",
+        before [;
+          Enter:
+            print 
+                "You sit on the surface of the low marble table; it 
+                feels cold and hard.^";
+            PlayerTo(marbletable, 1);
+            rtrue;
+        ],
+  has   enterable supporter scenery;
+
+Object  ceiling "high valuted ceiling" lobby1
+  with  name 'high' 'vaulted' 'ceiling' 'roof',
+  with  description 
+            "The high vaulted ceiling adds an air of grandeur. It 
+            makes this lobby feel even larger than it already is. An 
+            impressive crystal chandelier hangs from it.",
+  has   scenery;
+
+Object  hotelmanager "the hotel manager" lobby1
+  with  name 'hotel' 'manager' 'brian',
+  with  description 
+            "The hotel manager is a tall, distinguished man with 
+            brown eyes and salt-and-pepper hair. He wears a blue suit 
+            and a red tie. He's been working at the hotel for several 
+            years.",
+        initial [;
+            if (lobby1 hasnt visited) {
+                print 
+                    "~I'm so glad to see you made it back,~ says the
+                    hotel manager, who looks exhausted. You rub your
+                    arms vigorously trying to warm up and shake off
+                    the cold.^";
+            }
+        ],
+        times_grue_asked_about 0,
+        times_name_asked_about 0,
+        life [;
+          Tell, Ask:
+            switch (second) {
+              'grue':
+                self.times_grue_asked_about = self.times_grue_asked_about
+                + 1;
+                switch (self.times_grue_asked_about) {
+                  1:
+                    print_ret "The hotel manager goes pale. ~There's a grue in the area? I hadn't heard.~";
+                  2:
+                    print_ret "~I'm sorry; I've been too busy running the hotel to keep up on the news.~";
+                  3:
+                    print_ret "~We probably shouldn't be discussing this so as to not cause a panic.~";
+                  default:
+                    "~Perhaps it's best to get some rest and not talk about such things.~";
+                }
+              'name':
+                self.times_name_asked_about = self.times_name_asked_about
+                + 1;
+                switch (self.times_name_asked_about) {
+                  1:
+                    print_ret "~My name is Brian,~ he replies.";
+                  2:
+                    print_ret 
+                        "~Brian.~ He replies. ~My parents named 
+                        me after my father.~";
+                  3:
+                    print_ret "~I'm Brian, the hotel manager.~";
+                  default:
+                    print_ret "~I believe we've covered that topic. 
+                    Is there anything else I can assist with?~";
+                }
+            }
+            "~Yeah, yeah.~";
+        ],
+  has   animate proper male transparent;
+
+Object  bluesuit "blue suit" hotelmanager
+  with  name 'blue' 'suit',
+  with  description 
+            "A soft blue suit that has a subtle pattern of black 
+            pinstripes.",
+        before [;
+          Take, Pull, Push, PushDir, Turn:
+            print_ret 
+                "The hotel manager would probably not like 
+                that.";
+        ],
+  has   scenery;
+
+Object  redtie "red tie" hotelmanager
+  with  name 'red' 'tie',
+  with  description 
+            "A classic red necktie with a thin, straight black line 
+            running across the middle.",
+        before [;
+          Take, Pull, Push, PushDir, Turn:
+            print_ret 
+                "The hotel manager would probably not like 
+                that.";
+        ],
+  has   scenery;
\ No newline at end of file
index 29673c19704aa591b085baf7acdff43bc0795c0c..7c28a9dd8595fbf4c2224b39193c5c5c4bd33154 100644 (file)
@@ -18,6 +18,7 @@ Array UUID_ARRAY string "UUID://DE9FA2E5-4EC7-4166-9218-E56EFA1DF40F//";
 #Ifdef UUID_ARRAY;
 #Endif;
 Global lantern_fuel_left = 20;
+Global flashlight_battery_power_left = 50;
 Global body_temperature = 20;
 Global cabin_has_electricity = 1;
 Global forest_location = 1;
@@ -43,7 +44,9 @@ Constant Headline
 Include "parser";
 Include "verblib";
 Release 4;
-Serial "221011";
+Serial "221129";
+
+Include "src/hotel.inf";
 
 Object  mainroom "Main Room"
   with  description 
@@ -520,9 +523,10 @@ Object  snowsuit "snowsuit" suitcase
             }
         ],
         daemon [;
-            if (location ~= mainroom && location ~= office && location ~=
-            kitchenette && location ~= bedroom && location ~= thedark &&
-            snowsuit hasnt worn) {
+            if (location == northofcabin || location == southofcabin ||
+            location == westofcabin || location == truckspot || location
+            == backpacklocation || location == forest && snowsuit hasnt
+            worn) {
                 body_temperature = --body_temperature;
             }
             if (location == mainroom || location == office || location ==
@@ -602,9 +606,10 @@ Object  snowshoes "snowshoes" bedroom
                 knees.";
         ],
         daemon [;
-            if (location ~= mainroom && location ~= office && location ~=
-            kitchenette && location ~= bedroom && location ~= thedark &&
-            location ~= eastofcabin && snowshoes hasnt worn) {
+            if (location == northofcabin || location == southofcabin ||
+            location == westofcabin || location == truckspot || location
+            == backpacklocation || location == forest && snowshoes hasnt
+            worn) {
                 deadflag = 3;
             }
         ],
@@ -867,12 +872,12 @@ Object  flashlight "flashlight" backpack
                 yourself at a console. The hallucination quickly 
                 fades.";
           15:
-            deadflag = 2;
-            print_ret 
+            print
                 "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.";
+                rush over to you.^";
+                PlayerTo(lobby1);
         }
     }
 ];
@@ -1093,10 +1098,10 @@ Object  snowmobile "snowmobile" thedark
             snowmobile_location = random(14);
             if (location == forest && forest_location == snowmobile_location)
             {
-                deadflag = 2;
-                print_ret 
+                print
                     "A snowmobile approaches. The person says they 
-                    saw your light and came to rescue you.";
+                    saw your light and came to rescue you.^";
+                PlayerTo(lobby1);
             }
             return true;
         ],