Constant Story "Something to do in a library^^"; Constant Headline "You seem to be in a library. It appears to have just opened for the day. You take a quick look at your watch, it's about 7am. There is a coat rack next to you for you to put your windbreaker, you really should have dressed warmer! It's freezing outside. You are not exactly sure why you are here other than the slightest remnants of something you heard on the radio about treasure in the basement or something...maybe there are some newspapers you can read to get some more info.^^"; !Constant DEBUG; Include "parser"; Include "verblib"; Include "grammar"; !Include "timepiece"; constant WEAR_TOP = 1; constant WEAR_BOTTOM = 2; constant WEAR_FEET = 4; constant WEAR_HANDS = 8; constant WEAR_NECK = 16; constant WEAR_HEAD = 32; constant WEAR_WATCH = 64; global chill; global equipment; global time; global booted; global warned; Class Wearables with initial, before [; Take: if(self in player) print "You already have that!"; Wear: if (self.wear_location & equipment) { "You are already wearing something there."; } equipment = equipment | self.wear_location; ], has clothing; class shelf with initial, after[ i d; examine: print "You see the following items on it:^ - "; objectloop (i in self) { if (d++>0) print "^ - "; PrintShortName(i); } ], has scenery static container open; class cabinet with initial, weight 130, after[ i d; examine: print "You see the following items contained within:^ - "; objectloop (i in self) { if (d++>0) print "^ - "; PrintShortName(i); } ], has scenery container openable; Class Room with initial, each_turn [t i; if (player in self) { time = time + WeightOf(player) + random(2)+1; if (time % 1440 > 1080 && warned == 0) { print "^A voice comes over a loud speaker and booms: ~The library will be closing at 8 pm, anyone not out by then will be thrown out!~^^"; give self general; warned = 1; } if (time % 1440 > 1200 && player notin CrawlSpace && booted == 0) { booted = 1; print "~Okay kid, time to go home!~, says a voice behind you, ~The library is closed now so I'm going to have to ask you to leave.~^ You turn around and see a pair of library security guards apparantly here to escort you out...which they do."; if (Top2 notin player) { print "~You'll want this out there, it's really cold,~ one of them says."; move Top2 to player; } PlayerTo(lawn); print "^ It looks like one of them dropped a flashlight!"; move flashlight to lawn; } if ((time % 1400 > 1200 || time % 1400 < 420) && player in crawlspace) { booted = 1; move flashlight to office; } objectloop(i in player) t = t + ColdDef(i)/10; if (mainDoor has open) { chill = chill + 5 - t; !if (chill <0) chill = 0;; switch (t/2) { 3 to 6: print "^ ! You feel impervious to the cold draft."; 2: print "^ ! Someone should probably close the doors to the library."; 1: print "^ ! It's quite cold in here..."; 0: print "^ ! It's really cold in here, close the door."; -1,-2: print "^ ! You feel like you are freezing in here."; } } else { if (window has open && t < 1) { chill++; print " ! Did someone leave a window open somewhere?"; } else { chill= chill -5; if (chill < 0) chill = 0; if (chill > 50) print " ! You feel warmth returning to your body."; } } switch (chill) { 0 to 50:; 51 to 100: print "^ ! You can feel your extremities stiffening up."; 100 to 133: print "^ ! You shiver uncontrolably."; 134 to 200: print "^ ! You feel like you are freezing to death!"; 201 to 300: if (random(12)-11) { print "^ !! you collapse from the cold."; deadflag = true; "---"; } print "^ ! You feel like you are freezing to death!"; 300 to 500: print "^ !! You finish freezing to death."; deadflag = true; } } ], ; class Outside with initial, turns_active, daemon[t i; if (player in self) { time = time +WeightOf(player) + random(3)+2; objectloop(i in player) t = t + ColdDef(i); chill = chill + 80 - t; !if (chill <0) !chill = 0;; switch (t/20) { 3 to 5: print "^ ! You feel somewhat bundled against the cold."; 2: print "^ ! You feel the winter breeze penetrate your clothing."; 1: print "^ ! You wish you weren't so cold..."; 0: print "^ ! You feel the icy grip of winter."; -1,-2: print "^ ! You wince in pain as your body freezes."; } switch (chill) { 0 to 50:; 51 to 100: print "^ ! You can feel your extremities stiffening up."; 100 to 133: print "^ ! You shiver uncontrolably."; 134 to 200: print "^ ! You feel like you are freezing to death!"; 201 to 300: if (random(5)-4) { print "^ !! you collapse from the cold."; deadflag = true; "---"; } print "^ ! You feel like you are freezing to death!"; 300 to 500: print "^ !! You finish freezing to death."; deadflag = true; } } ]; class person(20) with initial, daemon [ direction pers_at way exit_count exit_chosen; if (random(3) ~= 1) rfalse; pers_at = parent(self); objectloop (direction in compass) { way = pers_at.(direction.door_dir); if (way ofclass Object && way hasnt door) exit_count++; } if (exit_count == 0) rfalse; exit_chosen = random(exit_count); exit_count = 0; objectloop (direction in compass) { way = pers_at.(direction.door_dir); if (way ofclass Object && way hasnt door) exit_count++; if (exit_count == exit_chosen) { move self to way; if (pers_at == location) "^The library browser wanders off"; if (way == location) "^A library browser wanders in."; rfalse; } } ], has animate; [ WeightOf obj t i; if (obj provides weight) t=obj.weight;else t=1; objectloop (i in obj) t = t + WeightOf(i); switch (t) { 0 to 40: return 1; 41 to 70: print "^ ! You are carrying quite a bit of stuff..."; time = time +2;return 2; 71 to 100: print "^ ! You are encumbered by your load..."; time = time + 5;return 5; 101 to 140: print "^ ! You are straing under this load!^ ! You are wasting a lot of time."; time = time + 10;return 10; 141 to 300: print "^ ! You are carrying so much you can hardly move!^ ! You are wasting a lot of time!"; time = time + 18;return 18; 300 to 500: print "^ ! You struggle to even move this load let alone carry it!"; time = time + 29;return 29; 501 to 9999: print "^ !! As you struggle to pick up this load, you hear a loud crack and everything goes black!"; deadflag = true; } ]; [ ColdDef obj t; t=0; if (obj provides weatherdef) { if (obj has worn) { t = obj.weatherdef; if (obj.weatherdef < 0) t = t + obj.weatherdef; } } return t; ]; [ TimeDisp i j k; i = (time/60)%24; j = time%60; if (i > 11) k = 2; else k = 1; i = i%12; if (i == 0) {i = 12;} if (j <10) { if (k ==1){ "The current time is displayed as ", i, ":0", j," AM.";}else{ "The current time is displayed as ", i, ":0", j," PM.";} } else { if (k ==1){ "The current time is displayed as ", i, ":", j," AM.";}else{ "The current time is displayed as ", i, ":", j," PM.";} } ]; Outside Entrance "Library Entrance" has light with name "entrance", description "You see the grand stone facade of the R. Muffelcroppe Resthianoragen Regional Library. A set of angular black slate steps lead up to the heavily carved double doors. The weather is extremely cold, hiberneal winds howl along the front of the building and a heavy snow quickly erases any evidence of footprints leading to or from the library.", e_to mainDoor, s_to Lawn; Outside Lawn "Library Front Lawn" has light with name "lawn" "front", description "The stone wall of the library extends further south where it is intersected by a wrought iron fence. The thick layer of snow covering the grass on the front lawn of the library crunches beneath your feet. The wall is completely blank stone except for a small window centered about 10ft high in the side of the wall.", n_to Entrance, in_to window; Room Foyer "Library Foyer" has light with name "foyer", description "This is the foyer of the library, the floor is tiled in square, foot long red and white marble tiles. A small rack for coats is fastened to the wall to the north, a drop box for due books sits on wheels to the south. To the east, the tiled floor ends and a fine wood floor worn smooth from age takes its place.", e_to Gather, w_to mainDoor; Room Gather "Library Gathering Area" has light with name "area", description "There seems to be a number of squares of carpet on the floor there, perhaps for children listening to readings. Off the side is a stack of folding chairs and folded tables in a stack. This appears to be the library's activity area. To the south is a long desk. To the east, a short stairway leads down into what looks like a study area.", e_to Study1, s_to Desk, w_to Foyer; Room Desk "Circulation Desk" has light with name "desk" "circulation desk" "checkout", description "A large oak desk stretches for about thirty feet. There are five small divisions where the librarians can assist visitors with book checkout. Each division is set up with a thin black book with 'circulation record book' written on each in gold lettering, a date stamp and an ink bottle. If you take a couple steps north, you will be back in the activity area.", daemon [; if (player in self) { switch (random(10)) { 1: if (self hasnt general) { print "^A library employee whispers, ~Drat! I think I left the key to the basem...~ She looks startled as she sees you. ~...baseball locker, yeah, somewhere out around the research books, Phyllis, if you see it out there, please give it to me.~"; give self general; } 2, 3: "^A librarian says, ~I hope all the books aren't out of order again!~"; 4, 5: "^ ! The floor creaks."; } } ], after[; drop: if (self has chair) { print "The floor creaks a bit...^^The chair crashes through the floor!^It lands with a crunch! ^^ As your vision clears, you notice that there is an official looking man tied to a huge chest and the arms and legs of a body sticking out from underneath the chair.^^ Chair "; deadflag =2; } ], n_to Gather; Room Study1 "Library Study Area" has light with name "study" "area" "study area", description "You are in a sunken area of the library. There are a number of large, rectangular tables set up for people to use for research. Some of the tables appear to have scribblings on them. To the south, the study area continues. The gathering area is to the west. ", s_to Study2, w_to Gather; Room Office "Library office" has light with name "library" "office" "area", description "This the the library office area, probably off limits to you when there are actual people here kick you out! There is a door in the floor, probably leads to a basement.", d_to basementDoor, e_to Study2; Room Basement "Basement" with name "basement", description [; if (player has flashlight) { if (player has gun) { print "Ninjas jump out! But you shoot them! Yey!"; print "^^ As you look around the room, you see the president tied to a huge treasure chest.!"; deadflag = 2; } else { print " !! Ninjas jump out and impale you with a giant spear!"; deadflag = 1; }; } else { print "You can't see in here! ^^ You feel something sharp slide inbetween your ribs. ^^ You die!"; deadflag = 1; } ], d_to basementDoor, e_to Study2; Room Study2 "Library Study Area" has light with name "study" "area" "study area", description "You are in a sunken area of the library. There are a number of large, rectangular wooden tables set up for people to use for research. The study area extends to the north while the periodical and reference sections stand adjacent to the east and south. The door to the library office is west.", n_to Study1, e_to Periodicals1, s_to Research1, w_to OfficeDoor; Room Periodicals1 "Periodicals" has light with name "periodicals" "magazine", description "This section of the library is filled with shelves and shelves of various magazines. A number of newspapers fill the continuation of the periodical section to the north. A section of the reference book area is to the south. The quiet study area is down three steps to the north.", n_to Periodicals2, s_to Research2, w_to Study2; Room Periodicals2 "Periodicals" has light with name "periodicals" "news" "newspaper" , description "A large rack has the most recent editions of a number of local and national newspapers. Large, dingy yellow colored file cabinets, each marked with a placard prominently displaying a newspaper name are stacked one on top of another make broad rows of what effectively is 'old news'. Another set of file cabinets line the walls and looks like it might contain quarterlies or scholarly journals. A broad spiral staircase leading the way upstairs and the beginning of the periodical section are your only exits.", s_to Periodicals1, u_to Gallery1; Room Gallery1 "Gallery" has light with name "gallery" "art", description "Some rather uninteresting looking modern art covers the brilliantly white walls around here. Everything seems to be encased in plexiglas cases. You can go back down to the first floor of the library or south where the gallery continues.", s_to Gallery2, d_to Periodicals2; Room Gallery2 "Gallery" has light with name "gallery" "art", description "This area of the gallery must be some kind of work of art in iteslf. The east wall is all red ad a bunch of ropes hang from the ceiling. Nothing seems to be holding them there too well, you are almost suprised that a bunch of kids haven't pulled them all down already. The way down and first section of the gallery are north, the gallery appears to continue to the south, you can see a bunch of little figurines in a pair of tall glass cases. To the west the Nonfiction section appears to start.", n_to Gallery1, w_to Nonfiction1, s_to Gallery3; Room Gallery3 "Gallery" has light with name "gallery" "art", description "This section of the gallery contains a pair of tall glass cases containg a number of archaic-looking figurines. Theres a comfortable looking chair in the corner, it appears to be made entierly of brass. Some nonfiction books are close by on the west flank, the rope-thing is to the north.", n_to Gallery2, w_to Nonfiction2; Room Nonfiction1 "Nonfiction A to I" has light with name "nonfiction", description "You see shelves and shelves of nonfiction books. More books lie in all directions except for east, theres the rope-art thing there.", n_to Fiction1, e_to Gallery2, s_to Nonfiction2, W_to Fiction3; Room Nonfiction2 "Nonfiction J to N" has light with name "nonfiction", description "You see shelves and shelves of nonfiction books. More books lie to the north, east and west.", n_to Nonfiction1, e_to Gallery3, w_to Nonfiction3; Room Nonfiction3 "Nonfiction O to Z" has light with name "nonfiction", description "You see shelves and shelves of nonfiction books. There are more books to the north and east.", n_to Fiction3, e_to Nonfiction2; Room Fiction1 "Fiction A to H" has light with name "fiction", description "You see shelves and shelves of fiction books. More shelves of books lie to the south and west.", s_to Nonfiction1, w_to Fiction2; Room Fiction2 "Fiction H to P" has light with name "fiction", description "You see shelves and shelves of fiction books. More fiction books lie to the east and south.", e_to Fiction1, s_to Fiction3; Room Fiction3 "Fiction Q to Z" has light with name "fiction", description "You see shelves and shelves of fiction books. More fiction books are on shelves to the north and east, looks like the nonficiton section starts to the south.", n_to Fiction2, e_to Fiction1, s_to Nonfiction3; Room Research1 "Research Books" has light with name "research", description "Shelves of encyclopedia, dictionaries and thesauri of all types fill narrow shelves in this section. A broad book stand with a moveable magnifying glass sits on the table near the wall. Some of these books must have really small type. You can just see the tops of the tables in the study area to the north. To the east, the reference section continues. To the west, a lightly carved wooden door sports 'W.C.' in bronze letters.", n_to Study2, e_to Research2, w_to Bathroom; Room Research2 "Research Books" has light with name "research", description "Shelves of encyclopedia, dictionaries and thesauri of all types fill narrow shelves in this section. Shelves filled with magazines tower to the north. Thick, ponderous books like the ones in this section seem to also be the north to the west.", n_to Periodicals1, w_to Research1; Room Bathroom "Library Bathroom" has light with name "bathroom", description "This bathroom is remarkably clean, as far as bathrooms go. There is just one stall in a cubicle. If the bathroom only takes one person...is the cubicle necessary? A pottery sink is mounted to the south wall, there seems to be an unusually large amount of clearance between the tap and the basin. A narrow door is set in the wall next to the sink, the door is open slightly, revealing what looks like some sort of mop closet. A rectangular window with a small brass crank is set in the east wall, it is clouded so people cannot see in, but you cannot see out either. If you are done here, head back east.", before [; go: if (ladder in player && second ~= s_to ) { time = time +4; switch (random(8)) { 1 to 5: "You cannot fit through there carrying that big ladder"; 6 to 8: "You can't fit though there with that big ladder. Now that you think about it, it would probably fit through that window though."; } } ], e_to Research1, s_to closetdoor , in_to window; Room MopCloset "Mop Closet" has light with name "mop closet", description "This dingy storage closet has a cement drain basin set in the floor. Some dark copper pipes snake their way through along the wall, leading off into unknown directions. A ceiling tile in the ceiling (haha) looks loose...", n_to closetdoor , u_to ceiling, out_to closetdoor; Room CrawlSpace "Crawl Space Above the Bathroom" has light with name "crawl space" "crawl" "space" "above" "ceiling", description "It is pretty dark in here. You can feel a thick layer of dust under your hands. Looks like people do not come up here too often. A dust-covered beanbag chair with a large tear in it seems to be wedged under some support beams here. Overall, it does not look very inviting in here. Luckily, the crawl space still leads back down into the storage closet.", d_to ceiling; !!!!!!!!! ! Doors ! !!!!!!!!! object ceiling "ceiling tile" has scenery door static openable scored with name "ceiling" "tile" "crawl" "space", description "crawlspace.", when_closed "crawlspace.", when_open "crawlspace.", door_to [; if (self in MopCloset) return CrawlSpace; return MopCloset;], door_dir [; if (self in CrawlSpace) return d_to; return u_to;], found_in MopCloset CrawlSpace; Object closetdoor "closet door" has scenery door static openable open with name "door", description "It's just a plain wooden door.", door_to [; if (self in Bathroom) return MopCloset; return Bathroom;], door_dir [; if (self in Bathroom) return s_to; return n_to;], found_in Bathroom MopCloset; object mainDoor "Library Doors" has scenery door static openable with name "large" "door" "doors", description "They are a pair of doors with what looks like gargoyles carverd into them.", when_closed "The doors to the library are closed.", when_open "The doors to the library are wide open and letting all sorts of snow and cold in.", door_to [; if (self in Entrance) return Foyer; return Entrance;], door_dir [; if (self in Foyer) return w_to; return e_to;], found_in Entrance Foyer; object officeDoor "office door" has scenery door static openable lockable locked with name "office" "door" "locked", description "This looks like the door into the circulation office.", when_closed "The office door is closed.", when_open "The office door looks pretty open, not sure its supposed to be like that.", before [; unlock: if (time % 1440 > 420 && time%1440 < 1200) { if (player has key) { move key to office; print "A library worker shouts, ~You have no business doing that, you do not belong back here!~ ^ She Promptly rips the key out of your hands, closes the door and relocks it"; } } ], door_to [; if (self in Study2) return Office; return Study2;], door_dir [; if (self in Office) return e_to; return w_to;], with_key key, found_in Office Study2; object basementDoor "basement door" has scenery door static openable lockable locked with name "basement" "door" "locked", description "This looks like the door into the basement.", when_closed "The basement door is closed.", when_open "The basement door leads to unknown areas.", door_to [; if (self in Office) return Basement; return Office;], door_dir [; if (self in Basement) return u_to; return d_to;], with_key key, found_in basement office; object window "bathroom window" has scenery door static openable container with name "window", description "It's a window with a cloudy texture, like the kind you would see in a bathroom!", when_closed "The window is closed.", each_turn[; if (ladder in self) { move ladder to lawn; "^You push the ladder out the window!"; } ], door_to [; if (self in Lawn) return Bathroom; return Lawn;], door_dir in_to, found_in Lawn Bathroom, before [; Open: if (self in Lawn) { if (ladder notin Lawn) { print "You cannot reach the window. If you had a ladder or something..."; rtrue; } print "You cannot open the window from this side."; rtrue; } if (self in Bathroom && self has general) { give self ~general; print "You crank open the window. An icy wind fills the room and hows out into the library!"; } enter: if (self in Lawn) { if (ladder notin Lawn) {print "You cannot reach the window. Perhaps if you had a ladder...";rtrue;} } insert: if (ladder in self) { if (window has open) { move ladder to lawn; "You push the ladder out the window!"; } else { "You can put a ladder through a closed window!"; } } ]; !!!!!!!!!!! ! Shelves ! !!!!!!!!!!! Shelf MagShelf "Magazine shelf" Periodicals1 with name "shelf" "shelves", description "These shelves are filled with different magazines!"; Shelf CoatRack "coat rack" Foyer with name "rack" "small" "fastened" "wall" "north", description "It is a pretty plain coat rack, just a stained board with some brass hooks in it."; shelf NewsRack "newspaper rack" Periodicals2 with name "newspaper" "news" "rack", description "A number of local, regional and national newspapers cover this rack."; Shelf BookStand "book stand" Research1 with name "book" "stand", description "A broad bookstand rests here for people to use when looking at the large reference books. You can't see a reason why you would need to use this."; Cabinet BookReturn "book return box" Foyer with name "book" "return" "box", description "This is a wheeled cabinet for returning books. The wheels look really old, they probably will never turn.", before [; take: "You cannot fit your hand in the slot!"; ]; Shelf FictionShelves "fiction book shelves" with name "fiction" "shelves" "shelf", found_in Fiction1 Fiction2 Fiction3, description "These shelves are covered in all manner of fiction books."; Shelf NonfictionShelves "nonfiction book shelves" with name "nonfiction" "shelves" "shelf", found_in Nonfiction1 Nonfiction2 Nonfiction3, description "These shelves are coveres in all manner of nonfiction books."; Shelf StudyTables "study area table" with name "study" "table" "tables" "area", found_in Study1 Study2, description [; if (player in Study2) "These are well worn tables used for studying for many years."; "These are well worn tables used for studying for many years. These have some things scratched into the top."; ]; !!!!!!!!! ! Books ! !!!!!!!!! class Mag(20) with name "stack" "magazine" "stacks" "magazines", short_name "stack of magazines", plural "stacks of magazines", weight 6, before [ new_Mag; Take: if (self in MagShelf) { new_Mag = Mag.create(); if (new_Mag == nothing) "You reach for the", PrintShortName(self), " but there are none left!"; move new_Mag to parent(self); } ]; Mag Magazines1 "stack of magazines" MagShelf with name "stack" "magazine" "stacks" "magazines", description [; time = time + 5; print "You flip through a few pages and read the following...^"; switch (random(8)) { 1: "This is a strange magazine, all the pages are stuck together."; 2: "...sugar spice bread cake sauce is a heart-healthy alternative to ham during the holidays..."; 3: "...results in them having to create makeshift armor from old car parts..."; 4: "...with its 578 hp engine..."; 5: "...Recent study reveals that lab rats drown when you leave them in fishtanks overnight..."; 6: "...look at how thin you can be when you only eat fiber!"; 7: "...unsure who is going to fill in on offence while Spots is on the injured list..."; 8: "...then he ran out of magazine generalizations..."; } ]; class LocalNews(10) with name "local" "news" "newspapers" "paper" "papers", short_name "stack of local newspapers", plural "stacks of local newspapers", weight 8, before [ tmp; Take: if (self in NewsRack) { tmp = localNews.create(); if (tmp == nothing) "You reach for some newspapers but there are none left."; move tmp to parent(self); } ]; Localnews Local "stack of local newspapers" NewsRack with name "local" "news" "newspapers" "paper" "papers", description [; time = time + 5; print "You open a paper and survey the stories of local interest...^"; switch (random(8)) { 1: "Local philanthropist's journal found, details possible treasure left in library."; 2: "...noone cares about the president or his ninja-whats-its..."; 3: "In response to your recent article about people placing signs in their lanw, if those yahoos over at city hall would..."; 4: "...increased daytime security in the library as a result of the recently unearthed journal...^^ ! 'Daytime' you think to yourself, what about at night?"; 5: "...fishing tackle on sale!..."; 6: "...Bingo at the VFW hall will be moving from 6pm on Tuesday to 7pm on Wednesday to make room for the Avian Flu Outbreak Support Group, AFOPS for short."; 7: "...better winter traction...parsnips...flare guns on sale..."; 8: "...When he was a kid, Marty used to help old Mr. Cummins to make his famous pumpkin pies for the fair..."; } ]; class RegionalNews(10) with name "regional" "news" "newspapers" "paper" "papers", short_name "stack of regional newspapers", plural "stacks of regional newspapers", weight 8, before [ tmp; Take: if (self in NewsRack) { tmp = localNews.create(); if (tmp == nothing) "You reach for some newspapers but there are none left."; move tmp to parent(self); } ]; RegionalNews Regional "stack of regional newspapers" NewsRack with name "regional" "news" "newspapers" "paper" "papers", description [; time = time + 5; print "You open a paper and survey the stories of regional interest...^"; switch (random(8)) { 1: "The headline reads, ~President Kidnapped...Ninjas Suspected~"; 2: "Crimes involving produce are down 8% over the past three years."; 3: "...in this report, we take a deeper look at ninjas any why they might want to steal the president..."; 4: "...and dryer for sale, $206 o.b.o. Never tested on people..."; 5: "The weather report reads, ~Ridiculously cold weather kills forty~ ^...people daring to venture outside without a full compliment of cold weather gear are sure to perish in only a few minutes..."; 6: "Strange, this page is just blank!"; 7: "Theres a little political cartoon of a characature head sticking out of a phonograph horn underneath a ladder leaning against a window. The caption is ~H.R. 2146 in detail~. WTF is that supposed to mean?"; 8: "...proposal to build a giant robotic casino in space..."; } ]; class NationalNews(10) with name "national" "news" "newspapers" "paper" "papers", short_name "stack of national newspapers", plural "stacks of national newspapers", weight 8, before [ tmp; Take: if (self in NewsRack) { tmp = localNews.create(); if (tmp == nothing) "You reach for some newspapers but there are none left."; move tmp to parent(self); } ]; NationalNews National "stack of national newspapers" NewsRack with name "national" "news" "newspapers" "paper" "papers", description [; time = time + 5; print "You open a paper and survey the stories of national interest...^"; switch (random(8)) { 1: "God wins Trivial Pursuit championship!"; 2: "A special interest piece reads, ~...Resthianoragen supposedly left behind a large fortune packed away among his collection of rare books...~"; 3: "There is a fire burning something somewhere! Run in unrestrained terror!"; 4: "...it turns out that soybeans make a remarkable insulation...melts!..."; 5: "A headline roars, ~The President Has Been Kidnapped by Ninjas!~"; 6: "...guns...gunsgunsguns...guns...gunsguns..."; 7: "...blood shortage among inanimate objects..."; 8: "...gets really lazy with the 'news stories' toward the end..."; } ]; class FictionBooks(40) with name "fiction" "book" "books" "story", short_name "stack of fiction sboks", plural "stacks of fiction sboks", weight 14, before [ tmp; Take: if (self in FictionShelves) { tmp = FictionBooks.create(); if (tmp == nothing) "You reach for the", PrintShortName(self), " but the shelves are empty."; move tmp to parent(self); } ]; FictionBooks Fiction "stack of fiction books" FictionShelves with name "fiction" "book" "books" "story", description [; time = time + 5; print "You open a book and read a bit...^"; switch (random(8)) { 1: "...and they heaved in unison..."; 2: "It was a dimly lit and tempestuous evening..."; 3: "...he simply vanished into the floor!"; 4: "This book appears to be written in an unreadable, whimsical script"; 5: "She held the gun up to the tree, ~I won't let you steal my nutrients!~"; 6: "...over 800 years old!"; 7: "...and the ninjas would begin their conquest of the world by kidnapping the president..."; 8: "You open the book...all that is inside is a mirror?! How bizzare."; } ]; class NonfictionBooks(40) with name "nonfiction" "book" "books" "story" "non", short_name "stack of nonfiction sboks", plural "stacks of nonfiction sboks", weight 14, before [ tmp; Take: if (self in NonfictionShelves) { tmp = NonfictionBooks.create(); if (tmp == nothing) "You reach for the", PrintShortName(self), " but the shelves are empty."; move tmp to parent(self); } ]; NonfictionBooks Nonfiction "stack of fiction books" NonfictionShelves with name "fiction" "book" "books" "story", description [; time = time + 5; print "You open a book and read a bit...^"; switch (random(8)) { 1: "...grew up under the most unusual circumstances..."; 2: "In his will, he underlined his wish to have his house tranformed into a libaray..."; 3: "...the winters back then would simply suck the life right out of you..."; 4: "This book is empty!?"; 5: "The logical conclusion is that the entire war was initiated over a dog that may or may not have been alive at the time."; 6: "Only you can prevent forest fires."; 7: "Nothing worth reading here."; 8: "Then Xenu blew up all the worlds with a hundred million nuclear bombs, killing a hundred billion people on each of a hundred thousand planets."; } ]; !!!!!!!!!!! ! Objects ! !!!!!!!!!!! Object ladder "aluminum step ladder" MopCloset with name "ladder" "step" "aluminum", weight 25, after [; PutOn: "Ther's none puton, yo.";], has supporter scored; class RopeClass(20) with name "length" "rope", short_name "a length of rope", plural "a number of lengths of rope", weight 4, before [ tmp; Take: if (self in Gallery2) { tmp = RopeClass.create(); if (tmp == nothing) "You reach for the", PrintShortName(self), "but this one appears to be firmly secured."; move tmp to parent(self); } ]; Object rope "length of rope" with name "length" "rope", description [; if (self in Gallery2) "There sure is a lot of rope hanging from the ceiling here!"; "It is a few yards of a twisted twine rope."; ]; object globe "large globe on a wheeled stand" Research2 with name "large" "globe" "wheel" "wheeled" "stand", weight 160, description "This is a large globe on a wooden stand. There are casters on the bottom of the stand so that it can be wheeled about freely to other parts of the library.", before [; PushDir: AllowPushDir(); print "This is a bit awkward.^^After a bit of effort, you get the globe stand rolling.^^"; if (self has general) { rtrue; } else { give self general; print "As you roll the globe along the floor, a glint of metal catches your eye!^"; move key to Research2; } rtrue; Push, Pull, take: print "This is a bit awkward.^^After a bit of effort, you get the globe stand moving.^^"; time = time + 10; if (self has general) { rtrue; } else { give self general; print "As you roll the globe along the floor, a glint of metal catches your eye!^"; move key to Research2; } ], has scored; object key "key" with name "key" "glint" "metal", weight 1, description "Someone lost this key underneath the globe. I wonder what it goes to...", has scored; Wearables watch "wristwatch" with name "wrist" "watch" "time", weight 1, wear_location WEAR_WATCH, description [;Timedisp();]; object chair "bronze chair" Gallery3 with name "bronze" "chair", weight 340, description "This chair is enormous! All in richly detailed bronze. It must weigh over three hunderd pounds!", has supporter concealed light scored; Object PaintingCase "painting case" Gallery1 with name "paint" "art" "modern" "plexiglas" "glass" "plexi" "case", description [; print "You look closely at some encased art: "; switch (random(5)) { 1: "You see some construction paper cutouts of right triangles."; 2: "There is a blue background with three large red spots in the center."; 3: "It looks kinda like a person, but they are covered with breasts!"; 4: "It looks like VanGogh's ~Stormy Night~ but its all done with dyed rice grains!"; 5: "It looks like a small key under a photograph of the earth from space."; } ], has static concealed; Object figureCase "figurine case" Gallery3 with naem "figure" "figures" "figurine" "case" "archaic", description [; print "It's an airtight glass case, there are a bunch of little figures inside:"; switch (random (4)) { 1: "That one kinda looks like a zombie!"; 2: "This one has no head?!"; 3: "It is a little man on a throne"; 4: "This looks like a bunch of grapes!"; } ], has static concealed; class Carpet(18) with name "carpet" "squares", short_name "carpet square", plural "carpet squares", weight 3, before [ tmp; Take: if (self in Gather) { tmp = Carpet.create(); if (tmp == nothing) "You reach for the", PrintShortName(self), " but there are none left on the floor."; move tmp to parent(self); } ], has concealed supporter; Carpet CSquare "carpet square" Gather with name "carpet" "square" "squares" "number", description [; print "It looks like a "; if (player in Gather) { switch (random(5)) { 1: print "red"; 2: print "green"; 3: print "blue"; 4: print "yellow"; 5: print "orange"; } } else { print "plain old"; } print " carpet square, kinda plush."; time = time -2; ], has concealed supporter; Object stuff "chairs and tables" Gather with name "chairs" "chair" "fold" "folding" "folded" "tables" "table" "stack", description "Its a bunch of chairs and tables in a stack, they are in a rack bolted to the floor.", has static concealed; Object scribbles "scribblings" Study2 with name "scribbles" "scribbling" "carving" "carved" "writing" "things", description "They are a little worn but it looks like they say ~bove he lose t~.", has static concealed scored; Object gun "gun" Crawlspace with name "gun", weight 3, description "Its a gun...pretty anticlimactic!", has scored; object flashlight "flashlight" with name "light" "flashlight" "flash", weight 3, decription "It's a flashlight, its casts flashlightness!", has scored light; !!!!!!!!!!!! ! Clothing ! !!!!!!!!!!!! Wearables Top1 "blue jacket" CoatRack with name "jacket" "blue", wear_location WEAR_TOP, weight 3, weatherdef 12, description "Its a plain blue jacket, good for keeping out the cold."; Wearables Top2 "grey poncho" CoatRack with name "grey" "poncho", wear_location WEAR_TOP, weight 6, weatherdef 23, description "This thick cotton poncho has a very tight weave. It would offer good defence against the elements."; Wearables Top3 "red cloak" CoatRack with name "red" "cloak", wear_location WEAR_TOP weight 3, weatherdef 18, description "This bright red cloak makes you think of bull fighting. What a strange thought!"; Wearables Top4 "wind breaker" CoatRack with name "wind" "breaker", wear_location WEAR_TOP weight 2, weatherdef 7, description "This is a pretty sturdy windbreaker, it's almost useless in the kind of weather we are having right now."; Wearables Bottom1 "winter leggings" CoatRack with name "winter" "leggings" "leg" "pants", wear_location WEAR_BOTTOM, weight 7, weatherdef 20, description "This bright red cloak makes you think of bull fighting. What a strange thought!"; Wearables Neck1 "orange scarf" CoatRack with name "scarf" "orange", wear_location WEAR_NECK, weight 1, weatherdef 9, description "This long wool scarf would sure keep you warm in the snow."; Wearables Neck2 "gold necklace" with name "gold" "necklace", wear_location WEAR_NECK, weight 2, weatherdef -14, description "This is a thick gold necklace with large gold beads."; Wearables Feet1 "green right boot" CoatRack with name "green" "boot" "right", wear_location WEAR_FEET, weight 3, weatherdef 4, description "This one boot would keep you warm in the snow, where is the other?"; Wearables Hands1 "padded gloves" CoatRack with name "padded" "gloves" "thick", wear_location WEAR_HANDS, weight 1, weatherdef 5, description "These thick padded gloves look almost impenetrable!"; wearables Head1 "knit stocking cap" CoatRack with name "knit" "stocking" "cap", wear_location WEAR_HEAD, weight 1, weatherdef 7, description "It looks quite warm."; !!!!!!!!!!!!!!!!!!! ! Speical Objects ! !!!!!!!!!!!!!!!!!!! [ Initialise; chill =0; equipment = 0; time = 420; booted = 0; location = Foyer; move watch to player; move top4 to player; print "Looks like you are in a library?^^"; StartDaemon(Entrance); StartDaemon(Lawn); StartDaemon(Desk); ]; verb "crank" * -> Open;