! Copyright (C) 2019 Jason Self ! ! This file is free software: you may copy, redistribute and/or modify ! it under the terms of the GNU Affero General Public License as ! published by the Free Software Foundation, either version 3 of the ! License, or (at your option) any later version. ! ! This file is distributed in the hope that it will be useful, but ! WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! Affero General Public License for more details. ! ! You should have received a copy of the GNU Affero General Public ! License along with this file. If not, see https://gnu.org/licenses/ Constant NO_SCORE; Constant Story "The Mall"; Constant Headline "^By Jason Self^ If you get stuck try typing HELP.^ This game gives you freedom; you can change and share it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the GNU Affero General Public License for details.^ IFID 1AB626D5-E03F-4F03-836C-50F65B643B9B^"; Include "parser"; Include "verblib"; Release 0; Serial "190323"; Object bank "Bank of Zork" with description "The local branch of the Bank of Zork, the largest banking institution of the Great Underground Empire. The walls are redpainted and there is a distinct wash of pine and sandalwood that hovers in the air. Beyond the lobby of the bank, to the north, lies the vault. The air there is dark-- almost heavy-- and thick with the scents of fresh paper and silver and copper. A darkened office sits to the south. As with all branches of the Bank of Zork, a portrait of J. Pierpont Flathead hangs on the wall.", n_to vaultdoor, s_to securityoffice, w_to mall, has light; Object closet "Closet" with description "In the closet of the workshop, it is mostly dark. Here lie the new supplies waiting to be taken out to customers to make new teddy bears. Their beady eyes glisten as they reflect the light from the workshop, their bodies deflated in some places, bulging unnaturally in others.", e_to workshop, has light; object bears "teddy bears" closet with name 'bear' 'bears' 'teddy' 'teddies' 'ted', before [; Take,Pull,Push,PushDir: print_ret "Shoplifting isn't the answer."; ], has scenery; Object cookhouse "Cookhouse" with description "The glowing letters atop indicate that this restaurant is called ~The Cookhouse.~ There's a light smokiness in the air, and the tables are covered in soft-looking linen tablecloths. Although, since the mall closed, all of the patrons have left.", n_to mall, has light; Object table2 "table" cookhouse with name 'table', has scenery supporter; Object tablecloth "tablecloth" table2 with name 'tablecloth' 'linen' 'cloth', description "It's made of soft-looking linen.", before [; Take,Pull,Push,PushDir: print_ret "Shoplifting isn't the answer."; ], has scenery; Object securityoffice "Security Office" with description "A small office belonging to the bank's security officer. You scan the room, seeing a table and a large bulky television.", n_to bank, has light; Object television "television" securityoffice with name 'television' 'tv' 'screen' 'monitor', description "It's big, gray, and one of those old-fashioned CRT models.", watch_count 0, before [; Listen,Examine: if (television has on) { self.watch_count = self.watch_count + 1; switch (self.watch_count) { default: print "It's big, gray, and one of those old-fashioned CRT models. It looks very heavy.^The TV is currently switched on. It's showing grainy footage at odd angles from the vault's security cameras.^"; return true; } }; Take,Pull,Push,PushDir: print_ret "The television is firmly attached to the wall."; ], after [; SwitchOn: print "The television comes to life, showing grainy footage at odd angles from the vault's security cameras.^"; return true; ], has scenery switchable; Object table "table" securityoffice with name 'table', description "Made from metal, it looks to be a solid and hefty table.", has scenery supporter; Object coppercoin "copper coin" table with name 'copper' 'coin' 'zorkmid', description "The coin seems to be very old, in very poor condition, and somewhat irregular in shape. The only things clearly visible are what appears to be a name on one side: Belwit The Flat and a date on the other: 699 GUE."; Object keycard "keycard" table with name 'keycard' 'key' 'card', description "The keycard is used to open things."; Object mall "Mall" with description "You're in the main walkway. It's bright and clean with stores all around. Pale light glimmers off the polished tile like sunlight on water. The quietness of the closed mall floats by as if on the wind. The mall's exit is to the southwest.", n_to workshop, s_to cookhouse, sw_to mallexit, e_to bank, w_to salon, has light; Object mallexit "door" mall with name 'door' 'exit', description "A revolving door to the outside world, with the word ~Exit~ written above. Sunlight streams crisply in through the glass.", with_key keycard, before [; unlock: deadflag = 2; return true; ], has scenery door openable locked; Object portrait "portrait" bank with name 'portrait' 'picture' 'photo', description "It's a portrait of J. Pierpont Flathead. His portrait adorns every branch of the Bank of Zork.", before [; Take,Pull,Push,PushDir: print_ret (The) self, " is firmly attached to the wall."; ], has scenery; Object salon "Salon" with description [; print "You've just sauntered into a salon."; if (salon hasnt visited) print " Suddenly you bump your head on the ceiling, but it's not such a bad bump that it's going to prevent you from looking at things."; if (salon has visited) print " Remembering the low ceiling, you take care not to bump your head."; print " Behind the reception desk is a small display made up of backlit shampoos and conditioners in various shades of translucent blue. Continuing to the west is another room."; new_line; ], e_to mall, w_to salon2, has light; object desk "reception desk" salon with name 'desk' 'reception', has scenery; object shampoo "shampoos" salon with name 'shampoo' 'shampoos' 'display', before [; Take,Pull,Push,PushDir: print_ret "Shoplifting isn't the answer."; ], has scenery; object conditioner "conditioners" salon with name 'conditioner' 'conditioners', before [; Take,Pull,Push,PushDir: print_ret "Shoplifting isn't the answer."; ], has scenery; Object salon2 "Salon" with description "This is a tranquil glasslit room where the stylists would work on peoples' hair. You can imagine the sounds of clipping shears and buzzing razors resounding through the air with the clarity of a ringing bell when this place is open.", e_to salon, has light; Object vaultdoor "vault door" bank with name 'vault' 'safe', description "A large, circular, and hefty door. The words ~Manufactured By The Frobozz Magic Vault Company~ are engraved around the edge.", has scenery door openable locked; Object workshop "Bear Workshop" with description "A workshop for making stuffed bears although by now everything is put away. The workshop retains a pleasant atmosphere. You should try going west.", w_to closet, s_to mall, has light; [ Initialise; Location = mall; "^You fell asleep in the mall. Now it's closed, and the exit's locked. Can you get out?"; ]; [ XyzzySub; "Nothing obvious happens."; ]; [ HelpSub; "If you need help try some of the commands from: ^http://pr-if.org/doc/play-if-card/"; ]; Include "grammar"; Verb 'About' * -> Version; Verb 'Info' * -> Version; Verb 'Help' * -> Help; Verb 'xyzzy' * -> Xyzzy;