336d682a59fd654e8a956aacef8bc101cff8a0ec
[snowed-in.git] / src / hotel.inf
1 ! Copyright (C) 2022 Jason Self <j@jxself.org>
2 !
3 ! This file is free software: you may copy, redistribute and/or
4 ! modify it under the terms of the GNU Affero General Public License
5 ! as published by the Free Software Foundation, either version 3 of
6 ! the 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 ! SPDX-License-Identifier: AGPL-3.0-or-later
17
18 Object  lobby1 "Hotel Lobby"
19   with  description 
20             "The lobby is a large open space with marble flooring, 
21             dark wood paneled walls, a high vaulted ceiling and an 
22             impressive crystal chandelier. The room feels full of 
23             light and quiet elegance. A life-sized bronze statue of a 
24             man in his twenties stands at the far end of the room. In 
25             front of the statue is a plush red leather chair next to 
26             a low marble table. The front desk is to the north. The 
27             lobby continues to the west and east.",
28   has   light;
29
30 Object  bronzestatue "life-sized bronze statue" lobby1
31   with  name 'life-sized' 'bronze' 'statue',
32   with  description [;
33             print 
34                 "The life-sized bronze statue appears to be that of a
35                 young man with a very serious and determined 
36                 expression on his face";
37             if (bronzestatue has visited) {
38                 print 
39                     ", and there's a small crack running diagonally 
40                     through one of the cheeks";
41             }
42             print_ret 
43                 ". The statue sits on a small pedestal bearing a 
44                 plaque.";
45         ],
46         before [;
47           Take, Pull, Push, PushDir, Turn:
48             if (bronzestatue hasnt visited) {
49                 give bronzestatue visited;
50                 print_ret 
51                     "The statue falls off its pedestal and lands on
52                     the ground, cracking loudly as it hits the floor.
53                     Some hotel staff hurry over to shoo you away and 
54                     place the statue back on the pedestal.";
55             }
56             else {
57                 print_ret 
58                     "Haven't you damaged the statue enough 
59                     already?";
60             }
61         ],
62   has   scenery;
63
64 Object  pedestal "stone pedestal" lobby1
65   with  name 'stone' 'pedestal',
66   with  description 
67             "It's made of a dull grey stone and is rectangular in 
68             shape. There's a bronze plaque near the top.",
69   has   scenery;
70
71 Object  plaque "bronze plaque" lobby1
72   with  name 'bronze' 'plaque' 'sign' 'plate',
73   with  description 
74             "The bronze plaque is engraved with the words ~Frederick 
75             Smith, Hotel Founder~.",
76   has   scenery;
77
78 Object  marblefloor "marble floor" lobby1
79   with  name 'marble' 'floor' 'flooring',
80   with  description 
81             "The marble floor has been polished to a sheen, making it 
82             appear almost shiny underfoot.",
83   has   scenery;
84
85 Object  woodpanels "dark wood paneled walls" lobby1
86   with  name 'dark' 'wood' 'panel' 'panels' 'paneling' 'wall' 'walls',
87   with  description 
88             "The walls have been painted a rich deep brown color 
89             which contrasts nicely with the rest of the room.",
90   has   scenery;
91
92 Object  chandelier "crystal chandelier" lobby1
93   with  name 'crystal' 'chandelier' 'gold' 'silver' 'filigree',
94   with  description 
95             "The crystal chandelier is beautiful and ornate, with 
96             many branches extending from a central shaft. It seems to 
97             be made mostly of clear crystal, though some parts are 
98             decorated with gold and silver filigree. The crystal 
99             chandelier is suspended by thick iron chains as it hangs 
100             in the center of the room, high above the marble floor.",
101   has   scenery;
102
103 Object  ironchains "thick iron chains" lobby1
104   with  name 'thick' 'iron' 'chain' 'chains' 'metal',
105   with  description 
106             "The thick iron chains dangle down from the ceiling and 
107             connect to a crystal chandelier. They're strong enough to 
108             hold a great deal of weight without breaking.",
109   has   scenery;
110
111 Object  leatherchair "plush red leather chair" lobby1
112   with  name 'plush' 'red' 'leather' 'chair',
113   with  description 
114             "It looks like a comfortable, well-made seat, featuring a 
115             high back and padded seat covered in soft red leather. 
116             It's clearly designed for comfort.",
117         before [;
118           Enter:
119             print 
120                 "You sink into the deep cushions of the chair. It feels 
121                 really nice, as if it was made just for you. You can 
122                 feel your body relax immediately.^";
123             PlayerTo(leatherchair, 1);
124             rtrue;
125         ],
126   has   enterable supporter scenery;
127
128 Object  marbletable "low marble table" lobby1
129   with  name 'low' 'marble' 'table' 'leg' 'legs' 'stylized' 'vine' 'vines',
130   with  description 
131             "The table is made from a slab of white marble, looking 
132             smooth and polished. It's large enough to hold several 
133             books or magazines comfortably. The marble legs are 
134             carved with stylized vines.",
135         before [;
136           Enter:
137             print 
138                 "You sit on the surface of the low marble table; it 
139                 feels cold and hard.^";
140             PlayerTo(marbletable, 1);
141             rtrue;
142         ],
143   has   enterable supporter scenery;
144
145 Object  ceiling "high valuted ceiling" lobby1
146   with  name 'high' 'vaulted' 'ceiling' 'roof',
147   with  description 
148             "The high vaulted ceiling adds an air of grandeur. It 
149             makes this lobby feel even larger than it already is. An 
150             impressive crystal chandelier hangs from it.",
151   has   scenery;
152
153 Object  hotelmanager "the hotel manager" lobby1
154   with  name 'hotel' 'manager' 'brian',
155   with  description 
156             "The hotel manager is a tall, distinguished man with 
157             brown eyes and salt-and-pepper hair. He wears a blue suit 
158             and a red tie. He's been working at the hotel for several 
159             years.",
160         initial [;
161             if (lobby1 hasnt visited) {
162                 print 
163                     "~I'm so glad to see you made it back,~ says the
164                     hotel manager, who looks exhausted. You rub your
165                     arms vigorously trying to warm up and shake off
166                     the cold.^";
167             }
168         ],
169         times_grue_asked_about 0,
170         times_name_asked_about 0,
171         life [;
172           Tell, Ask:
173             switch (second) {
174               'grue':
175                 self.times_grue_asked_about = self.times_grue_asked_about
176                 + 1;
177                 switch (self.times_grue_asked_about) {
178                   1:
179                     print_ret "The hotel manager goes pale. ~There's a grue in the area? I hadn't heard.~";
180                   2:
181                     print_ret "~I'm sorry; I've been too busy running the hotel to keep up on the news.~";
182                   3:
183                     print_ret "~We probably shouldn't be discussing this so as to not cause a panic.~";
184                   default:
185                     "~Perhaps it's best to get some rest and not talk about such things.~";
186                 }
187               'name':
188                 self.times_name_asked_about = self.times_name_asked_about
189                 + 1;
190                 switch (self.times_name_asked_about) {
191                   1:
192                     print_ret "~My name is Brian,~ he replies.";
193                   2:
194                     print_ret 
195                         "~Brian.~ He replies. ~My parents named 
196                         me after my father.~";
197                   3:
198                     print_ret "~I'm Brian, the hotel manager.~";
199                   default:
200                     print_ret "~I believe we've covered that topic. 
201                     Is there anything else I can assist with?~";
202                 }
203             }
204             "~Yeah, yeah.~";
205         ],
206   has   animate proper male transparent;
207
208 Object  bluesuit "blue suit" hotelmanager
209   with  name 'blue' 'suit',
210   with  description 
211             "A soft blue suit that has a subtle pattern of black 
212             pinstripes.",
213         before [;
214           Take, Pull, Push, PushDir, Turn:
215             print_ret 
216                 "The hotel manager would probably not like 
217                 that.";
218         ],
219   has   scenery;
220
221 Object  redtie "red tie" hotelmanager
222   with  name 'red' 'tie',
223   with  description 
224             "A classic red necktie with a thin, straight black line 
225             running across the middle.",
226         before [;
227           Take, Pull, Push, PushDir, Turn:
228             print_ret 
229                 "The hotel manager would probably not like 
230                 that.";
231         ],
232   has   scenery;