Update to serial 220612
[snowed-in.git] / src / snowed-in.inf
index 322d8808a9b93d9c9f276d6a461f38505d8560ba..012f30f3c7d5291fd736ede732f3ebaabe6a0ac8 100644 (file)
@@ -42,8 +42,8 @@ Constant Headline
     If not, contact the place you got it from.^^";
 Include "parser";
 Include "verblib";
     If not, contact the place you got it from.^^";
 Include "parser";
 Include "verblib";
-Release 1;
-Serial "220601";
+Release 3;
+Serial "220612";
 
 Object  mainroom "Main Room"
   with  description 
 
 Object  mainroom "Main Room"
   with  description 
@@ -56,7 +56,9 @@ Object  mainroom "Main Room"
             kitchenette can be found to the west. There's a doorway 
             in the south wall leading outside.",
         n_to bedroom,
             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;
         e_to office,
         w_to kitchenette,
   has   light;
@@ -86,6 +88,12 @@ Object  frontdoor "front door" mainroom
             else
                 return mainroom;
         ],
             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
   has   scenery door openable;
 
 Object  bearclaw "bear claw" mainroom
@@ -100,9 +108,17 @@ Object  sofa "sofa" mainroom
   with  description 
             "The sofa is in poor shape. The upholstery is ripped and 
             there are several holes in it.",
   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.";
         before [;
           Take, Pull, Push, PushDir, Turn:
             print_ret (The) self, " is too heavy for that.";
+          Open:
+            TearSub();
+            return true;
         ],
   has   scenery supporter enterable;
 
         ],
   has   scenery supporter enterable;
 
@@ -112,6 +128,11 @@ Object  coffeetable "coffee table" mainroom
             "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.",
             "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.";
         before [;
           Take, Pull, Push, PushDir, Turn:
             print_ret (The) self, " is too heavy for that.";
@@ -170,8 +191,11 @@ Object  television "flat-screen TV" mainroom
             "The flat-screen TV looks fairly modern but it's been 
             broken in a fight and the screen is dangling out.",
         before [;
             "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;
           SwitchOn:
             if (television hasnt visited) {
                 score = score + 1;
@@ -263,7 +287,8 @@ Object  office "Office"
             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 
             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) {
         before [;
           Go:
             if (noun == e_obj) {
@@ -412,7 +437,8 @@ Object  kitchenette "Kitchenette"
             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 
             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;
 
         e_to mainroom,
   has   light;
 
@@ -447,8 +473,8 @@ Object  bedroom "Bedroom"
   with  description 
             "This bedroom is small and cramped, and looks like a 
             major fight happened as the exterior wall has bullet 
   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;
 
         s_to mainroom,
   has   light;
 
@@ -973,7 +999,6 @@ Object  northofcabin "North Of Cabin"
             if (noun == s_obj) {
                 if (roof hasnt visited) {
                     score = score + 1;
             if (noun == s_obj) {
                 if (roof hasnt visited) {
                     score = score + 1;
-                    give roof visited;
                 }
             }
         ];
                 }
             }
         ];
@@ -1050,6 +1075,18 @@ Object  westofcabin "West Of Cabin"
     return false;
 ];
 
     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 [;
 Object  snowmobile "snowmobile" thedark
   with  name 'snowmobile',
         daemon [;
@@ -1187,6 +1224,10 @@ Object  grue "grue" thedark
     return true;
 ];
 
     return true;
 ];
 
+[ TearSub;
+    print_ret "Doing that would achieve little.";
+];
+
 Include "grammar";
 
 Verb 'About'
 Include "grammar";
 
 Verb 'About'
@@ -1207,17 +1248,47 @@ Verb 'Hint'
 Verb 'xyzzy'
     * -> Xyzzy;
 
 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'
 Verb 'crawl'
-    * 'through' / 'out' / 'via' noun -> Go;
+    * 'through' / 'out' / 'via' noun -> Enter;
 
 Verb 'escape'
 
 Verb 'escape'
-    * 'through' / 'out' / 'via' noun -> Go;
+    * 'through' / 'out' / 'via' noun -> Enter;
 
 Extend 'jump'
 
 Extend 'jump'
-    * 'through' / 'out' / 'via' noun -> Go;
+    * 'through' / 'out' / 'via' noun -> Enter;
 
 Extend 'climb'
 
 Extend 'climb'
-    * 'through' / 'out' / 'via' noun -> Go;
+    * 'through' / 'out' / 'via' noun -> Climb;
 
 Extend 'go'
 
 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