From: Jason Self Date: Fri, 2 Apr 2021 04:03:56 +0000 (-0700) Subject: Update to serial 210401 X-Git-Tag: r1~12 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=8b233f8de5416ffcc414affa15b2ebf493b12639;p=snowed-in.git Update to serial 210401 --- diff --git a/src/snowed-in.inf b/src/snowed-in.inf index cf58fbf..ebe3aca 100644 --- a/src/snowed-in.inf +++ b/src/snowed-in.inf @@ -32,7 +32,7 @@ Constant Headline Include "parser"; Include "verblib"; Release 0; -Serial "210331"; +Serial "210401"; Object mainroom "Main Room" with description @@ -40,9 +40,11 @@ Object mainroom "Main Room" 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 @@ -71,8 +73,8 @@ Object coffeetable "coffee table" 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."; @@ -89,15 +91,124 @@ Object television "flat-screen TV" mainroom } 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 @@ -110,6 +221,45 @@ Object television "flat-screen TV" mainroom 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: