Include "parser";
Include "verblib";
Release 0;
-Serial "210331";
+Serial "210401";
Object mainroom "Main Room"
with description
happened in here. There's a ripped up sofa and a broken
old coffee table in the middle of the room. A flat-screen
TV is mounted against the wall, with the screen dangling
- out. A bare light bulb hangs from the ceiling, but no other
- lights are on. There's a doorway in the south wall leading
- outside.",
+ out. Tis cabin has three other rooms. There's an office
+ area with a desk and computer to the east. There's a
+ bedroom to the north and a kitchenette to the west.
+ There's a doorway in the south wall leading outside.",
+ e_to office,
has light;
Object sofa "sofa" mainroom
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 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.";
}
else {
print
- "The television is broken and can't be turned
- on.^";
+ "The flat-screen TV is broken and can't be
+ turned on.^";
}
return true;
],
has scenery switchable;
+Object lightsocket "light socket" mainroom
+ with name 'light' '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) {
+ give mainroom light;
+ give office light;
+ }
+ ],
+ has scenery container transparent open;
+
+Object lightbulb "light bulb" lightsocket
+ with name 'light' 'bulb' 'lightbulb',
+ after [;
+ Take, Pull, Push, PushDir, Turn:
+ give mainroom ~light;
+ give office ~light;
+ ];
+
+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,
+ 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;
+
[ Initialise;
Location = mainroom;
+ thedark.description =
+ "It is pitch black. You are likely to be eaten
+ by a grue.";
print
"You're trapped in a snowstorm while visiting the forest
during your vacation to a small rural town. This is the worst
not dressed for this weather.^";
];
+[ InScope;
+ if (location == thedark && real_location == mainroom) {
+ PlaceInScope(lightsocket);
+ }
+ return false;
+];
+
+Object grue "grue" thedark
+ with article "the",
+ name 'grue' 'monster',
+ each_turn [;
+ StartDaemon(self);
+ ],
+ turns_active,
+ daemon [;
+ if (location ~= thedark) {
+ self.turns_active = 0;
+ StopDaemon(self);
+ rtrue;
+ }
+ switch (++(self.turns_active)) {
+ 1:
+ "^You hear horrible gurgling sounds in the dark.";
+ 2:
+ "^You hear the clink of razor-sharp claws nearby.";
+ 3:
+ deadflag = true;
+ "^Your last memory is of the slavering fangs of the
+ horrible Grue as it claims you for a meal.";
+ }
+ ],
+ has scenery;
+
+[ DarkToDark;
+ deadflag = 1;
+ "Oh, no! You have walked into the slavering fangs of a lurking
+ grue!";
+];
+
[ URL;
print
"^If you need help try some of the commands from: