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
^Ongoing development: https://jxself.org/git/?p=snowed-in.git
^Send bugs and feedback by email to j@@64jxself.org.
^IFID DE9FA2E5-4EC7-4166-9218-E56EFA1DF40F
- ^Copyright (C) 2021 Jason Self
+ ^Copyright (C) 2021 Jason Self <j@@64jxself.org>
^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
Include "parser";
Include "verblib";
Release 0;
-Serial "210501";
+Serial "210823";
Object mainroom "Main Room"
with description
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
Object television "flat-screen TV" mainroom
with name 'TV' 'television' 'flat' 'screen' 'flat-screen',
with description
- "The flat-screen TV looks fairly modern but it's been
- broken in a fight and the screen is dangling out.",
+ "The flat-screen TV looks fairly modern but it's been
+ broken in a fight and the screen is dangling out.",
before [;
Take, Pull, Push, PushDir, Turn:
print_ret (The) self, " is firmly mounted to the wall.";
give kitchenette light;
give bedroom light;
give eastofcabin light;
+ give southofcabin light;
}
],
has scenery container transparent open;
give kitchenette light;
give bedroom light;
give eastofcabin light;
+ give southofcabin light;
}
else {
print_ret
give kitchenette ~light;
give bedroom ~light;
give eastofcabin ~light;
+ give southofcabin ~light;
],
has switchable on;
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;
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
kitchenette && location ~= bedroom && location ~= thedark &&
snowsuit hasnt worn) {
body_temperature = --body_temperature;
- print body_temperature;
}
if (location == mainroom || location == office || location ==
- kitchenette || location == bedroom || location ~= thedark ||
- snowsuit has worn && body_temperature < 20) {
+ kitchenette || location == bedroom || snowsuit has worn && body_temperature
+ < 20) {
body_temperature = ++body_temperature;
}
if (body_temperature == 0) {
daemon [;
if (location ~= mainroom && location ~= office && location ~=
kitchenette && location ~= bedroom && location ~= thedark &&
- snowshoes hasnt worn) {
+ location ~= eastofcabin && snowshoes hasnt worn) {
deadflag = 3;
}
],
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.";
- print
- " The snow stings your face and you
- can barely see three feet in front of you.^";
+ "^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 eastofcabin "East Of Cabin"
+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:
+ forest_location = forest_location++;
+ PlayerTo(forest,1);
+ ];
+
+Object truck "blue and white pickup truck" truckspot
+ with name 'pickup' 'truck' 'door' 'doors',
+ 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 "It's dark outside. ";
- if (lightbulb has on) {
- print
- "The light from inside the cabin only penetrates
- a few feet from the building. ";
+ print_forest_description();
+ ],
+ before [;
+ Go:
+ if (location == thedark) {
+ DarkToDark();
}
- else
- if (lantern in player && lantern has on) {
- print
- "The lantern provides the only source of
- light. ";
- }
- if (snowshoes in player && snowshoes has worn) {
- print
- "The snowshoes are doing their job by making sure
- you don't sink into the snow.^";
+ 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. ";
+ }
+ else
+ if (lantern in player && lantern has on) {
+ print
+ "The lantern provides the only source of
+ light. ";
+ }
+ if (location has light)
+ print
+ "The snow stings your face and you can barely see three feet in
+ front of you. ";
+ if (snowshoes in player && snowshoes has worn) {
+ print
+ "The snowshoes are doing their job by making sure
+ you don't sink into the snow.^";
+ }
+];
+
+Object eastofcabin "East Of Cabin"
+ with description [;
+ print "It's dark outside. ";
+ check_for_cabin_lighting();
],
w_to window,
s_to southofcabin,
has light;
+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
+ direction.",
+ s_to southofcabin,
+ has light;
+
[ Initialise;
Location = mainroom;
thedark.description =
4:
"^You hear the sound of shuffling feet outside.";
5:
- "^You hear a deep guttural sound from outside that sends a chill down your spine.";
- 6:
"^You hear something sniffing around the cabin.";
+ 6:
+ "^You hear a deep guttural sound from outside that sends a chill down your spine.";
7:
"^You hear something scratching on the cabin walls from outside.";
8:
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;
give kitchenette ~light;
give bedroom ~light;
give eastofcabin ~light;
+ give southofcabin ~light;
}
return true;
],