2584eb0dd9b58dfd4f18655e1a2b6d001739f2fa
[the-mall.git] / the-mall.inf
1 ! Copyright (C) 2019 Jason Self <j@jxself.org>
2 !
3 ! This file is free software: you may copy, redistribute and/or modify 
4 ! it under the terms of the GNU Affero General Public License as 
5 ! published by the Free Software Foundation, either version 3 of the 
6 ! License, or (at your option) any later version.
7 !
8 ! This file is distributed in the hope that it will be useful, but 
9 ! WITHOUT ANY WARRANTY; without even the implied warranty of 
10 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
11 ! Affero General Public License for more details.
12 !
13 ! You should have received a copy of the GNU Affero General Public 
14 ! License along with this file. If not, see https://gnu.org/licenses/
15 Constant NO_SCORE;
16 Constant Story "The Mall";
17 Constant Headline 
18     "^By Jason Self^
19     If you get stuck try typing HELP.^
20     ^Send bugs and feedback by email to j@@64jxself.org.
21     ^Copyright (C) 2019 Jason Self
22     This game gives you freedom; you can change and share it under 
23     the terms of the GNU Affero General Public License as published by 
24     the Free Software Foundation, either version 3 of the License, or 
25     (at your option) any later version. See the GNU Affero General 
26     Public License for details.^
27     IFID 1AB626D5-E03F-4F03-836C-50F65B643B9B^";
28 Include "parser";
29 Include "verblib";
30 Release 0;
31 Serial "190714";
32
33 Object  bank "Bank of Zork"
34   with  description 
35             "The local branch of the Bank of Zork, the largest banking 
36             institution of the Great Underground Empire. The walls are 
37             redpainted and there is a distinct wash of pine and 
38             sandalwood that hovers in the air. Beyond the lobby of the 
39             bank, to the north, lies the vault. The air there is 
40             dark-- almost heavy-- and thick with the scents of fresh 
41             paper and silver and copper. A darkened office sits to the 
42             south. As with all branches of the Bank of Zork, a 
43             portrait of J. Pierpont Flathead hangs on the wall.",
44         n_to vaultdoor,
45         s_to securityoffice,
46         w_to mall,
47   has   light;
48
49 Object  closet "Closet"
50   with  description 
51             "In the closet of the workshop, it is mostly dark. Here 
52             lie the new supplies waiting to be taken out to customers 
53             to make new teddy bears. Their beady eyes glisten as they 
54             reflect the light from the workshop, their bodies deflated 
55             in some places, bulging unnaturally in others.",
56         e_to workshop,
57   has   light;
58
59 Object  bears "teddy bears" closet
60   with  name 'bear' 'bears' 'teddy' 'teddies' 'ted',
61         before [;
62           Take, Pull, Push, PushDir:
63             print_ret "Shoplifting isn't the answer.";
64         ],
65   has   scenery;
66
67 Object  cookhouse "Cookhouse"
68   with  description 
69             "The glowing letters atop indicate that this restaurant is 
70             called ~The Cookhouse.~ There's a light smokiness in the 
71             air, and the tables are covered in soft-looking linen 
72             tablecloths. Although, since the mall closed, all of the 
73             patrons have left.",
74         n_to mall,
75   has   light;
76
77 Object  table2 "table" cookhouse
78   with  name 'table',
79   has   scenery supporter;
80
81 Object  tablecloth "tablecloth" table2
82   with  name 'tablecloth' 'linen' 'cloth',
83         description "It's made of soft-looking linen.",
84         before [;
85           Take, Pull, Push, PushDir:
86             print_ret "Shoplifting isn't the answer.";
87         ],
88   has   scenery;
89
90 Object  securityoffice "Security Office"
91   with  description 
92             "A small office belonging to the bank's security officer. 
93             You scan the room, seeing a table and a large bulky 
94             television.",
95         n_to bank,
96   has   light;
97
98 Object  television "television" securityoffice
99   with  name 'television' 'tv' 'screen' 'monitor',
100         description 
101             "It's big, gray, and one of those old-fashioned CRT 
102             models.",
103         watch_count 0,
104         before [;
105           Listen, Examine:
106             if (television has on) {
107                 self.watch_count = self.watch_count + 1;
108                 switch (self.watch_count) {
109                   default:
110                     print 
111                         "It's big, gray, and one of those 
112                         old-fashioned CRT models. It looks very 
113                         heavy.^The TV is currently switched on. It's 
114                         showing grainy footage at odd angles from the 
115                         vault's security cameras.^";
116                     return true;
117                 }
118             }
119             ;
120           Take, Pull, Push, PushDir:
121             print_ret "The television is firmly attached to the wall.";
122         ],
123         after [;
124           SwitchOn:
125             print 
126                 "The television comes to life, showing grainy footage 
127                 at odd angles from the vault's security cameras.^";
128             return true;
129         ],
130   has   scenery switchable;
131
132 Object  table "table" securityoffice
133   with  name 'table',
134         description 
135             "Made from metal, it looks to be a solid and hefty table.",
136   has   scenery supporter;
137
138 Object  coppercoin "copper coin" table
139   with  name 'copper' 'coin' 'zorkmid',
140         description 
141             "The coin seems to be very old, in very poor condition, 
142             and somewhat irregular in shape. The only things clearly 
143             visible are what appears to be a name on one side: Belwit 
144             The Flat and a date on the other: 699 GUE.";
145
146 Object  keycard "keycard" table
147   with  name 'keycard' 'key' 'card',
148         description "The keycard is used to open things.";
149
150 Object  mall "Mall"
151   with  description 
152             "You're in the main walkway. It's bright and clean with 
153             stores all around. Pale light glimmers off the polished 
154             tile like sunlight on water. The quietness of the closed 
155             mall floats by as if on the wind. The mall's exit is to 
156             the southwest.",
157         n_to workshop,
158         s_to cookhouse,
159         sw_to mallexit,
160         e_to bank,
161         w_to salon,
162   has   light;
163
164 Object  tile "tile" mall
165   with  name 'tile' 'tiles',
166   has   scenery;
167
168 Object  walkway "walkway" mall
169   with  name 'walkway' 'hallway',
170   has   scenery;
171
172 Object  stores "stores" mall
173   with  name 'store' 'stores' 'shop' 'shops',
174   has   scenery;
175
176 Object  mallexit "door" mall
177   with  name 'door' 'exit' 'glass',
178         description 
179             "A revolving door to the outside world, with the word 
180             ~Exit~ written above. Sunlight streams crisply in through 
181             the glass.",
182         with_key keycard,
183         before [;
184           unlock:
185             deadflag = 2;
186             return true;
187         ],
188   has   scenery openable locked;
189
190 Object  portrait "portrait" bank
191   with  name 'portrait' 'picture' 'photo',
192         description 
193             "It's a portrait of J. Pierpont Flathead. His portrait 
194             adorns every branch of the Bank of Zork.",
195         before [;
196           Take, Pull, Push, PushDir:
197             print_ret (The) self, " is firmly attached to the wall.";
198         ],
199   has   scenery;
200
201 Object  salon "Salon"
202   with  description [;
203             print "You've just sauntered into a salon.";
204             if (salon hasnt visited)
205                 print 
206                     " Suddenly you bump your head 
207                     on the ceiling, but it's not such a bad bump that it's going 
208                     to prevent you from looking at things.";
209             if (salon has visited)
210                 print 
211                     " Remembering the low ceiling, 
212                     you take care not to bump your head.";
213             print 
214                 " Behind the reception desk is a small display made up 
215                 of backlit shampoos and conditioners in various shades 
216                 of translucent blue. Continuing to the west is another 
217                 room.";
218             new_line;
219         ],
220         e_to mall,
221         w_to salon2,
222   has   light;
223
224 Object  desk "reception desk" salon
225   with  name 'desk' 'reception',
226   has   scenery;
227
228 Object  shampoo "shampoos" salon
229   with  name 'shampoo' 'shampoos' 'display',
230         before [;
231           Take, Pull, Push, PushDir:
232             print_ret "Shoplifting isn't the answer.";
233         ],
234   has   scenery;
235
236 Object  conditioner "conditioners" salon
237   with  name 'conditioner' 'conditioners',
238         before [;
239           Take, Pull, Push, PushDir:
240             print_ret "Shoplifting isn't the answer.";
241         ],
242   has   scenery;
243
244 Object  salon2 "Salon"
245   with  description 
246             "This is a tranquil glasslit room where the stylists 
247             would work on peoples' hair. You can imagine the sounds of 
248             clipping shears and buzzing razors resounding through the 
249             air with the clarity of a ringing bell when this place is 
250             open.",
251         e_to salon,
252   has   light;
253
254 Object  vaultdoor "vault door" bank
255   with  name 'vault' 'safe',
256         description 
257             "A large, circular, and hefty door. The words 
258             ~Manufactured By The Frobozz Magic Vault Company~ are 
259             engraved around the edge.",
260   has   scenery door openable locked;
261
262 Object  workshop "Bear Workshop"
263   with  description 
264             "A workshop for making stuffed bears although by now 
265             everything is put away. The workshop retains a pleasant 
266             atmosphere. You should try going west.",
267         w_to closet,
268         s_to mall,
269   has   light;
270
271 [ Initialise;
272     Location = mall;
273     "^You fell asleep in the mall. Now it's closed, and the exit's 
274     locked. Can you get out?";
275 ];
276
277 [ XyzzySub;
278     "Nothing obvious happens.";
279 ];
280
281 [ HelpSub;
282     "If you need help try some of the commands from:
283     ^http://pr-if.org/doc/play-if-card/";
284 ];
285
286 Include "grammar";
287
288 Verb 'About'
289     * -> Version;
290
291 Verb 'Info'
292     * -> Version;
293
294 Verb 'Help'
295     * -> Help;
296
297 Verb 'xyzzy'
298     * -> Xyzzy;