Add missing word 'place' and reflow the text to fit
[the-server-room.git] / the-server-room.inf
index a3f8cc036e7c1ab8a5267a26e4e80feb027c40d0..390b4e0b4def4b6078b449cd728de29459109aa8 100644 (file)
@@ -1,6 +1,6 @@
 !% -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
 ! <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;
-Serial "080625";                        !for keeping track of public releases
+Serial "210202";
 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
-            "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
@@ -61,43 +66,104 @@ Object  break_room "Break Room"
             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 "Your standard refrigerator.",
+  with  description
+            "This refrigerator makes a statement with a sleek, modern
+            and minimal stainless steel design. Featuring large doors
+            it seems quite an impressive refrigerator that can hold a
+            lot.",
         name 'fridge' 'refrigerator',
   has   container openable scenery;
 
 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;
 
 Object  microwave "microwave" counter
-  with  description "Your standard microwave.",
+  with  description
+            "A combination of silver and black, this microwave looks
+            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
-  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.";
         ],
-  has   supporter;
+  has   scenery supporter;
 
 Object  backpack "backpack" table
-  with  description "Your backpack.",
+  with  description
+            "This backpack looks like a modern art piece that was
+            made using brown and light blue-green watercolors. A black
+            line was traced around to make the stitching lines.
+            Well-worn and quite suitable for travel, it looks like it
+            could carry a lot of belongings.",
         name 'pack' 'back' 'bag' 'backpack',
         article "your",
         before [;
           Open:
-            if (openedbackpack == 1) {
+            if (backpack hasnt visited) {
                 score = score + 2;
-                openedbackpack = 2;
+                give backpack visited;
             }
         ],
   has   clothing container openable;
@@ -110,34 +176,93 @@ Object  disc "Trisquel CD" backpack
         name 'disk' 'disc' 'Trisquel' 'cd',
         after [;
           Take:
-            if (takencd == 1) {
+            if (disc hasnt visited) {
                 score = score + 2;
-                takencd = 2;
-                print_ret "You pick up the Trisquel CD.^";
+                give disc visited;
             }
         ],
   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 server_room,
-        w_to
-            "When nature calls, you'll know about it, but right now,
-            it isn't calling.",
+        n_to
+            "You use your key card to open the server room door but
+            instead of a beep of approval and an unlocked door you
+            get a buzz of denial and the door remains locked. Plus:
+            Through the window in the door you can see someone moving
+            around inside but there shouldn't be anyone else here
+            today.",
+        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 [;
-          Go:
-            if (noun == n_obj) {
-                StartDaemon(server_room);
-                print
-                    "^^You use your key card to open the server room
-                    door and step into your world.^";
-            }
+          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"
@@ -149,9 +274,7 @@ Object  server_room "Server Room"
             up rack 7. The little indicator light is blinking red, and
             it is beeping.",
         s_to hallway,
-        daemon [;
-            if (location ~= server_room)
-                return;
+        each_turn [;
             beeping = random(7);
             switch (beeping) {
               1:
@@ -187,10 +310,13 @@ Object  tray "tray" server_room
   with  description "It's a CD tray. Just like every other CD tray.",
         name 'cd' 'tray',
         before [;
+          Receive:
+            if (noun ~= disc)
+                print_ret (The) noun, " is too big to fit.";
           Open:
-            if (openedtray == 1) {
+            if (tray hasnt visited) {
                 score = score + 2;
-                openedtray = 2;
+                give tray visited;
             }
         ],
         after [;
@@ -214,6 +340,7 @@ Object  tray "tray" server_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
@@ -229,4 +356,4 @@ Object  tray "tray" server_room
 !=========================================================================
 ! Standard and Extended Grammar
 Include "grammar";
-!=========================================================================
\ No newline at end of file
+!=========================================================================