From 8e7eb30c97213526bcfdf0f23ad55e89a524d26b Mon Sep 17 00:00:00 2001 From: Jason Self Date: Tue, 29 Nov 2022 16:54:10 -0800 Subject: [PATCH] Update to serial 221129 --- src/hotel.inf | 232 ++++++++++++++++++++++++++++++++++++++++++++++ src/snowed-in.inf | 31 ++++--- 2 files changed, 250 insertions(+), 13 deletions(-) create mode 100644 src/hotel.inf diff --git a/src/hotel.inf b/src/hotel.inf new file mode 100644 index 0000000..336d682 --- /dev/null +++ b/src/hotel.inf @@ -0,0 +1,232 @@ +! Copyright (C) 2022 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/ +! +! 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 diff --git a/src/snowed-in.inf b/src/snowed-in.inf index 29673c1..7c28a9d 100644 --- a/src/snowed-in.inf +++ b/src/snowed-in.inf @@ -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; ], -- 2.31.1