X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fsnowed-in.inf;h=3bdf7102f3e4ca6dccf4ec40769c2f687babec95;hb=7972d28fd9c08f73b14e45fb6a2e9ef3833b3ad9;hp=42b27c3044354302a2214339018af758ff804aff;hpb=27e8957d3117b55a59829c43d31b4c55cdce0de0;p=snowed-in.git diff --git a/src/snowed-in.inf b/src/snowed-in.inf index 42b27c3..3bdf710 100644 --- a/src/snowed-in.inf +++ b/src/snowed-in.inf @@ -12,11 +12,12 @@ ! ! You should have received a copy of the GNU Affero General Public ! License along with this file. If not, see https://gnu.org/licenses/ -Global lantern_fuel_left = 10; +Global lantern_fuel_left = 20; Global body_temperature = 20; Global cabin_has_electricity = 1; Global forest_location = 1; -Constant NO_SCORE; +Global snowmobile_location = 0; +Constant MAX_SCORE = 7; Constant DEATH_MENTION_UNDO; Constant Story "Snowed In"; Constant Headline @@ -37,7 +38,7 @@ Constant Headline Include "parser"; Include "verblib"; Release 1; -Serial "220529"; +Serial "220531"; Object mainroom "Main Room" with description @@ -168,6 +169,7 @@ Object television "flat-screen TV" mainroom print_ret (The) self, " is firmly mounted to the wall."; SwitchOn: if (television hasnt visited) { + score = score + 1; print "Despite the significant damage, the television comes to life in one last valiant attempt to be @@ -253,7 +255,7 @@ Object lightbulb "light bulb" lightsocket 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 + is a wreck. Holes are in the walls and the window is 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.", @@ -265,6 +267,10 @@ Object office "Office" "You can't fit through the window while wearing the snow shoes."; } + if (eastofcabin hasnt visited) { + score = score + 1; + give office visited; + } ], w_to mainroom, e_to window, @@ -311,6 +317,7 @@ Object computer "computer" desk print_ret (The) self, " is too heavy for that."; SwitchOn: if (computer hasnt visited) { + score = score + 1; print "The computer makes some concerning noises while lights on the front also illuminate. The last @@ -463,6 +470,11 @@ Object snowsuit "snowsuit" suitcase "The snowsuit is blue, decorated with white and purple designs. On the chest are the letters ~CE~ in purple.", before [; + Examine: + if (snowsuit hasnt visited) { + score = score + 1; + give snowsuit visited; + } Wear: if (snowshoes in player && snowshoes has worn) { print_ret "The snowsuit can't fit over the snowshoes."; @@ -564,18 +576,20 @@ Object southofcabin "South Of Cabin" with description [; print "The wind is howling, and there's snow flying - everywhere. "; + everywhere. The snow buildup seems to get higher to + the west. "; if (snowsuit hasnt worn) print "It's really cold and you're not dressed for this weather. "; - ! if (frontdoor has open) { - check_for_cabin_lighting(); - ! } + if (frontdoor has open) { + check_for_cabin_lighting(); + } if (snowshoes has worn && lantern in player && eastofcabin hasnt - visited) { + visited && lantern_fuel_left > 0) { throw_rock(); } + print "^"; ], n_to frontdoor, s_to forest, @@ -586,7 +600,7 @@ Object southofcabin "South 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 + letting up any time 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.", @@ -641,6 +655,13 @@ Object backpack "backpack" backpacklocation toward the bottom of the backpack. On the side are the letters ~CE~ in purple. The backpack is covered in blood, as if the owner met with an untimely demise.", + before [; + Examine: + if (backpack hasnt visited) { + score = score + 1; + give backpack visited; + } + ], has clothing container openable; Object flashlight "flashlight" backpack @@ -650,6 +671,10 @@ Object flashlight "flashlight" backpack inches long.", before [; SwitchOn: + if (flashlight hasnt visited) { + score = score + 1; + give flashlight visited; + } give flashlight light; SwitchOff: give lantern ~light; @@ -838,6 +863,7 @@ Object forest "Forest" give lantern ~light; lantern_fuel_left = 0; StopDaemon(lantern); + score = score - 1; ]; [ check_for_cabin_lighting; @@ -861,28 +887,80 @@ Object forest "Forest" "The snowshoes are doing their job by making sure you don't sink into the snow. "; } - print "^"; ]; Object eastofcabin "East Of Cabin" with description [; print "It's dark outside. "; check_for_cabin_lighting(); - if (cabin_has_electricity == 1 && lantern in player) { + if (cabin_has_electricity == 1 && lantern in player && lantern_fuel_left + > 0) { throw_rock(); } + print "^"; ], w_to window, s_to southofcabin, + cant_go + "The snow buildup is is too great to continue in that + direction.", has light; +Object roof "Roof" + with description [; + print + "You're on the roof of the cabin, although it's hard + to tell where the snow buildup ends and the roof + begins. You can make out the trees around the cabin, + but you can't see very far out into the snowfield + beyond them."; + if (roof hasnt visited) + print + " You hear a snowmobile approaching in the + distance. Is it your salvation? The snowmobile + quickly zooms by in front of the cabin and + disappears into the forest."; + StartDaemon(snowmobile); + if (roof has visited) + print + " There seems to be no movement, no sound, no + sign of anything."; + new_line; + ], + n_to northofcabin, + cant_go "Walking off the edge of a roof seems unwise."; + +Object northofcabin "North Of Cabin" + with description + "You're on the north side of the cabin. The wind is + howling and the snow is coming down; falling too fast to + see well. The snow buildup here is so great that it's + almost level with the cabin's roof, which is to the + south.", + n_to westofcabin, + s_to roof, + w_to westofcabin, + cant_go "It's too steep to go in that direction safely.", + before [; + Go: + if (noun == s_obj) { + if (roof hasnt visited) { + score = score + 1; + give roof visited; + } + } + ]; + 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.", + direction. The snow buildup gets taller to the north.", s_to southofcabin, - has light; + n_to northofcabin, + cant_go + "The snow buildup is is too great to continue in that + direction."; [ Initialise; Location = mainroom; @@ -895,7 +973,7 @@ Object westofcabin "West Of Cabin" snowstorm in more than 40 years. If only you had listened to the news. Well, it's too late for that. The snow has been falling for the past seven hours and shows no signs of - stopping anytime soon. You need to get back to your hotel in + stopping any time soon. You need to get back to your hotel in the town. You finally manage to find an old cabin in the woods and get inside but have no idea where you are. You're not dressed for this weather, and it's getting dark outside.^"; @@ -936,6 +1014,21 @@ Object westofcabin "West Of Cabin" return false; ]; +Object snowmobile "snowmobile" thedark + with name 'snowmobile', + daemon [; + snowmobile_location = random(13); + if (location == forest && forest_location == snowmobile_location) + { + deadflag = 2; + print_ret + "A snowmobile approaches. The person says they + saw your light and came to rescue you."; + } + return true; + ], + has scenery; + Object grue "grue" thedark with article "the", name 'grue' 'monster', @@ -1008,10 +1101,30 @@ Object grue "grue" thedark grue!"; ]; +[ PrintRank; + print ", earning you the rank of "; + if (score == 0) + "Novice."; + if (score == 1) + "Trained."; + if (score == 2) + "Skilled."; + if (score == 3) + "Talented."; + if (score == 4) + "Capable."; + if (score == 5) + "Adept."; + if (score == 6) + "Proficient."; + if (score >= 7) + print "Versed."; +]; + [ URL; print "^If you need help try some of the commands from: - ^http://pr-if.org/doc/play-if-card/^"; + ^https://pr-if.org/doc/play-if-card/^"; ]; [ XyzzySub; @@ -1057,4 +1170,4 @@ Extend 'climb' * 'through' / 'out' / 'via' noun -> Go; Extend 'go' - * 'through' / 'out' / 'via' noun -> Go; \ No newline at end of file + * 'through' / 'out' / 'via' noun -> Go;