Add missing word 'place' and reflow the text to fit
[the-server-room.git] / the-server-room.inf
index f2855612b3834d96b309f8595a32e3d957b2baaa..390b4e0b4def4b6078b449cd728de29459109aa8 100644 (file)
@@ -1,6 +1,6 @@
 !% -SD
 !=========================================================================
 !% -SD
 !=========================================================================
-! Copyright (C) 2019 Jason Self <j@jxself.org>
+! Copyright (C) 2019, 2020, 2021 Jason Self <j@jxself.org>
 !
 ! This program is free software: you can redistribute it and/or modify
 ! it under the terms of the GNU Affero General Public License as
 !
 ! This program is free software: you can redistribute it and/or modify
 ! it under the terms of the GNU Affero General Public License as
 ! <https://www.gnu.org/licenses/>.
 !=========================================================================
 Constant Story "The Server Room";
 ! <https://www.gnu.org/licenses/>.
 !=========================================================================
 Constant Story "The Server Room";
-Constant Headline "^An Interactive Fiction by Daniel Bartholomew.^";
+Constant Headline "^An Interactive Fiction by Daniel Bartholomew 
+with modifications by Jason Self.^";
 Release 1;
 Release 1;
-Serial "190908";
+Serial "210202";
 Constant MAX_SCORE = 6;
 Include "parser";
 Include "verblib";
 Constant MAX_SCORE = 6;
 Include "parser";
 Include "verblib";
-Global openedbackpack = 1;
-Global openedtray = 1;
-Global takencd = 1;
 Global beeping = 1;
 !=========================================================================
 ! The Game Objects
 
 Object  break_room "Break Room"
   with  description
 Global beeping = 1;
 !=========================================================================
 ! The Game Objects
 
 Object  break_room "Break Room"
   with  description
-            "Your standard break room. A fridge, and a long counter
-            take up one wall. East is the outside world and west is
-            the hallway to the server room.",
+            "This break room is a calm, quiet and peaceful place for 
+            people to unwind and eat. Well kept and organized, the 
+            area is clean and inviting. A large television is mounted 
+            to one of the walls, next to a refrigerator. Even though 
+            no one's around the smell of a pleasant coffee blend still
+            hangs in the air. A cool-looking counter and white couch
+            take up another wall. The remaining walls have posters of
+            various sports teams of the previous four years. East is
+            the outside world and west is the hallway to the server
+            room.",
         w_to hallway,
         e_to
             "You take one look outside and think better of it. The
         w_to hallway,
         e_to
             "You take one look outside and think better of it. The
@@ -61,6 +66,39 @@ Object  break_room "Break Room"
             you have work to do.",
   has   light;
 
             you have work to do.",
   has   light;
 
+Object  tv "television" break_room
+  with  description
+            "It looks like a cheap, generic flat screen television
+            with an edge-to-edge matte screen. You see no buttons on
+            it. There should be a remote control somewhere.",
+        name 'tv' 'television' 'telly',
+        before [;
+          SwitchOn:
+            print_ret
+                "The television can only be turned on using the
+                remote.";
+        ],
+  has   container openable scenery switchable;
+
+Object  whitecouch "white couch" break_room
+  with  description
+            "With a smooth and modern design, this looks to be a luxurious couch.
+            It is extremely durable and easy to clean and maintain. Offering
+            enough room to sit or lay, it looks very soft and comfortable.",
+        name 'white' 'couch' 'sofa',
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+  has   scenery static supporter enterable;
+
+Object  posters "posters" break_room
+  with  description
+            "Fold outs from a japanese sport fanzine, the posters
+            really show off the players and game.",
+        name 'sport' 'sports' 'poster' 'posters',
+  has   scenery;
+
 Object  fridge "refrigerator" break_room
   with  description
             "This refrigerator makes a statement with a sleek, modern
 Object  fridge "refrigerator" break_room
   with  description
             "This refrigerator makes a statement with a sleek, modern
