+Object lightsocket "light socket" mainroom
+ with name 'socket' 'lightsocket',
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret
+ "You don't have the tools to remove a light
+ socket.";
+ Receive:
+ if (noun ~= lightbulb) {
+ print "Put ";
+ print (a) noun;
+ print_ret
+ " into the light socket? Maybe you should come
+ with a warning label because you contain more than
+ a trace amount of nut.";
+ }
+ if (noun == lightbulb && light has on) {
+ give mainroom light;
+ give office light;
+ give kitchenette light;
+ give bedroom light;
+ give eastofcabin light;
+ }
+ ],
+ has scenery container transparent open;
+
+Object lightbulb "light bulb" lightsocket
+ with name 'light' 'bulb' 'lightbulb',
+ before [;
+ SwitchOn:
+ if (lightbulb in lightsocket) {
+ if (cabin_has_electricity == 1) {
+ give mainroom light;
+ give office light;
+ give kitchenette light;
+ give bedroom light;
+ give eastofcabin light;
+ }
+ else {
+ print_ret
+ "You flip the switch a few times, but nothing
+ happens.";
+ }
+ }
+ else {
+ print_ret
+ "Turn on a lightbulb when it's not in the
+ socket? What a strange idea.";
+ }
+ ],
+ after [;
+ Take, Pull, Push, PushDir, Turn, SwitchOff:
+ give lightbulb ~on;
+ give mainroom ~light;
+ give office ~light;
+ give kitchenette ~light;
+ give bedroom ~light;
+ give eastofcabin ~light;
+ ],
+ has switchable on;
+
+Object office "Office"
+ with description
+ "There seems to have been quite a fight in here. The room
+ is a wreck. Holes are in the walls and the windows are
+ 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.",
+ w_to mainroom,
+ e_to window,
+ has light;
+
+Object desk "solid oak desk" office
+ with name 'solid' 'oak' 'desk',
+ with description
+ "The desk is old and made of solid oak. The right side of
+ it has been smashed and all of the drawers have been
+ removed. A bullet hole goes straight through the middle of
+ the desk.",
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret (The) self, " is too heavy for that.";
+ ],
+ has scenery supporter enterable;
+
+Object businesscard "business card" desk
+ with name 'business' 'card',
+ with description
+ "The business card is white and has blacked edges. It
+ bears the name ~Lasting Solutions~, a local data recovery
+ company, in bold letters on the top. The company's
+ website URL is printed in blue at the bottom.";
+
+Object salesreceipt "sales receipt" desk
+ with name 'sales' 'receipt',
+ with description
+ "The sales receipt is for $200, dated three years ago.
+ It's printed on old tractor feed printer paper and bears
+ the name ~Lasting Solutions~, a local data recovery
+ company. A handwritten note is scrawled on the bottom:
+ ~Start working on these hard drives soon.~";
+
+Object computer "computer" desk
+ with name 'computer' 'PC',
+ with description
+ "It's a heavy older model that appears to have been
+ seriously damaged in a fight. It's clearly on its last
+ legs but is perhaps still useful.",
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret (The) self, " is too heavy for that.";
+ SwitchOn:
+ if (computer hasnt visited) {
+ print
+ "The computer makes some concerning noises while
+ lights on the front also illuminate. The last
+ file is quickly displayed. ~If anyone else reads
+ this, you're in serious danger. I've been fighting
+ a ferocious grue for the last three days. I'm
+ almost out of supplies and can't last much
+ longer. I'm going to take the last of the supplies
+ and escape through the office window in a
+ last-ditch effort to get away and get back into
+ town. I hope I can make it.~ The computer then
+ makes a sickly sound and finally dies as some
+ smoke comes out of it.^";
+ give computer visited;
+ }
+ else {
+ print
+ "The display briefly flickers but nothing
+ else happens.^";
+ }
+ return true;
+ ],
+ has switchable;
+
+Object drywall "drywall" office
+ with name 'drywall' 'dry' 'wall',
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret "Taking that would achieve little.";
+ ],
+ has scenery;
+
+Object insulation "insulation" office
+ with name 'insulation',
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret "Taking that would achieve little.";
+ ],
+ has scenery;
+
+Object bullethole "bullet hole" desk
+ with name 'bullet' 'hole' 'holes',
+ with description
+ "Looks to have come from something that's capable of
+ doing a lot of damage.",
+ found_in desk bedroom,
+ has scenery;
+
+Object window "window" office
+ with name 'window' 'windows',
+ description
+ "The window faces the east side of the cabin. It's broken,
+ letting in the cold air from outside.",
+ short_name [;
+ if (location == office)
+ print "window";
+ else
+ print "window into the cabin";
+ return true;
+ ],
+ found_in office eastofcabin,
+ door_dir [;
+ if (location == office)
+ return e_to;
+ else
+ return w_to;
+ ],
+ door_to [;
+ if (location == office)
+ return eastofcabin;
+ else
+ return office;
+ ],
+ before [;
+ Search:
+ print_ret "The window faces the east side of the cabin.";
+ Open, Close:
+ print_ret
+ "The window's broken so it's not clear how
+ you'd do that.";
+ ],
+ has scenery door openable open;
+
+Object kitchenette "Kitchenette"
+ with description
+ "The kitchenette is empty. A sink, you think, though it's
+ hard to tell what's a pipe and what's a faucet. A
+ refrigerator, standing open and empty. The door has been
+ ripped off. There's no indication as to where it
+ went. There's no food anywhere in here.",
+ e_to mainroom,
+ has light;
+
+Object refrigerator "refrigerator" kitchenette
+ with name 'fridge' 'refrigerator',
+ with description
+ "An old rusty refrigerator, standing open and empty. The
+ door has been ripped off. There's no indication as to
+ where it went.",
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret (The) self, " is too heavy for that.";
+ Open, Close:
+ print_ret (The) self, " door is missing.";
+ ],
+ has scenery enterable container openable open;
+
+Object sink "sink" kitchenette
+ with name 'sink' 'pipe' 'faucet',
+ with description
+ "A sink, you think, though it's hard to tell what's a
+ pipe and what's a faucet.",
+ after [;
+ SwitchOn:
+ print_ret
+ "Pipes from in the walls make a groaning sound,
+ almost like pain and despair. No water comes out.";
+ ],
+ has scenery container switchable;
+
+Object bedroom "Bedroom"
+ with description
+ "This bedroom is small and cramped, and looks like a
+ major fight happened as the exterior wall has bullet
+ holes. The bed is lying on the floor, torn to shreds. It
+ has no sheets, just a bare mattress.",
+ s_to mainroom,
+ has light;
+
+Object bed "bed" bedroom
+ with name 'bed' 'mattress',
+ with description "The mattress is bare and empty.",
+ before [;
+ Take, Pull, Push, PushDir, Turn:
+ print_ret (The) self, " is too heavy for that.";
+ ],
+ has scenery supporter;
+
+Object suitcase "suitcase" bedroom
+ with name 'suitcase',
+ with description
+ "The suitcase is made of a light metallic material that
+ you can't quite make out. The color of it is somewhere
+ between silver and grey.",
+ has container open openable;
+
+Object snowsuit "snowsuit" suitcase
+ with name 'snowsuit' 'snow' 'suit',
+ with description
+ "The snowsuit is blue, decorated with white and purple
+ designs. On the chest is a large emblem with the letters
+ ~CE~ in purple.",
+ before [;
+ Wear:
+ if (snowshoes in player && snowshoes has worn) {
+ print_ret "The snowsuit can't fit over the snowshoes.";
+ }
+ Disrobe, Remove:
+ if (snowshoes in player && snowshoes has worn) {
+ print_ret "The snowsuit can't be taken off over the snowshoes.";
+ }
+ ],
+ daemon [;
+ if (location ~= mainroom && location ~= office && location ~=
+ kitchenette && location ~= bedroom && location ~= thedark &&
+ snowsuit hasnt worn) {
+ body_temperature = --body_temperature;
+ }
+ if (location == mainroom || location == office || location ==
+ kitchenette || location == bedroom || snowsuit has worn
+ && body_temperature < 20) {
+ body_temperature = ++body_temperature;
+ }
+ if (body_temperature == 0) {
+ deadflag = 4;
+ }
+ if (body_temperature <= 5)
+ print_ret
+ "You're shivering uncontrollably, and it's hard
+ to move. You feel very exhausted and drowsy. It's
+ all you can do to keep from falling over.";
+ if (body_temperature > 5 && location ~= mainroom && location
+ ~= office && location ~= kitchenette && location ~= bedroom
+ && location ~= thedark && snowsuit hasnt worn) {
+ switch (body_temperature) {
+ 19:
+ "The feeling of cold overwhelms you. Surely the cold will get to
+ you before anything else does. Right?";
+ 18:
+ "You can feel yourself getting colder and colder.";
+ 17:
+ "You can see your own breath freezing in the air, forming little
+ clouds.";
+ 16:
+ "You shiver in the cold.";
+ 15:
+ "You continue to shiver in the cold.";
+ 14:
+ "Your hands grow numb from the cold.";
+ 13:
+ "You continue shivering in order to keep warm.";
+ 12:
+ "Your shivering grows worse as your body becomes colder by the
+ minute.";
+ 11:
+ "Your teeth begin to chatter as you desperately try to warm
+ yourself up.";
+ 10:
+ "Your shivering intensifies as your body begins to freeze over
+ from the cold.";
+ 9:
+ "Your fingers become stiff and you feel sharp pains all over your
+ body.";
+ 8:
+ "The cold has gotten to a point where it is too much for you. You
+ begin to shiver uncontrollably.";
+ 7:
+ "Your eyesight begins to fade and you can't even feel yourself
+ shivering anymore.";
+ 6:
+ "You can feel your body shutting down from the cold as you slowly
+ begin to lose consciousness.";
+ }
+ }
+ ],
+ has clothing;
+
+Object snowshoes "snowshoes" bedroom
+ with name 'snowshoe' 'snowshoes' 'snow' 'boot' 'boots' 'shoe' 'shoes'
+ 'metal' 'frame',
+ with description
+ "They're light blue in color and have a thick, hard
+ rubber bottom that's attached to a metal frame that keeps
+ you from sinking into the snow. They look to be warm and
+ comfortable.",
+ after [;
+ Wear:
+ print_ret (The) self,
+ " fit perfectly and go up to your
+ knees.";
+ ],
+ daemon [;
+ if (location ~= mainroom && location ~= office && location ~=
+ kitchenette && location ~= bedroom && location ~= thedark &&
+ snowshoes hasnt worn) {
+ deadflag = 3;
+ }
+ ],
+ has pluralname clothing;
+
+Forest southofcabin "South Of Cabin"
+ with description [;
+ 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.^";
+ ],
+ n_to frontdoor,
+ e_to eastofcabin,
+ w_to westofcabin,
+ has light;
+
+Forest eastofcabin "East Of Cabin"
+ 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. ";
+ }
+ 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.^";
+ }
+ ],
+ w_to window,
+ s_to southofcabin,
+ has light;
+
+Forest westofcabin "Westh 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;
+