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