2 !=========================================================================
3 ! Copyright (C) 2019 Jason Self <j@jxself.org>
5 ! This program is free software: you can redistribute it and/or modify
6 ! it under the terms of the GNU Affero General Public License as
7 ! published by the Free Software Foundation, either version 3 of the
8 ! License, or (at your option) any later version.
10 ! This program is distributed in the hope that it will be useful,
11 ! but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ! GNU Affero General Public License for more details.
15 ! You should have received a copy of the GNU Affero General Public
16 ! License along with this program. If not, see
17 ! <https://www.gnu.org/licenses/>.
19 !This file incorporates work covered by the following copyright and
22 ! Copyright (C) 2008 Daniel Bartholomew
24 ! This program is free software: you can redistribute it and/or modify
25 ! it under the terms of the GNU General Public License as published by
26 ! the Free Software Foundation, either version 3 of the License, or
27 ! (at your option) any later version.
29 ! This program is distributed in the hope that it will be useful,
30 ! but WITHOUT ANY WARRANTY; without even the implied warranty of
31 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32 ! GNU General Public License for more details.
34 ! You should have received a copy of the GNU General Public License
35 ! along with this program. If not, see
36 ! <https://www.gnu.org/licenses/>.
37 !=========================================================================
38 Constant Story "The Server Room";
39 Constant Headline "^An Interactive Fiction by Daniel Bartholomew.^";
42 Constant MAX_SCORE = 6;
45 Global openedbackpack = 1;
46 Global openedtray = 1;
49 !=========================================================================
52 Object break_room "Break Room"
54 "Your standard break room. A fridge, and a long counter
55 take up one wall. East is the outside world and west is
56 the hallway to the server room.",
59 "You take one look outside and think better of it. The
60 daystar is too bright and terrible to face today. Besides,
61 you have work to do.",
64 Object fridge "refrigerator" break_room
66 "This refrigerator makes a statement with a sleek, modern
67 and minimal stainless steel design. Featuring large doors
68 it seems quite an impressive refrigerator that can hold a
70 name 'fridge' 'refrigerator',
71 has container openable scenery;
73 Object counter "long counter" break_room
75 "A long counter. You can't quite determine the color,
76 it's somewhere between green and brown. On the counter is
79 has static supporter scenery;
81 Object microwave "microwave" counter
83 "A combination of silver and black, this microwave looks
84 like a real workhorse. It's compact, quiet, and works
86 name 'microwave' 'micro',
87 has container openable scenery;
89 Object table "table" break_room
90 with description "It's a table. Were you expecting something else?",
94 "Let me spell it out for you: it is a T A B L E and you
99 Object backpack "backpack" table
101 "This backpack looks like a modern art piece that was
102 made using brown and light blue-green watercolors. A black
103 line was traced around to make the stitching lines.
104 Well-worn and quite suitable for travel, it looks like it
105 could carry a lot of belongings.",
106 name 'pack' 'back' 'bag' 'backpack',
110 if (openedbackpack == 1) {
115 has clothing container openable;
117 Object disc "Trisquel CD" backpack
119 "An automatic recovery CD, guaranteed to fix almost any
120 server.^^Ok, it's just an install CD that auto-installs
121 Trisquel, but hey, if it works, it works.",
122 name 'disk' 'disc' 'Trisquel' 'cd',
128 print_ret "You pick up the Trisquel CD.^";
133 Object hallway "Hallway"
135 "Bereft of features, adornment or even adequate lighting,
136 this hallway is as plain as they come. Doors lead east
137 back to the break room, north to the server room, or
138 west to the restrooms.",
141 "You use your key card to open the server room door but
142 instead of a beep of approval and an unlocked door you
143 get a buzz of denial and the door remains locked. Plus:
144 Through the window in the door you can see someone moving
145 around inside but there shouldn't be anyone else here
150 Object restroom "Restroom"
152 "This average-sized, square restroom has a sink set into a
153 resin counter. The floor is tiled, the ceiling has
154 removable tiles, and the walls are painted with a
155 wallpapered dado. Light is provided by ceiling lights. The
156 room is done in colors that remind you of the sky and
157 overall looks very eclectic.",
161 Object server_room "Server Room"
163 "The fans, the lights, the chill . . . yep, it's a server
164 room. Full of servers from a dozen different
165 manufacturers, each with their own quirks.^^Your
166 attention is immediately drawn to a server 2/3 of the way
167 up rack 7. The little indicator light is blinking red, and
174 "^The beeping is driving you crazy.";
176 "^It's hard to think, with all of the beeping.";
178 "^The monotony of the beeping is maddening.";
180 "^You can't stand the beeping.";
182 "^The beeping reminds you of your alarm clock.";
184 "^beep . . . beep . . . beep . . . beep . . . beep
187 "^If you don't stop the beeping soon, you'll loose
188 what little hair you have left.";
193 Object server "server" server_room
195 "The indicator light on this ancient server is blinking
196 orange. The rest the front is featureless except for the
197 CD tray. The beeping seems to emanate from somewhere
199 name 'server' 'machine' 'computer' 'ancient' 'old',
202 Object tray "tray" server_room
203 with description "It's a CD tray. Just like every other CD tray.",
208 print_ret (The) noun, " is too big to fit.";
210 if (openedtray == 1) {
217 print_ret "You press the button and the CD tray pops out.";
222 "^With the CD in the tray, you quickly reboot the
223 server.^^After the bios posts, your disc starts
224 doing its thing and before you know it the server
225 is happily running Trisquel, and even more than
226 that, the beeping has stopped. Yay!";
229 has container openable scenery;
231 !=========================================================================
232 ! Entry point routines
235 location = break_room;
236 "^^^^It's Saturday, a nice one at that, and you've been called in
237 to fix a server that's on the blink. Again.^^You've had it. This
238 server is going to run GNU/Linux from this day forward! The
239 process will be easy - just put the disc into the server and away
240 we go. Now where is that Trisquel CD?^";
245 print "You have won";
248 !=========================================================================
249 ! Standard and Extended Grammar
251 !=========================================================================