! Copyright (C) 2019 Jason Self ! ! This file is free software: you may copy, redistribute gand/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/ Object livingroom "Livingroom" with description "You are in a modestly furnished livingroom. Pictures hang from the walls. You can hear the sound of vehicles driving by outside. The kitchen is to the west. The front door is to the east. Your bedroom is to the south.", before [; Listen: print "You can hear the sound of vehicles driving by outside.^"; return true; ], n_to "Since when did you get the ability to walk through walls? The kitchen is to the west. The front door is to the east. Your bedroom is to the south.", s_to bedroom, w_to kitchen, e_to frontdoor, has light; Object picture "pictures" livingroom with description "The pictures in the room consist of a landscape painting showing a strangely geometric mountain, another of a still life painting of a table laid out with a feast and the third is a portrait of an unknown man. He has a full beard, is wearing a black robe and no shoes. On his head is a large 1970s-era hard disk platter.", name 'picture' 'photo' 'photos' 'frame' 'frames' 'pictures' 'image' 'images', Before [; Take: print_ret "They look so nice, perhaps it's better to leave them where they are."; ], has scenery pluralname; Object man "man" livingroom with description "It's a painting of Richard Stallman dressed as St IGNUcius.", name 'man' 'disk' 'hard' 'platter' 'robe' 'rms' 'Richard' 'Stallman' 'robe' 'black' 'image' 'images', Before [; Take: print_ret "The painting looks so nice, perhaps it's better to leave it where it is."; ], has scenery; Object television "television" livingroom with name 'television' 'tv', description "It's big, gray, and one of those old-fashioned CRT models. It looks very heavy.", watch_count 0, before [; Listen, Examine: if (television has on) { self.watch_count = self.watch_count + 1; switch (self.watch_count) { 1: print "It's big, gray, and one of those old-fashioned CRT models. It looks very heavy.^The TV is currently switched on. Your favorite news program is on: U.S. News And Grue Report.^The news anchor is saying ~In other news, authorities continue to investigate the missing persons case.~^"; score = score + 1; return true; 2: print "The news anchor continues by saying ~We're told the that number of missing people is now up to as many as 5.~^"; score = score + 1; return true; 3: print "The news anchor concludes their coverage by saying ~We'll have more as the story continues to develop.~^"; score = score + 1; return true; default: print "It's big, gray, and one of those old-fashioned CRT models. It looks very heavy.^The TV is currently switched on. Your favorite news program is on: U.S. News And Grue Report.^"; return true; } } ; Take, Pull, Push, PushDir: print_ret (The) self, " is too heavy for that."; ], after [; SwitchOn: print "The television comes to life. Your favorite news program is on: U.S. News And Grue Report.^"; if (television hasnt visited) { score = score + 1; give television visited; } return true; ], has static switchable; Object couch "couch" livingroom with name 'couch' 'sofa', description "It looks like a throwback from the 1970s but has held up very well.", before [; Take, Pull, Push, PushDir: print_ret (The) self, " is too heavy for that."; ], after [; Enter: print "The couch makes a nauseating, high-pitched groan as your weight is added.^"; return true; Exit, GetOff: print "The couch makes a muted snort as your weight is removed.^"; return true; ], has static supporter enterable; Object frontdoor "front door" livingroom with name 'door' 'front', description "Cinnamon brown in color it appears to be a very solid and hefty door.", short_name [; if (location == livingroom) print "door to the outside"; else print "door to your house"; return true; ], found_in livingroom sidewalk, door_dir [; if (location == sidewalk) return w_to; else return e_to; ], door_to [; if (location == sidewalk) return livingroom; else return sidewalk; ], has scenery door openable;