@@ -72,9 +110,12 @@ Object  fridge "refrigerator" break_room
 
 Object  counter "long counter" break_room
   with  description
 
 Object  counter "long counter" break_room
   with  description
-            "A long counter. You can't quite determine the color,
-            it's somewhere between green and brown. On the counter is
-            a microwave.",
+            "It's a beautiful, stylish, and high-quality solid wood
+            counter that runs the length of the wall. You can't quite
+            determine the color of the sleek countertop, it's
+            somewhere between green and brown. The design on the
+            countertop consists of geometric patterns. It seems a
+            sturdy, durable, and solid counter.",
         name 'counter',
   has   static supporter scenery;
 
         name 'counter',
   has   static supporter scenery;
 
@@ -84,17 +125,30 @@ Object  microwave "microwave" counter
             like a real workhorse. It's compact, quiet, and works
             great.",
         name 'microwave' 'micro',
             like a real workhorse. It's compact, quiet, and works
             great.",
         name 'microwave' 'micro',
-  has   container openable scenery;
+        before [;
+          Receive:
+            print "Put ";
+            print (a) noun;
+            print_ret
+                " into the microwave? Maybe you should come with a
+                warning label because you contain more than a trace
+                amount of nut.";
+        ],
+  has   container openable;
 
 Object  table "table" break_room
 
 Object  table "table" break_room
-  with  description "It's a table. Were you expecting something else?",
+  with  description "The table is made of strong wood. It looks to 
+                    be about 6 feet across and could probably sit 6 
+                    to 8 people. It's white, round and seems very 
+                    functional as a table despite looking quite 
+                    heavy.",
         name 'table',
         before [;
           Take:
             "Let me spell it out for you: it is a T A B L E and you
             are NOT Superman.";
         ],
         name 'table',
         before [;
           Take:
             "Let me spell it out for you: it is a T A B L E and you
             are NOT Superman.";
         ],
-  has   supporter;
+  has   scenery supporter;
 
 Object  backpack "backpack" table
   with  description
 
 Object  backpack "backpack" table
   with  description
@@ -107,9 +161,9 @@ Object  backpack "backpack" table
         article "your",
         before [;
           Open:
         article "your",
         before [;
           Open:
-            if (openedbackpack == 1) {
+            if (backpack hasnt visited) {
                 score = score + 2;
                 score = score + 2;
-                openedbackpack = 2;
+                give backpack visited;
             }
         ],
   has   clothing container openable;
             }
         ],
   has   clothing container openable;
@@ -122,20 +176,22 @@ Object  disc "Trisquel CD" backpack
         name 'disk' 'disc' 'Trisquel' 'cd',
         after [;
           Take:
         name 'disk' 'disc' 'Trisquel' 'cd',
         after [;
           Take:
-            if (takencd == 1) {
+            if (disc hasnt visited) {
                 score = score + 2;
                 score = score + 2;
-                takencd = 2;
-                print_ret "You pick up the Trisquel CD.^";
+                give disc visited;
             }
         ],
   has   ;
 
 Object  hallway "Hallway"
   with  description
             }
         ],
   has   ;
 
 Object  hallway "Hallway"
   with  description
-            "Bereft of features, adornment or even adequate lighting,
-            this hallway is as plain as they come. Doors lead east
-            back to the break room, north to the server room, or
-            west to the restrooms.",
+            "The hallway is long and rectangular, and the walls are 
+            painted a cool blue and the floor is carpeted. One of the 
+            long walls is decorated with a few paintings, all of 
+            different scenes from around the city. The wall opposite 
+            the paintings has a glass display case. Doors lead east 
+            back to the break room, north to the server room, or west 
+            to the restrooms.",
         e_to break_room,
         n_to
             "You use your key card to open the server room door but
         e_to break_room,
         n_to
             "You use your key card to open the server room door but
