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