Constant Story "^^Sims-R-Us"; Constant Headline "^^An interactive Exploration of Living the Dream^^ Copyright (c) 2005 by Matt Brown.^"; include "Parser"; include "VerbLib"; Include "Grammar"; Attribute Hater; [ initialise; location = Sitting_Area; StartDaemon(Brian); StartDaemon(Rod); lookmode = 2; !; ]; Object Sitting_Area "~Sitting Area~" with description "Three corporately approved black leather ~comfy chairs~, a rickety coffee table sprinkled liberally with multi-colored legos, and a rug that may or may not have been inspired by mescaline. A perfect place to sit around making things up.^^There are all manner of places to go from here.... You can go north, south, west, northwest, or southeast to visit people, the hallway in front of Rod's office is east, and the engineers are northeast.", n_to Office_MattRay, s_to Office_Matt, e_to Hall_Rod, w_to Office_Jules, nw_to Office_Morgan, se_to Office_Melissa, ne_to Hall_Engineering, has light ; object Rug "ugly drug-induced rug" Sitting_Area with name 'rug' 'mescaline' 'drug' 'ugly', description "Quite possibly the ugliest rug you have ever seen. It does really tie the room together though.", before [; Take: give rug general;"Really now. Just because it's ugly doesn't mean you can steal it."; LookUnder: "Nope. Nothing. Good try though. Somthing could have been hidden under there."; ], has scenery ; Object Leather_Chair "black leather chair" Sitting_Area with name 'black' 'leather' 'chair' 'coporate' 'approved', description "Black leather comfy chairs. They seem oddly corporate and yet oh so comfy.", before [; Exit: give Sitting_Area ~general; if (parent(player) ~= Leather_Chair) "You're not sitting in the chair."; move player to Sitting_Area; "You get up from the comfy chair."; Enter: if (parent(player) == Leather_Chair) "You're already sitting in the chair."; move player to Leather_Chair;"You plop down in the corporate comfy chair in a most decidedly professional manner."; ], has scenery enterable supporter, ; [ LoginSub; "That doesn't make any sense here, as there's nothing to login to.";]; verb 'login' * -> login; object Open_Area "~Wasted Space~" with description "A rather inappropriately large open area that you can only assume the ~facilities people~ would rather be filled with a dozen 3'x3' Micro-Cube Workspaces(tm). At the moment though, it is defensively filled quite thoroughly with two large L-shaped sectional couches. There's also a large plasma television here and a computer. The hallway is west.", w_to Hall_Junction, before[; Login: print "You type in your name and password, but they don't appear to work."; if (computer has on) { if (computer has general) " Perhaps security witnessed you trying to steal the computer and has taken ~steps~."; if (tv has general) " Perhaps security witnessed you trying to steal the TV and has taken ~steps~ to prevent any further damage someone like you might cause."; if (rug has general) " Perhaps security witnessed your attempted rug theft and has taken precautions to reduce the risk of you."; rtrue;} " Maybe it's because it's not even turned on."; ], has light ; object TV "inappropriately expensive TV" Open_Area with name 'tv' 'television' 'plasma' 'expensive' 'inappropriately expensive', before [; Examine: if (computer has on && self has on) { "There's a Windows login prompt on the screen.";} if (verb_word ~= 'watch') { print "A 42 inch Panasonic plasma television. It's best not to think about how much it must have cost."; if (self has on) " The screen's black, but it looks like someone left it on."; " It's turned off."; } print "You stare at the excessively expensive shiny blackness. It's quite possibly the most amazing black you've ever seen."; if (self hasnt on) " You can only imagine how black it might be if the TV were actually turned on."; " Wow. Just wow."; SwitchOn: if (self hasnt on) {give self on; "Click. The power LED turns green.";} "It's already on."; SwitchOff: if (self has on) {give self ~on; "Click. The power LED turns red.";} "Environmentally sound thinking, but it's not on. It's the thought that counts."; Take: give tv general; "Plasma TVs are pretty light, but that doesn't make it okay for you to steal them."; Push: "The TV is light enough, but unless you're unionized, you should probably leave well enough alone."; ], has switchable scenery on, ; object Computer "communal computer" Open_Area with name 'computer' 'communal' 'pc' 'dell', before [; Examine: print "A reasonably well decked-out Dell computer. It doesn't have a monitor, but it appears to be hooked up to the TV."; if (self has on) " It's turned on."; " It's turned off."; SwitchOn: if (self hasnt on) {give self on; print "Click whirrrr... The power LED turns green"; if (tv has on) ", and after a few seconds, a Windows login prompt appears on the TV screen."; ".";} "It's already on."; SwitchOff: if (self has on) {give self ~on; print "Click whine... The power LED goes out"; if (tv has on) ", and the TV screen goes black."; ".";} "Environmentally sound thinking, but it's not on. It's the thought that counts."; Take: give self general; "Surely security would notice you carrying something like that to your car."; ], has switchable scenery on, ; object Couch "trendy leather sectional" Open_Area with name 'sofa' 'couch' 'leather' 'brown' 'black' 'sectional' 'l-shaped' 'couches' 'large' 'sofas' 'trendy', description "Two five-cusion dark brown leather sectionals.", before [; Enter: if (parent(player) == Couch) {move player to Open_Area; "You're already sitting on the sofa.";} move player to couch;"You plop down onto the sectional. Ahhh..."; ], has scenery enterable supporter, ; object Hall_Junction "~Crossroads~" with description "This is the hallway at the corner of the Sims 3 area. From here you can go north to visit Brian, west to the rest of the team, or east to the common area.", n_to Office_Brian, w_to Hall_Rod, e_to Open_Area, has light ; object Hall_Rod "~Hallway~" with description "This is an odd little hallway between the crossroads to the east and the sitting area to the west. Rod's office is to the south, the sitting area is west, and another hallway is to the east.", s_to Office_Rod, w_to Sitting_Area, e_to Hall_Junction, has light ; object Hall_Engineering "~Engineer Way~" with description [; "This is the ~hub~ of all things geeky and technical. Avery and Blazej are to the southeast, Bruce is east, Snorri is to the northeast, and the sitting area is southwest of here. Even the air in this corner of the Sims 3 area feels smarter than you."; ], each_turn [; switch (random(5)) { 1: "^You feel largely irrelevant."; 2: "^You feel mostly ignorant."; 3: "^You feel terminally stupid."; 4: "^You are suddenly aware of all of the math you don't know."; 5: "^You spontaneously realize that you may not be worthy."; }], ne_to Office_Snorri, e_to Office_Bruce, se_to Office_BlazejAvery, sw_to Sitting_Area, has light ; object Office_Matt "Matt's Office" with description "The office is full of random trinkets and junk of a primarily tacky and classless nature. It doesn't look like he's unpacked even though he's been here for months. There's a large comfy chair in the corner with an EA Sports blanket draped over it, and a box of mints on the table. It's also oddly dim in here, but the sitting area is to the north.", n_to Sitting_Area, before [; Exit: if (self hasnt general) {give self general; <>;} ], has light ; Object Matt_ComfyChair "ugly comfy chair" Office_Matt with name 'ugly' 'comfy' 'chair', description "It looks like your grandmother's easychair, and it likely smells like her as well. There's a fleece blanket with an ~EA Sports~ logo on it draped over the chair in an apparent effort to make it look more ~hip~. As far as you can tell, It's not working.", before [; Exit: give Office_Matt ~general; if (parent(player) ~= Matt_ComfyChair) "You're not sitting in the chair."; move player to Office_Matt; give self general; "As you get up, you're pretty sure all of the change from your pockets has been left behind. Not a bad second income for the chair's owner. Cunning..."; Enter: if (parent(player) == Matt_ComfyChair) "You're already sitting in the chair."; move player to Matt_ComfyChair;"You plop down in the chair."; Smell: print "I miss grandma.";briancam(action, noun, second); rtrue; Search: if (self has general) "Nice try, but your change is gone. Maybe you could hit Matt up for a buck if you're so hard up."; "Nope. Nothing. It was worth a shot though."; ], has scenery enterable supporter, ; Object Blanket_EASports "~EA Sports~ blanket" Office_Matt has scenery, with name 'blue' 'ea' 'ea sports' 'sports' 'blanket' 'fleece', description "A blue fleece blanket with excessive corporate sponsorship. It has the ~EA Sports~ logo embalzened on it in big white letters. Sitting on it would likely enter you into an implicit contract with several major sports organizations.", before [; Take: "Ummm... that's Matt's... and he's sitting right here. Do you have some sort of ~issue~?"; ], ; object Mints "box of mints" Office_Matt with name 'mints' 'mint' 'box' 'altoid' 'altoids', description "A metal tin of curiously strong mints. They look like they're there for ~guests~, but you can never be too sure.", before [; Take: if (self has general) {print "Matt reaches over and smacks you. Maybe you shouldn't be so greedy. Sheesh.";rtrue;} give self general; print "You feel refreshed.";briancam(action, noun, second);rtrue; Smell: print "Mmmm... minty.";briancam(action, noun, second); rtrue; ], has concealed ; object Office_Brian "Brian's ~Office~" with description "Not so much an office as a corner and a desk, but still... home is home. There's a green misfit chair sitting awkwardly in the middle of area. It's arguably the least welcoming guest chair you've ever seen. It smells Canadian here. There's a hallway junction south of here.", s_to Hall_Junction, before [; Exit: if (self hasnt general) {give self general; <>;} Smell: if (noun == 0) "Smells like Seattle only north-er."; ], has light ; object Desk_Brian "Brian's desk" Office_Brian with name 'desk' 'brian^s', description "Nothing special really. It's just a desk. Apparently Brian isn't big on frills.", before [; Smell: print "The desk smells faintly of maple syrup."; briancam(action, noun, second); rtrue; ], has scenery supporter ; Object Brian_Chair "awkwardly placed misfit chair" Office_Brian with name 'awkward' 'awkwardly' 'misfit' 'placed' 'green' 'chair', description "A green guest chair placed awkwardly in the middle of the floor.", before [; Smell: print "Oddly, you detect a slight hint of moose.";briancam(action, noun, second); rtrue; Exit: give Office_Brian ~general; if (parent(player) ~= Brian_Chair) "You're not sitting in the chair."; move player to Office_Brian; "You get up, but you're pretty sure sitting in the chair made you ever so slightly more Canadian."; Enter: if (parent(player) == Brian_Chair) "You're already sitting in the chair."; move player to Brian_Chair;"You plop down awkwardly in the awkwardly placed chair."; ], has scenery enterable supporter, ; object Office_Rod "Rod's Office" with description "A barren wasteland filled with debris. You can only assume that it reminds him of home. There's a hallway north.", n_to Hall_Rod, has light ; object Sword "medieval-looking sword" Office_Rod with name 'sword' 'medieval' 'medieval-looking', description "It's an Everquest promotional sword, but it looks real enough and could probably do some damage.", before [; take: move sword to player; print "You successfully ~go all AD&D~ on it. Let's hope no one has a camera.^"; briancam(action, noun, second); rtrue;; swing: switch (random(3)) { 1: print "Swung."; 2: print "Well done, Highlander."; 3: print "There can be only one."; } briancam(action, noun, second);rtrue; ], ; object Office_MattRay "~Matt and Ray's Place~" with description "The area feels like some sort of communal living experiment. Probably communist. Both Matt and Ray have their own desks with their own personality-defining objet d'art scattered across them (and they're sitting at them). The sitting area is to the south.", s_to Sitting_Area, has light ; object Office_Jules "Jules' Cube" with description "The area smells oddly like a movie set. Jules is here doing something artsy. The sitting area is to the east.", e_to Sitting_Area, before [; Exit: if (self hasnt general) {give self general; <>;} Smell: "Smells like Hollywood... only you know... interactive."; ], has light ; object Office_Morgan "Morgan's Cube" with description "Morgan's cube is full of sketches and other seemingly artsy stuff. The sitting area is southeast of here.", se_to Sitting_Area, has light ; object Sketches_Morgan "Morgan's sketches" Office_morgan with name 'sketches' 'sketch' 'morgan^s', description "Mostly pictures of school girls... but it's best not to read too much into that.", before [; Take: "Those might be evidence someday. It's probably best to leave ~exhibit A~ where it is."; ], has scenery ; object Office_Melissa "Melissa's Office" with description "An empty room full of nothing. The sitting area is to the northwest.", nw_to Sitting_Area, has light ; object Office_BlazejAvery "~Avery and Blazej's Place~" with description "Avery and Blazej are sitting here working diligently on terribly technical things that you couldn't possibly understand. The engineering hall is to the northwest.", nw_to Hall_Engineering, has light ; object Office_Bruce "Bruce's Cube" with description "An oddly feline corner of the world. Bruce is here coding something you couldn't possibly understand... seriously... don't even try. The engineering hallway is west.", w_to Hall_Engineering, has light ; object Office_Snorri "Snorri's Cube" with description "This little tucked-away bungalow contains Snorri. The engineering hallway is southwest of here.", sw_to Hall_Engineering, has light ; [opposite_dir dir; switch (dir) { n_obj: return s_obj; s_obj: return n_obj; e_obj: return w_obj; w_obj: return e_obj; ne_obj: return sw_obj; se_obj: return nw_obj; nw_obj: return se_obj; sw_obj: return ne_obj; } ]; [wander o direction loc way exit_count exit_chosen; loc = parent(o); objectloop (direction in compass) { way = loc.(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 = loc.(direction.door_dir); if (way ofclass Object && way hasnt door) exit_count++; if (exit_count == exit_chosen) { move o to way; if (loc == location) {print "^", (a) o, " walks away to the ", (a) direction, ".^";rtrue;} if (way == location) {print "^", (a) o, " walks in from the ", (a) opposite_dir(direction), ".^";rtrue;} rfalse; } } ]; [whisper o; if (parent(self) == parent(o)) print (the) self, " whispers, ";]; [briancam v n s; if (parent(brian) == parent(player)) { switch (v) { ##Swing:print "^Brian tapes you swinging ", (the) noun, ". ~You go Babe Ruth~ he snickers.";give brian general; ##make:print "^Brian tapes you fiddling with ", (the) noun, ". ~In case anyone doubts your creativity~ he laughs.";give brian general; ##Take:print "^Brian tapes you taking ", (the) noun, ". ~In case security asks me~ he notes wryly.";give brian general; ##Ask: print "^Brian video tapes you talking to ", (the) n, ". ~Just in case someone says something insightful~ he jokes.";give brian general; ##Smell: if (n ~= brian) {print "^Brian tapes you smelling ", (the) n, ". ~That's just too weird to pass up~ he says."; give brian general;} } } ]; object Brian "Brian" Sitting_Area with name 'brian', description "Canadian. He's carrying a video camera.", life [; ask: switch (second) { 'Rod': whisper(rod); "~I'm upwind.~"; 'Matt': whisper(mattb);"~Odd, yes... fun to toy with.~"; 'Morgan':whisper(morgan); "~Oh sure... he could snap me like a twig... I've come to grips with that.~"; 'lego', 'legos': "~I've never really understood the point. Of course you can throw them and have a chance of putting someone's eye out, so they're still pretty cool.~"; 'canada','canadian','canadians': "Brian stares thoughfully northward, fighting back a single, solitary tear."; 'camera', 'camcorder', 'video': "~I want to be ready just in case something inspiring happens.~"; } print "~I have no idea what you're talking about, eh.~"; rtrue; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], react_after [; Examine: if (noun ~= brian) print "^Brian records you examining ", (the) noun, ". ~For my website~ he says smiling."; give self general; ], each_turn [; if (self hasnt general) { switch (random(4)) { 1: "^Brian says ~I wonder if jamming my pen in my ear would hurt?~"; 2: "^Brian starts video taping you and says ~Say something funny.~"; 3: "^Brian holds his video camera crooked, says ~Dutch tilt.~, and laughs quietly to himself."; 4: "^Brian says ~Maybe we should mindmap this.~"; } } give self ~general; ], before [; Smell: "You can't be certain without being rude, but you think you maple syrup and a faint whif of socialized medicine. Apparently that doesn't wash off."; ], daemon [; if (random(4) == 1) wander(self); ], has animate proper transparent, ; object Camcorder "camcorder" Brian with name 'video' 'camera' 'camcorder' 'handheld' 'digital', description "It's a pretty standard handheld digital video camera. Brian seems very attached to it.", before [; Take: print (a) parent(self), " yanks ", (the) self, " away from you and says ~No way, eh. You wouldn't appreciate it the way I do.~"; rtrue; Smell: print "Oddly enough, it smells like Celine Dion.";briancam(action, noun, second); rtrue; ], has scenery, ; object MattB "Matt" Office_Matt with name 'matt' 'mattuk', description "A balding middle-aged man who dresses like he still lives in 1990's Seattle.", life [; ask: switch (second) { 'design', 'game design': print "~Oh yeah... We should probably have one of those.~"; 'Unbreakable', 'village', 'sixth sense', 'signs': print "~M Night Shamalan is the spawn of Satan whose arrogance is surpassed only by his lack of talent.~ Matt continues mumbling angrily, but you can't quite make out what he's saying."; 'Brian': whisper(brian); print "~Show me on the dolly where he touched you.~"; 'Rod': whisper(rod); print "~British people freak me out, but Rod seems okay. Then again, that's how they sneak up on you.~"; 'Ray': 'Matt': 'Morgan': 'simcity', 'sim city': print "~I think the urban planning simulation community has been clammoring for zombies for eons, and we were ready to give that to them.~"; default: print "Matt talks passionately for several minutes, but you're not quite sure what the hell he's going on about. It's likely that that's his way of telling you that he doesn't know anything about that."; } briancam(action, noun, second); rtrue; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], each_turn [; switch (random(10)) { 1: "^Matt distractedly pulls a piece of candy from somewhere amidst the pile of random junk on his desk and eats it."; 2: "^Matt crosses his legs in his chair."; 3: "^Matt says ~This reminds me of the time you tried to drill a hole through your head~."; 4: "^Matt says ~Somebody saw a cockroach up on twelve~."; 5: "^Matt says ~Cats and dogs... sleeping together... mass hysteria!~"; 6: "^Matt touches himself in an inappropriate manner. It's likely he thinks that's funny."; 7: "^Matt says something crude and laughs nervously, pretending it was an accident."; } ], has animate proper, ; object Morgan "Morgan" Office_Morgan with name 'morgan' 'apeman', description "A large, imposing, threatening man. He appears to have recently shaved his head, although you wouldn't venture to guess a reason. He's wearing an ~Urbz~ t-shirt.", life [; ask: give self general; switch (second) { 'Brian': whisper(brian); print "~I'd rather not talk about it. I find his behavior inappropriate and yet I can't look away.~"; 'Rod': whisper(rod); print "~I don't particularly approve of him being British, but he has more hair than me, and hence he has my respect.~"; 'matt': whisper(mattb); Hate(self); print "~Idiot. He's the reason that we're all going to hell~."; 'head', 'hair': print "~You wanna touch it? Come on... go ahead.~"; 'urbz', 'urbs','shirt','t-shirt': print "Morgan becomes suddenly silent and pensive. As he looks towards the sky, you think you see a single tear run down his cheek before he turns away seemingly embarassed."; 'legos': Hate(self);print "~Simple toys for simple minds.~"; 'simcity', 'sim city','sim','city': print "~Ninjas. Ninjas would have saved it.~"; 'jules': print "~He's pretty cool for a 'movie guy', and so far he hasn't said anything stupid. I don't want to have to hurt him.~"; default: print "Morgan glares at you silently with a single raised eyebrow. He appears distrustful and as likely to crush you with his bare hands as listen to your pitiful questioning."; } give self ~general; briancam(action, noun, second); rtrue; attack: deadflag = true; "Morgan crushes you with his bare hands. Who knew people with shaved heads had such short tempers."; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], each_turn [; if (self hasnt general) { switch (random(10)) { 1: "^Morgan draws a picture of a schoolgirl with striped knee-socks."; 2: "^Morgan draws a picture of a schoolgirl with polk-a-dot knee-socks."; 3: Hate(self);"^Morgan says ~I could crush you. You know that, right?~."; 4: "^Morgan says ~Are YOU talking to ME?~."; 5: "^Morgan says ~On The Urbz...~, but then you stop listening and don't hear the rest."; 6: "^The disembodied voice of Mary Beth says ~Hey Morgan?~ from somewhere, but you can't quite pinpoint it."; 7: "^The disembodied voice of Mary Beth says ~Hey Morgan, can you come look at this?~ from somewhere, but you can't quite pinpoint it."; } } give self ~general; ], has animate proper, ; [ Hate o; if (parent(o) == parent(Rod)) give Rod hater;]; object Rod "Rod" Office_Morgan with name 'rod', description "A thin self-depricating British man. You get the feeling that he might attack you if he thinks you looked at him funny.", life [; ask: switch (second) { 'Brian': if (parent(brian) == parent(self)) print "Rod whispers, "; print "~For all of the pain in my life... I blame him.~"; 'Rod', 'self': print "~I'm the most British guy on this team... so I got that goin' for me.~"; 'matt': print "~10 kilometers.~"; 'sword': print "~I made the most successful MMORPG of all time, and all I got was that stupid sword.~"; 'eq', 'everquest': "~Hey... I got that cool sword, so I consider it a win.~"; default:print "Rod mumbles something obscurely British that you can't quite make out."; } briancam(action, noun, second); rtrue; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; if (noun == sword) "Rod yells ~Hey! That's mine~ and grabs the sword from you and tucks it into his pants."; ], each_turn [; if (self has hater) {give rod ~hater; "Rod says, ~Why ya gotta be a hater?~^";} if (parent(brian) == parent(self)) { if (self has general) { give self ~general; "^Rod says ~Hi Brian.~"; } } switch (random(3)) { 1: "^Rod yells ~10 kilometers~!"; } ], daemon [; if (random(3) == 1) wander(self); if (parent(brian) ~= parent(self)) give self general; ], has animate proper, ; object MattG "Matt" Office_MattRay with name 'matt' 'sabrehawk' 'mattg' 'goss', description "A preternaturally polite twenty-something with encyclopedic knowledge of classic black and white film. He's wearing an ~Arrested Development t-shirt~.", life [; ask: switch (second) { 'Brian': Hate(self);whisper(brian); print "~I consider myself scarred.~"; 'Rod': whisper(rod); print "~He haunts my dreams.~"; 'matt': Hate(self);whisper(mattb); print "~'Big Matt' my ass.~"; 'morgan': Hate(self);whisper(morgan); print "~An animal really. I'm sure one day he'll leap over the wall and swallow me whole.~"; 'ray': whisper(ray); print "~What does 'sleeps with the fishes' mean?~"; 'simcity', 'sim city': print "~Ninjas and zombies. The perfect game.~"; 'casablanca', 'humphrey', 'bogart': print "~Ah yes... Bogart. I would have had his children.~"; 'charade': print "~Grant and Hepburn. Quirky and stylish. I love it.~"; 'cary grant', 'cary','grant': print "~A real man.~"; 'audrey', 'hepburn': print "~Total... babe.~"; 'sabrina': Hate(self);print "~Hepburn and Bogart. He didn't deserve her.~"; 'film', 'movie', 'movies', 'films': print "~Bogart, Grant, Hepburn. They kick ass.~"; 'illini': print "~If you surround a basketball team with corn, good things are bound to happen.~"; default: print "Matt stares at you in a way that makes it clear that you should stop talking now... although maybe he just doesn't have anything to say about that."; } briancam(action, noun, second); rtrue; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], each_turn [; switch (random(5)) { 1: "^Matt mutters something about ~fantasy football~, but you can't quite make it out."; 2: "^Matt yells ~Go Illini!~ for no readily apparent reason."; } ], has animate proper, ; object Ray "Ray" Office_MattRay with name 'ray' 'mazza', description "An oddly well-dressed young man. You can't be certain, but he may be involved with the mafia.", life [; ask: switch (second) { 'Brian': Hate(self);whisper(brian); print "~I consider myself scarred.~"; 'Rod': whisper(rod); print "~He haunts my dreams.~"; 'matt': whisper(mattg); print "~I can't tell them apart. It's creepy really.~"; 'morgan': whisper(morgan); print "~I don't feel safe.~"; 'mafia': if (self hasnt general) {give self general; print "Ray looks at you vaguely annoyed. He pulls a small notebook from his pocket, jots your name down on one of the pages then slips it back into his pocket.";} else print "Ray thoroughly ignores you."; 'simcity', 'sim city','sim','city': print "~I wish we'd put more fruit in it, but hindsight IS 20/20 after all.~"; 'list','notebook': print "~It's nothing. I just like keeping lists... you know... of stuff... for later."; 'fruit': print "~Meat is the devil's playground.~"; default: print "Ray stares at you in a way that makes it clear that you should stop talking now... although maybe he just doesn't have anything to say about that."; } briancam(action, noun, second); rtrue; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], each_turn [; switch (random(10)) { 1: "^Ray pulls an apple from his pocket and eats it."; 2: "^Ray pulls an orange from his pocket, peels it and eats it."; 3: "^Ray pulls a banana from his pocket, peels it and swallows it whole."; 4: "^Ray pulls a pineapple from his pocket and swallows it whole."; 5: "^Ray pulls a cumquat from his pocket, polishes it on his sleeve, and then eats it."; 6: "^Ray holds up an apple and asks ~Did you see anyone lick this?~"; } ], has animate proper, ; object Blazej "Blazej" Office_BlazejAvery with name 'Blazej' 'blaze', description "An abnormally difficult to spell individual with apparently savantian lego abilities.", life [; ask: switch (second) { 'Brian': whisper(brian); print "~He's okay.~"; 'Rod': whisper(rod); print "~British. Whatever.~"; 'matt': print "~Matt who?~"; 'jules': print "~Jules who?~"; 'ray': print "~Ray who?~"; 'snorri': print "~Snorri who?~"; 'Bruce': print "~Bruce who?~"; 'Mary': print "~Mary Beth who?~"; 'morgan': print "~Morgan who? The big guy?~"; 'legos': print "~You are not worthy to receive my LEGO wisdom."; default: print "Blazej stares at you in a way that makes it clear that you should stop talking now... although maybe he just doesn't have anything to say about that."; } briancam(action, noun, second); rtrue; show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) {print "~Weak.~";briancam(action, noun, second); rtrue;} if (noun == legomanual) {print "~Weak.~";briancam(action, noun, second); rtrue;} give: switch (noun) { lego_cat: move lego_cat to Blazej; move lego_lion to player; print "Blazej takes the lego cat from you and transforms it into a diorama of a lion devouring an antelope."; lego_truck: move lego_truck to Blazej; move lego_empire to player; print "Blazej takes the lego truck from you and remakes it into a pefect replica of the Empire State Building."; lego_dino: move lego_dino to Blazej; move lego_cathedral to player;print "Blazej takes the LEGO dinosaur from you and reshapes it into a life-like model of St. Paul's Cathedral."; legomanual: "~Certainly, some weak-minded individuals need such things, but True Creativity lies within.~ Blazej spits defiantly on the LEGO manual. Ick."; } briancam(action, noun, second); rtrue; ], each_turn [; switch (random(5)) { 1: "^It's clear Blazej is twice as smart as you."; 2: "^Blazej writes the entirety of the Lord's Prayer on a single ~one bump~ LEGO and tucks it in his pocket."; 3: "^Blazej fashions a Rolex out of LEGOS. ~Keeps perfect time~ he beams."; } ], has animate proper, ; object Avery "Avery" Office_BlazejAvery with name 'avery' 'avery', description " Smarter than you.", life [; ask: switch (second) { 'Brian': whisper(brian); print "~He's okay.~"; 'Rod': whisper(rod); print "~British. Whatever.~"; 'matt': print "~So far, he hasn't caused me great pain... so far.~"; 'morgan': print "~He doesn't scare me. I could take him.~"; default: print "Avery stares at you in a way that makes it clear that you should stop talking now... although maybe he just doesn't have anything to say about that."; } briancam(action, noun, second); rtrue; show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) {whisper(Blazej);print "~Blazej would love those.~";briancam(action, noun, second); rtrue;} ], each_turn [; switch (random(5)) { 1: "^It's clear Avery is twice as smart as you."; 2: "^Avery scribbles formulas on a pad next to him. The only certainty is that you don't understand them."; 3: "^Avery says ~Is it dark in here or is it just me?~"; 4: "^Avery notes that the lighting is unprofessionally dim."; } ], has animate proper, ; object Snorri "Snorri" Office_Snorri with name 'snorri' 'snorry', description "Oddly Icelandic.", life [; ask: switch (second) { 'Brian': whisper(brian); print "~He's okay.~"; 'Rod': whisper(rod); print "~British. Whatever.~"; 'matt': print "~So far, he hasn't caused me great pain... so far.~"; 'morgan': print "~He doesn't scare me. I know his secret.~"; 'iceland', 'icelandic': print "Snorri begins sobbing loudly."; default: print "Snorri stares at you in a way that makes it clear that you should stop talking now... although maybe he just doesn't have anything to say about that."; } briancam(action, noun, second); rtrue; show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) {whisper(Blazej);print "~Blazej would love those.~";briancam(action, noun, second); rtrue;} give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], each_turn [; switch (random(5)) { 1: "^It's clear Snorri is twice as smart as you."; 2: "^Snorri says something in Icelandic that you can't understand. It's safe to assume that it wasn't a compliment though."; 3: "^Snorri does something oddly Icelandic. (shudder)..."; } ], has animate proper, ; object Jules "Jules" Office_Jules with name 'jules', description "Tall Californian-looking guy. He's wearing a Lucasfilm t-shirt.", life [; ask: switch (second) { 'Brian': whisper(brian); print "~He's seen me naked. That's okay, right?.~"; 'Rod': whisper(rod); print "~British. Whatever.~"; 'matt': print "~I swear I killed him in 'Nam.~"; 'morgan': hate(self);whisper(morgan);print "~We talk. We bond. Don't get me wrong though... I wouldn't pick him up at the airport.~"; default: print "Jules mumbles something about ~motion pictures~, but maybe he just doesn't really have anything to say about that."; } briancam(action, noun, second); rtrue; give, show: if ((noun == lego_cat) || (noun == lego_truck) || (noun == lego_dino)) "~I bet Blazej would love that.~"; ], each_turn [; switch (random(9)) { 1: "^Jules says ~When I was at Lucas...~but then you stop listening and don't hear the rest."; 2: "^Jules draws a picture of a hot chick."; 3: "^Jules says ~You know... Mac users have higher IQs than PC users.~"; 4: "^Jules doodles ~Macs love Jules~ on his notebook."; 5: "^The disembodied voice of Mary Beth says ~Hey Jules?~ from somewhere you can't quite pinpoint."; 6: "^The disembodied voice of Mary Beth says ~Hey Jules, can you come look at this?~ from somewhere you can't quite pinpoint."; } ], has animate proper, ; object Bruce "Bruce" Office_Bruce with name 'bruce' 'wilkie', description "An obviously 30 year old man with a supernatural intelligence and an unnatural affinity for cats (as evidenced by the needle-point kitten sweater with real whiskers that he's wearing). You simultaneously feel intellectually unworthy and that you should back away slowly.", life [; ask: switch (second) { 'Brian': Hate(self);whisper(brian); print "~Cat hater.~"; 'Rod': whisper(rod); print "~I pretend to like him in the hope that one day I will be able to parlay our friendship into some phat EQ loot.~"; 'matt': Hate(self);whisper(mattb); print "~I'm not the sort of person who swears, but if I was...~"; 'snorri': print "~There's no way to be sure, but I'm convinced that he watches me with that damn camera all day."; 'simcity', 'sim city','sim','city': print "~Sims 3 is really huge.~"; 'cat', 'cats', 'kittens': print "~Man's best friend. If only people were so loyal.~"; default: print "Bruce stares through you. You feel like you should apologize for being so stupid as to ask about that."; } briancam(action, noun, second); rtrue; give: if (noun == lego_cat) {move lego_cat to bruce; print "Bruce excitedly snatches the lego cat from your hand and hides it in his jacket."; briancam(action, noun, second); rtrue;} if (noun == lego_lion) {move lego_lion to bruce; print "Bruce excitedly snatches the lego diorama from your hand and hides it in his jacket. Huh... big jacket."; briancam(action, noun, second); rtrue;} show: if (noun == lego_cat) {print "~That's a nice kitty. If you gave it to me, I'd finish coding Sims 3 this weekend.~"; briancam(action, noun, second); rtrue;} ], each_turn [; switch (random(10)) { 1: "^Bruce meows like a siamese kitten."; 2: "^Bruce purrs like a short-hair kitten."; 3: "^Bruce meows like a long-hair kitten."; 4: "^Bruce purrs like a tabby cat."; 5,6, 7,8: if (parent(lego_cat) == player) "^Bruce eyes your LEGO cat jealously."; } ], has animate proper, ; Object Foam_Block "toy foam block" Sitting_Area has scenery, with name 'toy' 'block' 'foam', description "There are dozens of colored foam toy blocks everywhere." ; object IKEA_Table "glass and aluminum IKEA table" Sitting_Area has scenery has supporter with name 'glass' 'table' 'ikea' 'aluminum' 'coffee', description "In typical IKEA fasion, the table looks more sturdy than it really is. The frame is stylish brushed aluminum, and the surface is frosted glass. The top of the table is smooth and shiny though."; object Legos "scattered collection of multi-colored LEGOs" IKEA_Table has scenery with name 'colored' 'multi-colored' 'legos' 'lego' 'scattered' 'collection' 'pile', description "A collection of multi-colored LEGO blocks of various sizes. You could probably make a lot of interesting things out of them.", before [w1; take: "They're all scattered about, so you really can't do that. You might be able to make something though. Maybe you read the manual."; make: !print consult_words,"-", consult_from; wn = consult_from; w1 = NextWord(); if (consult_words == 2) w1 = NextWord(); if (second ~= 0) w1 = second; switch (w1) { 'cat': if (parent(lego_cat) == player) "You've already got one. Perhaps a little creativity is in order."; move lego_cat to player; print "You make a roughly cat-shaped object out of the legos."; 'truck': if (parent(lego_truck) == player) "You've already got one. Perhaps a little creativity is in order."; move lego_truck to player; print "You make a roughly truck-shaped object out of the legos."; 'dinosaur', 'dino': if (parent(lego_dino) == player) "You've already got one. Perhaps a little creativity is in order."; move lego_dino to player; print "You make a roughly dinosaur-shaped object out of the legos. It might be an ankylosaurus."; default: "You make a daring attempt to create something that's not detailed in the LEGO manual, but sadly... you fail miserably. Perhaps you're not as creative as you think you are."; } briancam(action, noun, second);rtrue; ], ; attribute legible; object Lego_Lion "LEGO Lion" with name 'lion' 'diorama' 'lego', description "It's a diorama of a lion eating an antelope. Presumably having stalked and killed it. It's pretty gory for a LEGO sculpture.", ; object Lego_Empire "LEGO Empire State Building" with name 'empire' 'state' 'building' 'lego', description "It's a LEGO-ized version of the Empire State Building. Admittedly, the actual structure is pretty square itself, but it's still a remarkable achievement.", ; object Lego_Cathedral "LEGO Saint Paul's Cathedral" with name 'saint' 'st' 'paul^s' 'cathedral' 'lego', description "A frightfully detailed rendition of Saint Paul's Cathedral made entirely of LEGOs. It feels vaguely sacreligious, but it IS pretty damn cool.", ; object Lego_Cat "LEGO cat" with name 'cat' 'lego' 'kitty', description "It's a cat made out of legos. Although in all honesty, any cat that looked like this would have been drowned at birth.", before [; make: <>; ], ; object Lego_Truck "LEGO truck" with name 'truck' 'lego', description "It's a truck made out of legos. Apparently the LEGO people aren't ware of the impracticality of square tires.", before [; make: <>; ], ; object Lego_Dino "LEGO dinosaur" with name 'dinosaur' 'lego' 'ankylosaurus', description "It's a dinosaur made out of legos. Not exactly as accurate as fossil record, but then someone didn't spring for the ~LEGO Archeological Dig~ play set.", before [; make: <>; ], ; object LegoManual "LEGO manual" IKEA_Table with name 'manual' 'lego', description "A book full of vaguely square things you can make out of legos. You should probably read this if you want to make anything recognizable.", before [; Read: print "To make something with legos, type ~MAKE X WITH LEGOS~ (where X is the thing you want to make). There are ~blueprints~ for a cat, a truck, and a dinosaur."; ], has legible ; [ ReadSub;]; Extend 'read' first * legible -> Read; [ MakeSub; "That doesn't make any sense here.";]; verb 'make' * topic 'with' noun -> Make reverse * topic 'from' noun -> Make reverse * noun topic -> Make * topic 'out' 'of' noun -> Make reverse; [ CharacterSub w1 w2; wn = consult_from; w1 = NextWord(); switch (w1) { 'brian': "Brian - Says odd, often non-sequitur things. Has a camcorder and records everything. Wanders. Canadian.^ Topics: Rod, Matt, Morgan, Canada, LEGOs, camera"; 'rod': "Rod - British. Wanders. Calls anyone a ~hater~ if they say anything negative. Obsessed with ~10 kilometers~.^ Topics: Brian, Matt, Everquest, sword"; 'matt', 'mattg', 'mattb': print "MattB - Does odd things. Quotes movies (particularly ~Ghost Busters~). Hates M NIght Shamalan movies. Eats candy. Talks a lot.^"; "MattG - Knows about old movies (e.g. ~Charade~, ~Sabrina~, etc.). Knows Sports."; 'ray': "Ray - Eats a lot of fruit. He's connected to the mafia.^ Topics: Brian, Rod, Matt, Morgan, mafia, fruit, list, SimCity^"; 'morgan': "Morgan - Huge. Threatening. Has a temper (don't hit him :-)). Loves the UrbZ. Has a shiny head. Draws pictures of schoolgirls.^ Topics: Urbz, Matt, Rod, Brian, Jules, head, LEGOs, SimCity"; 'bruce': "Bruce - Loves cats (and acts like them). Smarter than God.^ Topics: cats, Brian, Rod, Matt, Snorri, SimCity"; 'snorri', 'snorry': "Snorri - Icelandic. Smarter than God."; 'avery': "Avery - Smarter than God. Likes bright light :-)."; 'Blazej', 'blaze': "Blazej - Smarter than God. LEGO maestro."; 'jules': "Jules - Talks about how cool making movies is. Loves Macs."; 'mary': "Mary Beth - Never actually seen (her desk is so hard to find :-)). Only heard from Morgan and Jules' cubes."; default: "That^s not a character in this game."; } ]; verb meta 'character' * topic -> Character; [HelpSub; print "Suggestions for your enjoyment...^"; print " - There is no point. The only motivation is to explore the space, the objects, and the inhabitants.^"; print " - Examine everything. You can type ~X~ as a shortcut for ~examine~ (e.g. ~x brian~ to examine Brian)^"; print " - You can give and show objects to people (e.g. ~give cat to bruce~)^"; print " - You can ask people about things (e.g. ~ask Brian about Rod~ or ~ask Morgan about Urbz~)^"; print " - Try doing things when Brian or Rod are in the room with you.^"; print " - You can wait a turn without moving by typing ~wait~ or ~Z~ for short. Sometimes that will cause people to do things.^"; print " - Type ~CHARACTER X~ (where X is the name of a person) to see a description of that person's intended character/behavior in the game."; ]; verb meta 'help' * -> Help;