@@ -144,9 +200,69 @@ Object  hallway "Hallway"
             Through the window in the door you can see someone moving
             around inside but there shouldn't be anyone else here
             today.",
             Through the window in the door you can see someone moving
             around inside but there shouldn't be anyone else here
             today.",
-        w_to
-            "When nature calls, you'll know about it, but right now,
-            it isn't calling.",
+        w_to restroom,
+  has   light;
+
+Object  carpet "carpet" hallway
+  with  description
+            "The carpet is a deep red color and very well kept. It 
+            covers the floor of the entire hallway. It has an 
+            intricate pattern of woven vines, flowers and leaves.",
+        name 'carpet' 'floor',
+  has   scenery;
+
+Object  paintings "paintings" hallway
+  with  description
+            "There's a painting of the city bridge with a young girl 
+            standing on it and looking out to the horizon, another of 
+            a large three-masted ship tied up at the docks with 
+            several people on the deck looking out over the water, 
+            one of an old style saloon with a bucking horse outside.",
+        name 'paint' 'painting' 'paintings',
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret (The) self, " are firmly attached to the wall.";
+        ],
+  has   scenery pluralname;
+
+Object  case "glass display case" hallway
+  with  description
+            "The display case is large and made of glass.",
+        name 'glass' 'display' 'case',
+        before [;
+          Take, Pull, Push, PushDir:
+            print_ret (The) self, " is too heavy for that.";
+        ],
+  has   container openable scenery transparent;
+
+Object  award "crystal award" case
+  with  description
+            "It's an award the company won. It's made of extremely 
+            ornate crystal, in fact more so than any other crystal 
+            award you've ever seen; this is probably because it's the 
+            only one you've ever seen up close. The bottom is a solid 
+            crystal octagon and there are actually eight more little 
+            crystals that act as legs supporting the main crystal 
+            octagon.",
+        name 'crystal' 'award';
+
+Object  keycard "key card" break_room
+  with  description
+            "The key card is thin and black with a magnetic strip 
+            down the middle. The card is slightly bendable and easy 
+            to grip.",
+        name 'key' 'card' 'keycard',
+  has   ;
+
+Object  restroom "Restroom"
+  with  description
+            "This average-sized, square restroom has a sink set into a
+            resin counter. The floor is tiled, the ceiling has
+            removable tiles, and the walls are painted with a
+            wallpapered dado. Light is provided by ceiling lights. The
+            room is done in colors that remind you of the sky and
+            overall looks very eclectic.",
+        e_to hallway,
   has   light;
 
 Object  server_room "Server Room"
   has   light;
 
 Object  server_room "Server Room"
@@ -198,9 +314,9 @@ Object  tray "tray" server_room
             if (noun ~= disc)
                 print_ret (The) noun, " is too big to fit.";
           Open:
             if (noun ~= disc)
                 print_ret (The) noun, " is too big to fit.";
           Open:
-            if (openedtray == 1) {
+            if (tray hasnt visited) {
                 score = score + 2;
                 score = score + 2;
-                openedtray = 2;
+                give tray visited;
             }
         ],
         after [;
             }
         ],
         after [;
@@ -224,6 +340,7 @@ Object  tray "tray" server_room
 
 [ Initialise;
     location = break_room;
 
 [ Initialise;
     location = break_room;
+    move keycard to player;
     "^^^^It's Saturday, a nice one at that, and you've been called in
     to fix a server that's on the blink. Again.^^You've had it. This
     server is going to run GNU/Linux from this day forward! The
     "^^^^It's Saturday, a nice one at that, and you've been called in
     to fix a server that's on the blink. Again.^^You've had it. This
     server is going to run GNU/Linux from this day forward! The
@@ -239,4 +356,4 @@ Object  tray "tray" server_room
 !=========================================================================
 ! Standard and Extended Grammar
 Include "grammar";
 !=========================================================================
 ! Standard and Extended Grammar
 Include "grammar";
-!=========================================================================
\ No newline at end of file
+!=========================================================================