Update to serial 221129
[snowed-in.git] / src / hotel.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