1 ! Copyright (C) 2021, 2022 Jason Self <j@jxself.org>
3 ! This file is free software: you may copy, redistribute and/or
4 ! modify it under the terms of the GNU Affero General Public License
5 ! as published by the Free Software Foundation, either version 3 of
6 ! the License, or (at your option) any later version.
8 ! This file is distributed in the hope that it will be useful, but
9 ! WITHOUT ANY WARRANTY; without even the implied warranty of
10 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ! Affero General Public License for more details.
13 ! You should have received a copy of the GNU Affero General Public
14 ! License along with this file. If not, see https://gnu.org/licenses/
15 Global lantern_fuel_left = 10;
16 Global body_temperature = 20;
17 Global cabin_has_electricity = 1;
18 Global forest_location = 1;
20 Constant DEATH_MENTION_UNDO;
21 Constant Story "Snowed In";
23 "^A work of interactive fiction.
24 ^If you get stuck try typing HELP.
25 ^Ongoing development: https://jxself.org/git/?p=snowed-in.git
26 ^Send bugs and feedback by email to j@@64jxself.org.
27 ^IFID DE9FA2E5-4EC7-4166-9218-E56EFA1DF40F
28 ^Copyright (C) 2021, 2022 Jason Self <j@@64jxself.org>
29 ^You can change and share this game under the terms of the GNU
30 Affero General Public License as published by the Free Software
31 Foundation (FSF), either version 3 of the License, or (at your
32 option) any later version published by the FSF. See the GNU Affero
33 General Public License for more details.^^You should have received
34 a copy of this game's source code along with a copy of the GNU
35 Affero General Public License so that you can know your rights.
36 If not, contact the place you got it from.^^";
42 Object mainroom "Main Room"
44 "This room is a total wreck - it looks like a major fight
45 happened in here. There's a ripped up sofa and a broken
46 old coffee table in the middle of the room. A flat-screen
47 TV is mounted against the wall, with the screen dangling
48 out. This cabin has three other rooms. There's an office
49 area to the east, and a bedroom to the north. A
50 kitchenette can be found to the west. There's a doorway
51 in the south wall leading outside.",
58 Object frontdoor "front door" mainroom
59 with name 'door' 'front',
61 "The wooden door is made of thick oak wood with the shape
62 of a bear claw engraved in it.",
64 if (location == mainroom)
65 print "door to the outside";
67 print "door to the cabin";
70 found_in mainroom southofcabin,
72 if (location == mainroom)
78 if (location == mainroom)
83 has scenery door openable;
85 Object bearclaw "bear claw" mainroom
86 with name 'bear' 'claw',
88 "It's in the shape of a thin, sharp claw with three jagged
89 points at the top of it.",
92 Object sofa "sofa" mainroom
93 with name 'sofa' 'couch',
95 "The sofa is in poor shape. The upholstery is ripped and
96 there are several holes in it.",
98 Take, Pull, Push, PushDir, Turn:
99 print_ret (The) self, " is too heavy for that.";
101 has scenery supporter enterable;
103 Object coffeetable "coffee table" mainroom
104 with name 'coffee' 'table',
106 "The old coffee table looks as if it's had quite a bit of
107 use. There are burn marks covering it and the paint is
108 worn off in most places.",
110 Take, Pull, Push, PushDir, Turn:
111 print_ret (The) self, " is too heavy for that.";
113 has scenery supporter enterable;
115 Object lantern "copper lantern" coffeetable
116 with name 'lantern' 'copper' 'lamp',
118 "This is an exceptionally beautiful lantern, made of
119 fired copper, and polished until it shines. About eleven
120 inches high, with a base of about 5 inches or so in
121 diameter and a large, brass-closed hook at the top. A
122 rainbow of unique colors run through the copper. The
123 glass in the lamp has a fresnel type of design, which is
124 used to distribute light widely.",
127 if (lantern has on) {
128 lantern_fuel_left = 0;
133 "Suddenly, the lantern's flame begins to flicker
134 violently within its glass prison and then
135 extinguishes itself.";
140 if (lantern_fuel_left > 0) {
142 StartTimer(lantern, lantern_fuel_left);
146 "You snap the switch a few times, but nothing
155 lantern_fuel_left = lantern.time_left;
156 if (lantern has on && lantern_fuel_left <= 5)
157 print_ret "The lantern's fuel runs low.";
161 Object television "flat-screen TV" mainroom
162 with name 'TV' 'television' 'flat' 'screen' 'flat-screen',
164 "The flat-screen TV looks fairly modern but it's been
165 broken in a fight and the screen is dangling out.",
167 Take, Pull, Push, PushDir, Turn:
168 print_ret (The) self, " is firmly mounted to the wall.";
170 if (television hasnt visited) {
172 "Despite the significant damage, the television
173 comes to life in one last valiant attempt to be
174 useful. Your favorite news program is on: U.S.
175 News And Grue Report. The news anchor is giving a
176 warning of grue sightings in the area of the
177 forest before the television finally dies.^";
178 give television visited;
182 "The flat-screen TV is broken and can't be
187 has scenery switchable;
189 Object lightsocket "light socket" mainroom
190 with name 'socket' 'lightsocket',
192 Take, Pull, Push, PushDir, Turn:
194 "You don't have the tools to remove a light
197 if (noun ~= lightbulb) {
201 " into the light socket? Maybe you should come
202 with a warning label because you contain more than
203 a trace amount of nut.";
205 if (noun == lightbulb && lightbulb has on) {
208 give kitchenette light;
210 give eastofcabin light;
211 give southofcabin light;
214 has scenery container transparent open;
216 Object lightbulb "light bulb" lightsocket
217 with name 'light' 'bulb' 'lightbulb',
220 if (lightbulb in lightsocket) {
221 if (cabin_has_electricity == 1) {
224 give kitchenette light;
226 give eastofcabin light;
227 give southofcabin light;
231 "You flip the switch a few times, but nothing
237 "Turn on a lightbulb when it's not in the
238 socket? What a strange idea.";
242 Take, Pull, Push, PushDir, Turn, SwitchOff:
244 give mainroom ~light;
246 give kitchenette ~light;
248 give eastofcabin ~light;
249 give southofcabin ~light;
253 Object office "Office"
255 "There seems to have been quite a fight in here. The room
256 is a wreck. Holes are in the walls and the windows are
257 broken, letting in the cold air from outside. Chunks of
258 drywall and insulation cover the floor. The desk has a
259 bullet hole through the middle.",
263 if (snowshoes has worn)
265 "You can't fit through the window while
266 wearing the snow shoes.";
273 Object desk "solid oak desk" office
274 with name 'solid' 'oak' 'desk',
276 "The desk is old and made of solid oak. The right side of
277 it has been smashed and all of the drawers have been
278 removed. A bullet hole goes straight through the middle of
281 Take, Pull, Push, PushDir, Turn:
282 print_ret (The) self, " is too heavy for that.";
284 has scenery supporter enterable;
286 Object businesscard "business card" desk
287 with name 'business' 'card',
289 "The business card is white and has blacked edges. It
290 bears the name ~Lasting Solutions~, a local data recovery
291 company, in bold letters on the top. The company's
292 website URL is printed in blue at the bottom.";
294 Object salesreceipt "sales receipt" desk
295 with name 'sales' 'receipt',
297 "The sales receipt is for $200, dated three years ago.
298 It's printed on old tractor feed printer paper and bears
299 the name ~Lasting Solutions~, a local data recovery
300 company. A handwritten note is scrawled on the bottom:
301 ~Start working on these hard drives soon.~";
303 Object computer "computer" desk
304 with name 'computer' 'PC',
306 "It's a heavy older model that appears to have been
307 seriously damaged in a fight. It's clearly on its last
308 legs but is perhaps still useful.",
310 Take, Pull, Push, PushDir, Turn:
311 print_ret (The) self, " is too heavy for that.";
313 if (computer hasnt visited) {
315 "The computer makes some concerning noises while
316 lights on the front also illuminate. The last
317 file is quickly displayed. ~If anyone else reads
318 this, you're in serious danger. I've been fighting
319 a ferocious grue for the last three days. I'm
320 almost out of supplies and can't last much
321 longer. I'm going to take the last of the supplies
322 and escape through the office window in a
323 last-ditch effort to get away and get back into
324 town. I hope I can make it.~ The computer then
325 makes a sickly sound and finally dies as some
326 smoke comes out of it.^";
327 give computer visited;
331 "The display briefly flickers but nothing
338 Object drywall "drywall" office
339 with name 'drywall' 'dry' 'wall',
341 Take, Pull, Push, PushDir, Turn:
342 print_ret "Taking that would achieve little.";
346 Object insulation "insulation" office
347 with name 'insulation',
349 Take, Pull, Push, PushDir, Turn:
350 print_ret "Taking that would achieve little.";
354 Object bullethole "bullet hole" desk
355 with name 'bullet' 'hole' 'holes',
357 "Looks to have come from something that's capable of
358 doing a lot of damage.",
359 found_in desk bedroom,
362 Object window "window" office
363 with name 'window' 'windows',
365 "The window faces the east side of the cabin. It's broken,
366 letting in the cold air from outside.",
368 if (location == office)
371 print "window into the cabin";
374 found_in office eastofcabin,
376 if (location == office)
382 if (location == office)
389 print_ret "The window faces the east side of the cabin.";
392 "The window's broken so it's not clear how
395 has scenery door openable open;
397 Object kitchenette "Kitchenette"
399 "The kitchenette is empty. A sink, you think, though it's
400 hard to tell what's a pipe and what's a faucet. A
401 refrigerator, standing open and empty. The door has been
402 ripped off. There's no indication as to where it
403 went. There's no food anywhere in here.",
407 Object refrigerator "refrigerator" kitchenette
408 with name 'fridge' 'refrigerator',
410 "An old rusty refrigerator, standing open and empty. The
411 door has been ripped off. There's no indication as to
414 Take, Pull, Push, PushDir, Turn:
415 print_ret (The) self, " is too heavy for that.";
417 print_ret (The) self, " door is missing.";
419 has scenery enterable container openable open;
421 Object sink "sink" kitchenette
422 with name 'sink' 'pipe' 'faucet',
424 "A sink, you think, though it's hard to tell what's a
425 pipe and what's a faucet.",
429 "Pipes from in the walls make a groaning sound,
430 almost like pain and despair. No water comes out.";
432 has scenery container switchable;
434 Object bedroom "Bedroom"
436 "This bedroom is small and cramped, and looks like a
437 major fight happened as the exterior wall has bullet
438 holes. The bed is lying on the floor, torn to shreds. It
439 has no sheets, just a bare mattress.",
443 Object bed "bed" bedroom
444 with name 'bed' 'mattress',
445 with description "The mattress is bare and empty.",
447 Take, Pull, Push, PushDir, Turn:
448 print_ret (The) self, " is too heavy for that.";
450 has scenery supporter;
452 Object suitcase "suitcase" bedroom
453 with name 'suitcase' 'case',
455 "The suitcase is made of a light metallic material that
456 you can't quite make out. The color of it is somewhere
457 between silver and grey.",
458 has container open openable;
460 Object snowsuit "snowsuit" suitcase
461 with name 'snowsuit' 'snow' 'suit',
463 "The snowsuit is blue, decorated with white and purple
464 designs. On the chest are the letters ~CE~ in purple.",
467 if (snowshoes in player && snowshoes has worn) {
468 print_ret "The snowsuit can't fit over the snowshoes.";
471 if (snowshoes in player && snowshoes has worn) {
472 print_ret "The snowsuit can't be taken off over the snowshoes.";
476 if (location ~= mainroom && location ~= office && location ~=
477 kitchenette && location ~= bedroom && location ~= thedark &&
478 snowsuit hasnt worn) {
479 body_temperature = --body_temperature;
481 if (location == mainroom || location == office || location ==
482 kitchenette || location == bedroom || snowsuit has worn && body_temperature
484 body_temperature = ++body_temperature;
486 if (body_temperature == 0) {
489 if (body_temperature <= 5)
491 "You're shivering uncontrollably, and it's hard
492 to move. You feel very exhausted and drowsy. It's
493 all you can do to keep from falling over.";
494 if (body_temperature > 5 && location ~= mainroom && location
495 ~= office && location ~= kitchenette && location ~= bedroom
496 && location ~= thedark && snowsuit hasnt worn) {
497 switch (body_temperature) {
499 "The feeling of cold overwhelms you. Surely the cold will get to
500 you before anything else does. Right?";
502 "You can feel yourself getting colder and colder.";
504 "You can see your own breath freezing in the air, forming little
507 "You shiver in the cold.";
509 "You continue to shiver in the cold.";
511 "Your hands grow numb from the cold.";
513 "You continue shivering in order to keep warm.";
515 "Your shivering grows worse as your body becomes colder by the
518 "Your teeth begin to chatter as you desperately try to warm
521 "Your shivering intensifies as your body begins to freeze over
524 "Your fingers become stiff and you feel sharp pains all over your
527 "The cold has gotten to a point where it is too much for you. You
528 begin to shiver uncontrollably.";
530 "Your eyesight begins to fade and you can't even feel yourself
533 "You can feel your body shutting down from the cold as you slowly
534 begin to lose consciousness.";
540 Object snowshoes "snowshoes" bedroom
541 with name 'snowshoe' 'snowshoes' 'snow' 'boot' 'boots' 'shoe' 'shoes'
544 "They're light blue in color and have a thick, hard
545 rubber bottom that's attached to a metal frame that keeps
546 you from sinking into the snow. They look to be warm and
550 print_ret (The) self,
551 " fit perfectly and go up to your
555 if (location ~= mainroom && location ~= office && location ~=
556 kitchenette && location ~= bedroom && location ~= thedark &&
557 location ~= eastofcabin && snowshoes hasnt worn) {
561 has pluralname clothing;
563 Object southofcabin "South Of Cabin"
566 "The wind is howling, and there's snow flying
568 if (snowsuit hasnt worn)
570 "It's really cold and you're not dressed for
572 ! if (frontdoor has open) {
573 check_for_cabin_lighting();
575 if (snowshoes has worn && lantern in player && eastofcabin hasnt
576 visited && lantern_fuel_left > 0) {
587 Object truckspot "Forest"
589 "The blizzard is still going on. You don't think it's
590 letting up anytime soon. There is a blue and white
591 pickup truck here. It looks like it got stuck in the snow
592 and is slowly being covered by it. The windows are iced
593 up and you can't see inside.",
596 forest_location = forest_location++;
600 Object truck "blue and white pickup truck" truckspot
601 with name 'pickup' 'truck' 'door' 'doors',
603 "The blue and white pickup truck looks old and battered.
604 The paint has chipped and faded. The windows are iced up
605 and you can't see inside.",
607 Take, Pull, Push, PushDir, Turn:
608 print_ret (The) self, " is too heavy for that.";
611 "The windows are iced up and you can't see
614 print_ret (The) self, " is frozen shut.";
616 has scenery supporter enterable openable;
618 Object backpacklocation "Forest"
620 "You keep walking and walking. The snowfall is still as
621 heavy as ever. As you continue trudging through the snow,
622 you wonder if you're actually moving in the right
623 direction. You can't see anything through the blizzard.
624 You wonder if you might be going in circles and end up
625 wandering around forever, never finding your way out of
626 this white void. You're unsure of which way to go. The
627 snowfall is so thick that you can barely see your hand if
628 you hold it right in front of your face. You have no idea
629 how far you've come or in what direction.",
632 forest_location = forest_location++;
636 Object backpack "backpack" backpacklocation
637 with name 'backpack' 'back' 'pack' 'blood',
639 "The backpack is of medium size, black, with three white
640 stripes running vertically on the back. The middle stripe
641 is broken up by a red line running down the center of it
642 toward the bottom of the backpack. On the side are the
643 letters ~CE~ in purple. The backpack is covered in blood,
644 as if the owner met with an untimely demise.",
645 has clothing container openable;
647 Object flashlight "flashlight" backpack
648 with name 'flashlight' 'flash' 'light' 'torch',
650 "It looks like a cheap red plastic model, about eight
654 give flashlight light;
660 [ print_forest_description;
661 if (location ~= thedark) {
662 switch (forest_location) {
665 "You push on despite the bitter cold and the heavy
666 snowfall as you come to a fork. There are two ways to
667 go here, one involves a hill to the south. The
668 other way is continuing through the woods to the
672 "The wind is bitterly cold. You plow through the
673 snowfall, which is still as heavy as ever. You can
674 barely see where you are going, making it hard to
675 tell which direction is which. Out of the corner of
676 your eye, you spot a tall, shadowy figure lingering
677 at the edge of your vision. When you turn to look at
678 it directly, however, it disappears. You continue
679 walking. The wind is howling louder than ever. The
680 endless snowfall makes it difficult to see where
681 you're going. You can't tell where the white sky and
682 white ground begin and end.";
687 "You trudge through the snow. The wind is really
688 strong and howling like a banshee. You hear a horrible
689 howl in the distance or is it the wind? Looking
690 around you see nothing in this barren landscape but
691 snow. You're not sure what to make of it, but you
692 don't want to stick around to find out. The whole
693 world is white. You can barely see five feet ahead of
694 you. You hope you're going the right way. This place
695 is so desolate and barren.";
698 "You think you might can see a large figure stepping
699 out of the trees and moving in the distance but the
700 wind is blowing hard and whipping up massive amounts
701 of snow, making it hard to tell for sure. Your breath
702 billows out in huge clouds. If it keeps blowing like
703 this, you're not sure if you'll ever be able to get
704 back. Snow whirls through the air as a gust of wind
705 picks up speed. The howling gets louder and more
706 intense. There's no left, right, backward or forward.
707 There's nothing but endless, unchanging whiteness.";
709 PlayerTo(backpacklocation);
712 "It feels like you're lost in a maze of snow without
713 a map. You keep trudging through the heavy snowfall,
714 not knowing if you're even going in any particular
715 direction anymore. The wind is really picking up now
716 and the snowfall is getting heavier. You have to keep
717 going. You can't let the snowstorm get the best of
718 you. You can't give up. You must find a way out of
719 this frozen wasteland. The snowstorm has made it
720 impossible to see anything more than a few feet in
724 "The wind is now a shrieking banshee, freezing and
725 relentless, as it throws the snow into your face,
726 blinding you. It's hard to walk against the brutal
727 winds. You can't see anything, but you must keep
728 going. There is no choice. You continue your way
729 through the snowy white void, what with the snow
730 piling up around you. The wind screams in your ears
731 and you can't see anything. Can't go back. Can't go
732 forward. You can't even see where you are. You hope
733 that, as long as you keep moving, you'll eventually
734 find a way out of this frozen wasteland.";
737 "The blizzard rages, but you continue to press on.
738 There's nothing here but you, the snowfall, and the
739 fierce wind howling through this frozen landscape.
740 This isn't just a place of cold and ice - it's
741 other-worldly. You trudge on and try to keep your
742 spirits up and not let the snowstorm get to you. Every
743 step is an effort. You wish you had the powers of a
744 superhero right now. You can barely see where you are
745 going. The wind knocks you down on your hands and
746 knees. You get back up, but you're slipping and
747 sliding all over the place.";
750 "You wander around in the impenetrable white void.
751 The wind is howling louder than ever. You try to
752 persevere. You don't know if you're going in circles
753 or what, but you start to feel that this frozen,
754 lifeless landscape is sucking away your very life
755 force. You can't see your hand in front of your face.
756 You can barely keep moving. Every step you take is
757 hard-fought. You just want this awful nightmare to
758 end. You begin to feel sleepy but you're in danger
759 here. You have to keep moving. Sleep is not an option
760 when you're in a place like this.";
763 "You try to remember the survival tips you've read
764 on the internet, but frankly, you don't remember most
765 of them right now. As you walk you try to keep your
766 mind occupied with anything other than the storm.
767 Nothing makes any sense and you feel like you're
768 starting to go in circles. The wind starts starts to
769 pick up as it begins howling louder than ever. You're
770 determined to live but the blizzard doesn't seem to
771 care whether you live or die. It just keeps howling
772 and shrieking. It's not getting any easier to move in
776 "You keep walking. The snow is drifting and piling
777 up around you, making movement almost impossible. You
778 look around the barren landscape, but there's nothing
779 nearby except snow. It's almost as if you're lost in
780 a white, endless void. You start to get disoriented.
781 You don't even know if you're walking in a circle or
782 not. The situation is looking very grim. Your life
783 feels as if it is slowly ebbing away in the
784 relentless grip of the snowstorm. It feels like
785 you've been wandering for hours, but that's probably
786 just your perception of time slipping away.";
789 "You can barely see anything, and you stumble
790 forward. You could be wandering aimlessly in any
791 direction right now and you wouldn't know the
792 difference. It's as if you're in a sea of white.
793 You're not sure that you're going in the right
794 direction but you can't stop now. There has to be
795 something here besides endless snow. You know that
796 staying here is a death sentence. You have to escape.
797 You're cold, tired, miserable, and desperate to get
798 out of this mess. You have no idea where you are. You
799 keep wandering through endless whiteness. You won't
804 "You see something in the distance but can't make it
805 out. You walk toward it to find out that it's the
806 hotel. You collapse in the lobby as the hotel staff
812 Object forest "Forest"
814 print_forest_description();
818 if (location == thedark) {
821 if (noun == d_obj || noun == u_obj) {
822 print_ret "You can't go that way.";
824 forest_location = forest_location++;
826 cant_go print_forest_description;
829 if (television has visited || computer has visited) {
831 "The grue is waiting behind a snowbank in
832 the distance, away from the light. ";
835 "From somewhere off in the dark distance, far away from the
836 light, a rock is hurled in your direction. It hits the
837 lantern, breaking it, and putting it out of commission. ";
840 lantern_fuel_left = 0;
844 [ check_for_cabin_lighting;
845 if (lightbulb has on) {
847 "The light from inside the cabin only penetrates a few
848 feet from the building. ";
851 if (lantern in player && lantern has on) {
853 "The lantern provides the only source of
856 if (location has light)
858 "The snow stings your face and you can barely see three feet in
860 if (snowshoes in player && snowshoes has worn) {
862 "The snowshoes are doing their job by making sure
863 you don't sink into the snow. ";
868 Object eastofcabin "East Of Cabin"
870 print "It's dark outside. ";
871 check_for_cabin_lighting();
872 if (cabin_has_electricity == 1 && lantern in player && lantern_fuel_left
882 Object westofcabin "West Of Cabin"
884 "The snow is falling so fast that you can barely see
885 anything. You can't even be sure you're going in the right
892 thedark.description =
893 "It is pitch black. You are likely to be eaten
896 "You're trapped in a snowstorm while visiting the forest
897 during your vacation to a small rural town. This is the worst
898 snowstorm in more than 40 years. If only you had listened to
899 the news. Well, it's too late for that. The snow has been
900 falling for the past seven hours and shows no signs of
901 stopping anytime soon. You need to get back to your hotel in
902 the town. You finally manage to find an old cabin in the
903 woods and get inside but have no idea where you are. You're
904 not dressed for this weather, and it's getting dark outside.^";
905 StartDaemon(lantern);
906 StartDaemon(snowshoes);
907 StartDaemon(snowsuit);
913 print "You sink into the deep snow and are unable to move.";
916 "Finally, you succumb to the cold. Your mind goes blank as
917 you slip away into the endless darkness and the deep sleep
921 ! Don't have 'take all' take the lightbulb in the mainroom of the
924 [ ChooseObjects obj code;
930 if (obj == lightbulb)
935 if (location == thedark && real_location == mainroom) {
936 PlaceInScope(lightsocket);
937 PlaceInScope(lightbulb);
942 Object grue "grue" thedark
944 name 'grue' 'monster',
945 grue_active_around_cabin,
946 grue_active_in_the_dark,
948 if (location == thedark) {
949 switch (++(self.grue_active_in_the_dark)) {
951 "^You hear horrible gurgling sounds in the dark.";
953 "^You hear the clink of razor-sharp claws nearby.";
956 "^Your last memory is of the slavering fangs of the
957 horrible Grue as it claims you for a meal.";
960 if (location == mainroom || location == office || location ==
961 kitchenette || location == bedroom) {
962 switch (++(self.grue_active_around_cabin)) {
964 "^You hear the wind howling outside, if it is the wind.";
966 "^You hear horrible gurgling sounds outside.";
968 "^The noise outside gets louder.";
970 "^You hear the sound of shuffling feet outside.";
972 "^You hear something sniffing around the cabin.";
974 "^You hear a deep guttural sound from outside that sends a chill down your spine.";
976 "^You hear something scratching on the cabin walls from outside.";
978 "^You hear something howl outside. It's a chilling, mournful wail that sends a chill down your spine.";
980 "^A thunderous CRACK can be heard coming from outside.";
982 "^There's a sudden crashing sound as something is thrown against the cabin walls.";
984 "^Something begins to beat against the walls of the cabin, as if trying to to break in. It makes a loud, thunderous noise.";
986 "^The wind is howling and the walls are being beaten so hard it feels like the cabin is shaking.";
988 "^Suddenly, there's ominous silence from outside the cabin.";
991 if (location == mainroom || location == office || location ==
992 kitchenette || location == bedroom && self.grue_active_around_cabin
994 print "^The lights flicker and suddenly go out.^";
995 cabin_has_electricity = 0;
997 give mainroom ~light;
999 give kitchenette ~light;
1000 give bedroom ~light;
1001 give eastofcabin ~light;
1002 give southofcabin ~light;
1010 "Oh, no! You have walked into the slavering fangs of a lurking
1016 "^If you need help try some of the commands from:
1017 ^http://pr-if.org/doc/play-if-card/^";
1021 print "Nothing obvious happens.^";
1051 * 'through' / 'out' / 'via' noun -> Go;
1054 * 'through' / 'out' / 'via' noun -> Go;
1057 * 'through' / 'out' / 'via' noun -> Go;
1060 * 'through' / 'out' / 'via' noun -> Go;
1063 * 'through' / 'out' / 'via' noun -> Go;