!
! You should have received a copy of the GNU Affero General Public
! License along with this file. If not, see https://gnu.org/licenses/
+!
+! SPDX-License-Identifier: AGPL-3.0-or-later
+Array UUID_ARRAY string "UUID://DE9FA2E5-4EC7-4166-9218-E56EFA1DF40F//";
+#Ifdef UUID_ARRAY;
+#Endif;
Global lantern_fuel_left = 20;
+Global flashlight_battery_power_left = 50;
Global body_temperature = 20;
Global cabin_has_electricity = 1;
Global forest_location = 1;
If not, contact the place you got it from.^^";
Include "parser";
Include "verblib";
-Release 1;
-Serial "220531";
+Release 4;
+Serial "221129";
+
+Include "src/hotel.inf";
Object mainroom "Main Room"
with description
kitchenette can be found to the west. There's a doorway
in the south wall leading outside.",
n_to bedroom,
- s_to frontdoor,
+ s_to
+ "The weight of the snow against the door is such that it
+ won't budge.",
e_to office,
w_to kitchenette,
has light;
else
return mainroom;
],
+ before [;
+ Open:
+ print_ret
+ "The weight of the snow against the door is such that
+ it won't budge.";
+ ],
has scenery door openable;
Object bearclaw "bear claw" mainroom
with description
"The sofa is in poor shape. The upholstery is ripped and
there are several holes in it.",
+ before_implicit [;
+ Take:
+ if (action_to_be == ##Eat)
+ return 2;
+ ],
before [;
Take, Pull, Push, PushDir, Turn:
print_ret (The) self, " is too heavy for that.";
+ Open:
+ TearSub();
+ return true;
],
has scenery supporter enterable;
"The old coffee table looks as if it's had quite a bit of
use. There are burn marks covering it and the paint is
worn off in most places.",
+ before_implicit [;
+ Take:
+ if (action_to_be == ##Eat)
+ return 2;
+ ],
before [;
Take, Pull, Push, PushDir, Turn:
print_ret (The) self, " is too heavy for that.";
"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.";
+ Take, Pull, Push, PushDir, Turn, Remove:
+ print_ret
+ "The damaged electronics throw some sparks,
+ and you get a mild shock. Perhaps it's best left
+ where it is.";
SwitchOn:
if (television hasnt visited) {
score = score + 1;
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.",
+ bullet hole through the middle. The main room is to the
+ west.",
before [;
Go:
if (noun == e_obj) {
print_ret
"You can't fit through the window while
wearing the snow shoes.";
- }
- if (eastofcabin hasnt visited) {
- score = score + 1;
- give office visited;
+ if (eastofcabin hasnt visited) {
+ score = score + 1;
+ give office visited;
+ }
}
],
w_to mainroom,
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.",
+ went. There's no food anywhere in here. The main room is
+ to the east.",
e_to mainroom,
has light;
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.",
+ holes. There's a bare mattress, torn to shreds. The main
+ room is to the south.",
s_to mainroom,
has light;
}
],
daemon [;
- if (location ~= mainroom && location ~= office && location ~=
- kitchenette && location ~= bedroom && location ~= thedark &&
- snowsuit hasnt worn) {
+ if (location == northofcabin || location == southofcabin ||
+ location == westofcabin || location == truckspot || location
+ == backpacklocation || location == forest && snowsuit hasnt
+ worn) {
body_temperature = --body_temperature;
}
if (location == mainroom || location == office || location ==
knees.";
],
daemon [;
- if (location ~= mainroom && location ~= office && location ~=
- kitchenette && location ~= bedroom && location ~= thedark &&
- location ~= eastofcabin && snowshoes hasnt worn) {
+ if (location == northofcabin || location == southofcabin ||
+ location == westofcabin || location == truckspot || location
+ == backpacklocation || location == forest && snowshoes hasnt
+ worn) {
deadflag = 3;
}
],
}
give flashlight light;
SwitchOff:
- give lantern ~light;
+ give flashlight ~light;
],
has switchable;
keep wandering through endless whiteness. You won't
give up.";
14:
- deadflag = 2;
print_ret
+ "You're so cold that you begin to hallucinate, first
+ seeing the words ~Ventilation Control Room~ and then
+ yourself at a console. The hallucination quickly
+ fades.";
+ 15:
+ print
"You see something in the distance but can't make it
out. You walk toward it to find out that it's the
hotel. You collapse in the lobby as the hotel staff
- rush over to you.";
+ rush over to you.^";
+ PlayerTo(lobby1);
}
}
];
if (noun == s_obj) {
if (roof hasnt visited) {
score = score + 1;
- give roof visited;
}
}
];
return false;
];
+Object cabin "cabin" mainroom
+ with name 'cabin',
+ found_in mainroom bedroom office kitchenette southofcabin eastofcabin
+ northofcabin westofcabin,
+ before [;
+ Enter, Exit:
+ print_ret
+ "You'll have to say which compass direction to go
+ in.";
+ ],
+ has scenery;
+
Object snowmobile "snowmobile" thedark
with name 'snowmobile',
daemon [;
- snowmobile_location = random(13);
+ snowmobile_location = random(14);
if (location == forest && forest_location == snowmobile_location)
{
- deadflag = 2;
- print_ret
+ print
"A snowmobile approaches. The person says they
- saw your light and came to rescue you.";
+ saw your light and came to rescue you.^";
+ PlayerTo(lobby1);
}
return true;
],
return true;
];
+[ TearSub;
+ print_ret "Doing that would achieve little.";
+];
+
Include "grammar";
Verb 'About'
Verb 'xyzzy'
* -> Xyzzy;
+Verb 'tear'
+ * noun -> Tear;
+
+Extend 'tear'
+ * 'up' / 'open' noun -> Tear;
+
+Verb 'rip'
+ * noun -> Tear;
+
+Extend 'rip'
+ * 'up' / 'open' noun -> Tear;
+
Verb 'crawl'
- * 'through' / 'out' / 'via' noun -> Go;
+ * 'through' / 'out' / 'via' noun -> Enter;
Verb 'escape'
- * 'through' / 'out' / 'via' noun -> Go;
+ * 'through' / 'out' / 'via' noun -> Enter;
Extend 'jump'
- * 'through' / 'out' / 'via' noun -> Go;
+ * 'through' / 'out' / 'via' noun -> Enter;
Extend 'climb'
- * 'through' / 'out' / 'via' noun -> Go;
+ * 'through' / 'out' / 'via' noun -> Climb;
Extend 'go'
- * 'through' / 'out' / 'via' noun -> Go;
\ No newline at end of file
+ * 'through' / 'out' / 'via' noun -> Enter;
+
+Extend 'go' first
+ * 'out' / 'outside' -> VagueGo;
+
+Extend 'go' first
+ * 'out' / 'outside' / 'outside' 'of' noun -> VagueGo;
+
+Extend 'go' first
+ * 'in' / 'into' / 'inside' -> VagueGo;
+
+Extend 'go' first
+ * 'in' / 'into' / 'inside' / 'inside' 'of' noun -> VagueGo;
+
+Extend 'exit' first
+ * noun -> VagueGo;
+
+Extend 'leave' first
+ * noun -> VagueGo;
\ No newline at end of file