1 ! Copyright (C) 2019, 2020 Jason Self <j@jxself.org>
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.
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.
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/
16 Object kitchen "Kitchen"
18 "This looks like a restaurant-quality kitchen. It's small
19 but full of natural light coming in through the large
20 window, adding a nice sense of a warm glow. Despite the
21 small size it has a high ceiling, and the room was set up
22 into a rectangular shape. The layout allows for easy
23 access. The walls are painted a buttery yellow and broken
24 up by celery green curtains on the window. The highly
25 polished floor ties everything together to create a
26 feeling of comfort and elegance. It's the perfect example
27 of well-balanced home design. The livingroom is to the
30 cant_go "You walk smack into one of those buttery yellow
35 if (chair in player) {
36 print_ret "The chair is too awkward to do that while
42 Object wall "wall" kitchen
43 with name 'yellow' 'wall' 'walls',
45 if (location == kitchen)
47 "The walls are painted a buttery yellow and
48 broken up by celery green curtains on the
51 print "You see nothing special about the walls.^";
53 found_in kitchen livingroom bedroom neighborkitchen neighborlivingroom,
56 Object chair "chair" kitchen
57 with name 'chair' 'backrest' 'seat',
59 "It seems to be your average kitchen chair: Four chrome
60 legs and a backrest with a yellow seat that matches the
65 print_ret "As awkward as it is, you take the chair.";
67 has scenery supporter enterable;
69 Object table "table" kitchen
70 with name 'table' 'kitchen table' 'formica',
72 "It looks like something right out of the 1950s: Green
73 formica and chrome legs.",
75 Take, Pull, Push, PushDir, Turn:
76 print_ret (The) self, " is too heavy for that.";
78 has scenery supporter enterable;
80 Object newspaper "newspaper" table
81 with name 'newspaper' 'paper',
83 "It's your favorite newspaper: U.S. News And Grue Report,
84 which also airs on TV. The headline story says ~The GUE's
85 redesigned 100 zorkmid bill makes history today, becoming
86 the first ever zorkmid to feature a woman on the front.
87 The bill is set to become legal tender next year, with
88 the decision finalized by the Governor yesterday.~
89 ~I have enthusiastically embraced this bold new way of
90 designing money, showing a woman's face. I believe this
91 landmark achievement will stimulate public confidence in
92 our monetary system and will help build the GUE's
93 creative capabilities,~ the Governor said. The next
94 story talks about how a local resident has won the
95 carrot-growing contest for the third time in a row.";
97 Object window "window" kitchen
98 with name 'window' 'windows',
100 "Framed by celery green curtains it seems almost large
101 enough to climb through.",
103 if (location == kitchen)
104 print "window to your neighbor's back yard";
106 print "window to your kitchen";
109 found_in kitchen backyard,
111 if (location == kitchen)
117 if (location == kitchen)
124 if (curtains has open) {
125 print "You see your neighbor's backyard.^";
129 print "The curtains are closed, and you can't see
134 if (window hasnt visited) {
139 if (window hasnt visited) {
145 has scenery door openable;
147 Object curtains "curtains" kitchen
148 with name 'celery' 'green' 'curtain' 'curtains',
149 description "Celery green in color, you see nothing special
150 about the curtains.",
152 Take, Pull, Push, PushDir:
153 print_ret "Don't you think they look nice where they are?";
155 has scenery open openable pluralname;
157 Object legs "legs" kitchen
158 with name 'leg' 'legs',
159 found_in kitchen neighborkitchen,
162 Object livingroom "Livingroom"
164 "You are in a modestly furnished living room. It's very a
165 traditional but modern as far as the style of rooms go. It
166 has a certain bourgeois feeling, although it doesn't seem
167 very large. There's a couch in the middle of the room
168 facing a television. Pictures hang from the other walls.
169 The pictures were commissioned by your family, but a lot
170 of people claim they painted them. You can hear the sound
171 of vehicles driving by outside. The kitchen is to the
172 west. The front door is to the east. Your bedroom is to
176 print "You can hear the sound of vehicles driving by outside.^";
180 "Since when did you get the ability to walk through
181 walls? The kitchen is to the west. The front door is to
182 the east. Your bedroom is to the south.",
188 Object picture "pictures" livingroom
190 "The pictures in the room consist of a landscape painting
191 showing a strangely geometric mountain, another of a
192 still life painting of a table laid out with a feast and
193 the third is a portrait of an unknown man. He has a full
194 beard, is wearing a black robe and no shoes. On his head
195 is a large 1970s-era hard disk platter.",
196 name 'picture' 'photo' 'photos' 'frame' 'frames' 'pictures'
201 "They look so nice, perhaps it's better to leave them
204 has scenery pluralname;
206 Object man "man" livingroom
207 with description "It's a painting of Richard Stallman dressed as
209 name 'man' 'disk' 'hard' 'platter' 'robe' 'rms' 'Richard' 'Stallman'
210 'robe' 'black' 'image' 'images',
214 "The painting looks so nice, perhaps it's better to
215 leave it where it is.";
219 Object television "television" livingroom
220 with name 'television' 'tv',
222 "It's big, gray, and one of those old-fashioned CRT
223 models. It looks very heavy.",
227 if (television has on) {
228 self.watch_count = self.watch_count + 1;
229 switch (self.watch_count) {
232 "It's big, gray, and one of those
233 old-fashioned CRT models. It looks very
234 heavy.^The TV is currently switched on. Your
235 favorite news program is on: U.S. News And
236 Grue Report.^The news anchor is saying ~In
237 other news, authorities continue to
238 investigate the missing persons case.~^";
243 "The news anchor continues by saying ~We're
244 told the that number of missing people is now
245 up to as many as 5.~^";
250 "The news anchor concludes their coverage by
251 saying ~We'll have more as the story continues
257 "It's big, gray, and one of those
258 old-fashioned CRT models. It looks very
259 heavy.^The TV is currently switched on. Your
260 favorite news program is on: U.S. News And
266 Take, Pull, Push, PushDir:
267 print_ret (The) self, " is too heavy for that.";
272 "The television comes to life. Your favorite news
273 program is on: U.S. News And Grue Report.^";
274 if (television hasnt visited) {
276 give television visited;
280 has scenery static switchable;
282 Object couch "couch" livingroom
283 with name 'couch' 'sofa',
285 "It looks like a throwback from the 1970s but has held up
288 Take, Pull, Push, PushDir:
289 print_ret (The) self, " is too heavy for that.";
294 "The couch makes a nauseating, high-pitched groan as
295 your weight is added.^";
298 print "The couch makes a muted snort as your weight is removed.^";
301 has scenery static supporter enterable;
303 Object frontdoor "front door" livingroom
304 with name 'door' 'front',
306 "Cinnamon brown in color it appears to be a very solid
309 if (location == livingroom)
310 print "door to the outside";
312 print "door to your house";
315 found_in livingroom sidewalk,
317 if (location == sidewalk)
323 if (location == sidewalk)
328 has scenery door openable;
330 Object bedroom "Bedroom"
332 "You walk through the door and find yourself in your own
333 bedroom, which was once used by your grandmother. This
334 room was designed in a renaissance style by a master
335 decorator. It has a certain sense of extravagance, with
336 ornate inlaid walls in a variety of complimentary colors
337 that form exquisite patterns, with gold and marble
338 highlights. The fully-decorated bed looks very comfortable
339 - it projects a very light, airy feeling that's perfect
340 for sleeping and adds to the sense of luxury. On the wall
341 across from your bed is a large painting. The livingroom
345 "Since when did you get the ability to walk through
346 walls? Your livingroom is to the north.",
349 Object painting "painting" bedroom
351 "It's a picture of Aragain Falls, the most breathtaking
352 and awesome waterfall in the known lands.",
356 print_ret (The) self, " is too big to fit.";
358 name 'painting' 'paint' 'picture' 'of' 'aragain' 'falls',
361 Object bed "bed" bedroom
362 with name 'bed' 'twin',
364 "With a frame of solid wood with a golden brown finish,
365 it's a finely crafted bed.",
367 Take, Pull, Push, PushDir:
368 print_ret (The) self, " is too heavy for that.";
370 has scenery static supporter enterable;
372 Object box "dented steel box" bed
373 with name 'box' 'safe' 'safety' 'deposit',
375 "It's a safety deposit box. Made of steel, and dented,
376 the words ~Property Of The Bank of Zork~ are on it.",
377 has container openable;
379 Object directional "compass" box
382 if (location == livingroom || location == sidewalk) {
383 print "The compass is pointing west.^";
386 if (location == frontporch) {
387 print "The compass is pointing southeast.^";
392 "Ordinarily you'd expect a compass to point north
393 but this one is spinning wildly in every
398 Object grandlivingroom "Grand Livingroom"
400 if (grandlivingroom has visited) {
402 "This time there's no sign of the woman but the
403 guards she called for are here. They grab & arrest
404 you. Perhaps you should have listened.^";
406 if (grandlivingroom hasnt visited) {
408 "Feeling a little disoriented as you enter, this
409 doesn't seem like the same place: The interior
410 feels very open. Walls of pine extend upward to a
411 ceiling soaring above this two-story height
412 livingroom with windows extending all the way up
413 the walls, providing an abundance of sunlight for
414 the space. The ceiling is painted with soft moss
415 on a deep silver background creating an inviting
416 effect. A wide doorway on the other side of the
417 room leads to a wide balcony, providing a perfect
418 view of the garden and pond beyond it. As you
419 begin to take in the bold colors of this lavish
420 room a woman comes out of one of the walkways on
421 the other end. Dressed in a stunning red and blue
422 gown she seems a combination of surprised and
423 startled to see you. ~Who are you? Why are you
424 here?~ she asks, demandingly. Not giving time for
425 a response she yells for the guards. I don't know
426 where we are but I think now would be a good time
431 guardscalled = guardscalled + 1;
432 if (guardscalled == 1)
433 PlayerTo(neighborlivingroom);
435 if (guardscalled == 2) {
441 Object Sidewalk "Sidewalk"
443 "You are standing on the sidewalk in front of your house.
444 The street is normally quiet, but it's been very busy
445 and crowded today, like trying to get through a busy movie
446 theater, and the sound of the traffic has been
447 particularly noticeable. The traffic is a good sign of
448 what's going on in the city as a whole today. It is barely
449 cloudy and already hot this morning. Smaller branches of
450 trees are in motion from the light wind, which helps to
451 provide some relief from the heat. Your home is to the
452 west. Your neighbor's home is to the northwest.",
454 "Some inconsiderate person parked their car on the
455 sidewalk which blocks your path. It might be nice to call
456 Parking Enforcement so they can get a ticket for creating
457 an obstruction but you don't have a phone.",
459 "You arrive at an intersection. Lots of traffic drives
460 past at high speed creating a small breeze that makes your
461 shirt ripple. You decide it is better to not risk being
462 run over and go back.",
464 "As you start to step out into the street a car quickly
465 zooms by at high speed. You jump back to avoid becoming
466 part of the pavement.",
468 "As you start to step out into the street a car honks
469 impatiently for you to get out of the way. You go back to
472 "The street is very busy. Surely you'd be hit by a moving
473 vehicle if you went there.",
475 sw_to "A rock wall blocks your path.",
479 Object street "street" sidewalk
480 with name 'street' 'road',
481 description "It's your typical street.",
484 Object rockwall "rock wall" sidewalk
485 with name 'rock' 'wall' 'stone' 'rock' 'boulder' 'stonework'
486 'cobblestone' 'mortar' 'stones' 'rocks' 'walls',
488 "Made up of assorted stones of various sizes and shapes,
489 with a healthy dose of mortar between them to fill and
490 seal the irregular gaps between them, it serves as a wall
491 separating your property from someone else's.",
494 Object car "car" sidewalk
495 with name 'car' 'vehicle' 'automobile',
497 "It's a white two-door car. The license plate holder says
498 FrobozzCo International.",
501 print_ret "The car is locked, and there is apparently no key.";
503 print_ret "The car is locked, and there is apparently no key.";
506 "I'm not sure that FrobozzCo International would
507 appreciate people climbing on one of their cars.";
510 "I doubt that FrobozzCo International would
511 appreciate someone taking one of their cars.";
512 Pull, Push, PushDir, Turn:
513 print_ret (The) self, " is too heavy for that.";
517 Object licenseplateframe "license plate holder" sidewalk
518 with name 'license' 'plate' 'frame' 'holder',
519 description "It says FrobozzCo International in white letters
522 Take, Pull, Push, PushDir, Turn:
523 print_ret (The) self, " is firmly attached to the car.";
527 Object frontporch "Front Porch"
529 "You are on your neighbor's front porch. It consists of a
530 coffee brown wooden floor connected to and surrounded a
531 parchment white wooden fence. The fence is obviously new
532 and looks great. It's tall enough to make climbing it
533 impossible. The design of the porch places the focus on
534 the front door. A deep red color, the door is large, high
535 quality and has no window. It has a shiny brass handle,
536 which appears very sturdy. There's an opening to the
537 southwest toward the sidewalk. Their front door is to the
539 cant_go "That parchment white wooden fence is too high to get over.",
544 Object neighbordoor "front door" frontporch
545 with name 'door' 'front' 'red',
546 description "The door is large and high quality. A deep red
547 color it has no window and a shiny brass handle,
548 which appears to be very sturdy.",
549 found_in frontporch neighborlivingroom,
551 if (location == frontporch)
557 if (location == frontporch)
558 return neighborlivingroom;
562 has scenery door openable;
564 Object brasshandle "brass door handle" frontporch
565 with name 'brass' 'handle',
566 found_in frontporch neighborlivingroom,
569 Object fence "wooden fence" frontporch
570 with name 'fence' 'wooden' 'wood',
571 found_in backyard frontporch,
574 Object neighborlivingroom "Neighbor's Livingroom"
576 "You are in your neighbor's livingroom. It seems that no
577 one has lived here in a long time, even though you saw
578 your neighbor here last week. All of the furniture has
579 been removed and the air smells stale. A large bay window
580 enclosed by sheer cobalt blue curtains allowing light to
581 come through. A door is to the east.^^A machine as tall as
582 you sits in the center of their livingroom. It consists
583 of three transparent spheres joined together containing
584 machinery. A barrel with a small aperture comes out of the
585 farthest sphere, pointing down and to the wall. The
586 entire thing rests on a shiny metal platform allowing it
587 to rotate and tilt with ease.",
588 w_to neighborkitchen,
592 if (bluebutton has on && poker notin machine) {
599 Object neighborwindow "window" neighborlivingroom
600 with name 'large' 'bay' 'window' 'windows',
601 description "A large bay window enclosed by sheer cobalt blue
602 curtains allowing light to come through.",
605 print_ret "The window is not something you can go through.";
607 print_ret "This isn't the type of window that can be
612 Object neighborcurtains "curtains" neighborlivingroom
613 with name 'cobalt' 'blue' 'curtain' 'curtains',
615 "Cobalt blue in color, the curtains have been decorated with
616 intricate embroidery.",
618 Take, Pull, Push, PushDir:
619 print_ret "Don't you think they look nice where they are?";
621 has scenery openable pluralname;
623 Object embroidery "embroidery" neighborlivingroom
624 with name 'embroidery' 'pattern' 'patterns',
627 Object redbutton "red button" neighborlivingroom
628 with name 'red' 'red button' 'button' 'buttons',
631 if (bluebutton has on && poker notin machine) {
633 "You reach for the red button, but not in
638 if (poker in machine)
640 "You press the red button but it's futile because
641 the machine's shorted out.";
644 "You push the red button. The machine makes clunky
645 noises as machinery moves inside. A loud humming
646 begins to emanate from it. It comes to life, spins
647 around on its base, aims, and quickly fires a
648 series of three bright blue sparks at you. You
649 hear a small explosive sound as they impact your
650 chest. You feel a little disoriented as it
651 teleports you away.^";
653 move directional to box ;
654 move newspaper to table ;
655 move letter to island ;
656 move poker to fireplace ;
663 Object bluebutton "blue button" neighborlivingroom
664 with name 'blue' 'blue button' 'button' 'buttons',
667 if (bluebutton has on) {
668 if (poker notin machine) {
670 "You reach for the blue button, but not
677 print_ret "You push the blue button. The machine
678 sounds like it powers down.";
683 if (poker notin machine) {
687 print_ret "You push the blue button.";
692 Object machine "machine" neighborlivingroom
693 with name 'machine' 'machinery' 'sphere' 'spheres' 'platform' 'barrel'
694 'aperture' 'metal platform' 'shiny metal platform' 'shiny platform'
697 "It consists of three transparent spheres joined together
698 containing machinery. A barrel with a small aperture comes
699 out of the farthest sphere, pointing down and to the wall.
700 The entire thing rests on a shiny metal platform allowing
701 it to rotate and tilt with ease. There is a blue button
710 if (weapon ~= poker) {
711 print "That wasn't helpful.^";
712 if (bluebutton has on)
723 if (bluebutton has on)
731 if (bluebutton has on)
737 if (player in parent(self) && poker notin machine)
741 destination = random(3);
743 "^A loud humming begins to emanate from the machine.
744 It comes to life, spins around on its base, aims, and
745 quickly fires a series of three bright blue sparks at
746 you. You hear a small explosive sound as they impact
747 your chest. You feel a little disoriented as it
748 teleports you away.^";
749 if (destination == 1)
751 if (destination == 2)
752 PlayerTo(livingroom);
753 if (destination == 3)
757 if (machine hasnt visited) {
759 give machine visited;
762 print "You put the poker into ", (the) self,
764 fly wildly in every direction as it shorts out.^";
766 has scenery container open;
768 Object backyard "Back Yard"
770 "You are in your neighbor's back yard. It is barely cloudy
771 and already hot this morning. Some shade from the sun
772 would be nice but the closest tree is at the sidewalk, on
773 the other side of the building and the sun is causing all
774 of the shadows to go in the wrong direction. The healthy,
775 dark green grass is well manicured. It looks like a nice
776 place. You hear some dogs barking in the distance. A high
777 wooden fence encompasses the area, painted a burnt umber.
778 Their back door is to the east. Your kitchen window is to
784 "Climbing over the fence you squeeze back through
785 your kitchen window.^";
789 n_to "Their fence is too high to climb over in that direction.",
791 w_to "Their fence is too high to climb over in that direction.",
794 Object leaves "leaves" backyard
795 with name 'leaf' 'leaves',
796 found_in backyard sidewalk,
799 Object scratches "scratches" backyard
800 with name 'scratch' 'scratches' 'mark' 'marks' 'marking' 'markings',
801 found_in backyard neighborkitchen,
804 Object house "neighbor's house" backyard
805 with name 'neighbor' 'neighbors' 'house' 'home' 'building',
806 found_in backyard frontporch kitchen sidewalk,
809 Object backdoor "back door" backyard
810 with name 'door' 'back' 'backdoor',
812 "Burgundy in color it seems a solid and hefty door. It
813 has scratches along the bottom, as if from a pet long
816 if (location == backyard)
817 print "door to your neighbor's house";
819 print "door to the back yard";
822 found_in backyard neighborkitchen,
824 if (location == backyard)
830 if (location == backyard)
831 return neighborkitchen;
835 has scenery door openable;
837 Object neighborkitchen "Kitchen"
839 "You are in your neighbor's kitchen. It's a large
840 contemporary kitchen with an open design and many flat
841 surfaces. The color palette is very bright and in
842 perfect harmony with the kitchen. It's timeless and
843 beautiful. The walls look like they've been used to
844 store things, with some faint outlines remaining that
845 gives a lived-in look. It could have been a luxury
846 cooking environment, though by now everything has been
847 removed. Only the kitchen island and fireplace remain in
848 stark contrast to the bare kitchen. The livingroom is to
849 the east. The door to the back yard is to the west.",
850 e_to neighborlivingroom,
854 Object island "kitchen island" neighborkitchen
855 with name 'kitchen' 'island' 'table' 'wood' 'wooden' 'top' 'wood',
857 "It has metal legs firmly embedded into the floor, and a
858 wooden top. Strangely, all of the drawers have been
861 Take, Pull, Push, PushDir, Turn:
862 print_ret "The kitchen island is firmly planted in the floor.";
864 has scenery supporter enterable;
866 Object brick "brick" neighborkitchen
867 with name 'brick' 'bricks' 'mortar',
869 "You find nothing special about the bricks that make up
873 Object fireplace "fireplace" neighborkitchen
874 with name 'fireplace' 'fire' 'place' 'mouth',
877 "A stain is splayed against the brick fireplace,
878 making its curved mouth appear like a black, toothless
879 scream. A confection of ashes occupy the fireplace";
882 ", and a poker hangs out which looks like it
883 could make an effective weapon";
887 has scenery container transparent open;
889 Object poker "poker" fireplace
892 "This poker may have once been used to expedite the
893 flame's envelopment, as well as the house's many stories
896 Take, Pull, Push, PushDir, Remove:
897 give poker ~concealed;
898 if (poker hasnt visited) {
902 if (player in neighborlivingroom) {
903 if (bluebutton has on)
909 Object ashes "ashes" fireplace
910 with name 'ash' 'ashes',
911 description "It looks like a pile of ash.",
913 Take, Pull, Push, PushDir:
914 print_ret "The ashes are so fine they fall between your fingers.";
916 has concealed pluralname;
918 Object stain "stain" fireplace
922 Object mouth "mouth of the fireplace" fireplace
926 Object letter "letter" island
929 "The letter reads: ~Thank you for evaluating this
930 prototype of the Frobozz Magic Teleporter. Please refer to
931 the enclosed manual to learn how to program destinations
932 in to your teleporter. Pressing the red button recalls the
933 last-used destination and teleports you there. Pressing
934 the blue button engages Defense Mode, which instantly
935 whisks intruders away. Use it to provide defense for any
936 location! Please send feedback about this prototype to
937 your local FrobozzCo International sales person. Warning:
938 Side effects can include disorientation, loss of memory,
939 lightheadedness, loss of appetite, nausea, vomiting,
940 weakness, and death.~";