! ------------------------------------------------------------------------------ ! The Projector Hunt ! ! ! Matthew Ferrante ! ! ! 10/17/05 ! ! ------------------------------------------------------------------------------ Constant Story "The Projector of Maxim^An Epic Quest^"; Constant Headline "Fall 05^Matthew Ferrante^"; Include "Parser"; Include "VerbLib"; global wearing; !------------------------------------------------------------------------------- ! Initialise ! !------------------------------------------------------------------------------- [ Initialise; location = RoomA; score = 0; wearing = 0; print "You are anxiously awaiting Proffessor Maxims informative lecture when you realize that the projector is missing!^How will you ever learn without it?!^You must find one quickly^^"; ]; ! ---------------------------------------------------------------------------- ! Locations and Objects ! !Basically everything. ! ! ---------------------------------------------------------------------------- !The First room, bring the projector back here and talk to students to win !------------------------------------------------------------------------- Object RoomA "CIS Classroom" with description "You are in 212 SB^Students are in a panic w/o a projector.^ You hear them cry ~How will we ever learn now?!?!~^ It wouldn't do any good to talk to them now.^ Talk to them when u have the projector.^ The door is shut.", out_to Door_Sam, has light; Object -> Final "Students" with name "student" "people" "students", description "Your fellow students, tell them when you find the projector.", before[; talk: if(ProjCart in player){ print "HOOORAY! Now class can start"; deadflag = 2;; rtrue;} else{ print "Where is our projector!?!?!?!?!";rtrue;}], has static; Object -> Door_Sam "Door to the Hallway" with name "door", description "It appears to be unlocked", when_open "The door is open", when_closed "The door is closed", door_to HallA, door_dir out_to, has static door openable; !The First hallway, initial room to the south !------------------------------------------------------------------------- Object HallA "Hallway 1" with description "It's a hallway in the SB^It looks pretty old.^The hallway continues to the north^There are rooms east, west, and south.^", s_to RoomA, n_to HallB, w_to RoomB, e_to RoomC, has light; !Room with a student who will give vague advice !------------------------------------------------------------------------- Object RoomB "Room 213 SB" with description "There's nothing in the room except a lone student talking on a phone.^ Maybe you can ask him about the projector.^", e_to HallA, out_to HallA, has light; Object -> StudentA "Distracted Student" with name "distracted" "student" "man" "woman" "kid" "guy" "person", description "He's sitting alone talking on his cell phone. ^ He might know something about the projector.^", article "a", before [; Talk: print "Check the AV Office on the first floor^ Just go north.";rtrue;], has static; Object -> desk "Random desk" with name "desk" "random", description "There's alot of desks. They all look the same", after [; climb: "Your on the desk. ^ Congrats on being taller.^"; getoff: "You're not on the desk";], has static enterable; !The Key is this room unlocks closet, soap does nothing !------------------------------------------------------------------------- Object RoomC "Room 214 SB" with description "Another classroom.^ Doesn't look like it's been used recently.^ Amoung the desks you see some janitorial equipment", w_to HallA, out_to HallA, has light; Object -> DeskB "Random desk" with name "desk" "random", description "There's alot of desks, they all look the same", after [; climb: print"Your on the desk. ^ Congrats on being taller.^"; getoff: print"You're not on the desk";], has static enterable; Object -> KeyA "Blue Key" with name "blue" "key", description "A Blue key, looks small and well blue", article "the"; Object -> Soap "Soap" with name "soap", description "looks like some soap used to clean the desks and board."; !The hallway north of first one !------------------------------------------------------------------------- Object HallB "Hallway 2" with description "You are further away from Room 212 now.^The hallway continues further to the north.^There is a locked door to the east and a classroom to the west.^", s_to HallA, n_to HallC, e_to RoomD, in_to ClosetA, has light; Object -> Blue_Door "Strange Blue Door" with name "blue" "door", description "It's a big blue door.^Doesnt look like a classroom.", when_open "The door is open.", when_closed "The door is closed.", door_to ClosetA, door_dir in_to, with_key KeyA, has static door openable lockable locked; !The Dark Closet, must have flashlight in order to see !------------------------------------------------------------------------- Object ClosetA "A Small closet." with description "Its a small maintence closet", out_to HallB, w_to HallB, ; Object -> Broom "Broom" with name "broom", description "A small broom, good for picking up sharp things. ^", after[; take: give glass ~static; rtrue;]; Object -> Wheel "Small Wheel" with name "small" "wheel", description "A spare wheel, good for wheeling things. ^"; !The package in this room is opened to find maid outfit !------------------------------------------------------------------------- Object RoomD "SB 215" with description "Standard classroom.^Looks like a class just went on.^ Some students must have left some stuff behind.", e_to HallB, out_to HallB, has light; Object -> package "Small Package" with name "small" "package", description "A small light package^ There's something inside^", before[; open: move uniform to player; print "Found a Maid uniform?!."; remove package; rtrue;], article "a", has openable; !Random objects that are directly put in inventory !------------------------------------------------------------------------- Object money "Money" with name "Money", description "Some crisp dollars."; Object Uniform "French Maid Uniform" with name "french" "maid" "uniform", description "A pretty french maid unifrom.^Seems to be your size^ I wonder why a student had this anyways.^", after[; puton, wear: wearing = 1; print "You now look like a french maid."; rtrue;], has clothing; Object Cart "Cart" with name "cart", description "A Projector cart."; Object candy "Candy" with name "candy", description "A Yummy Piece of candy", has edible; !The 3rd Hallway on floor 2, elevator must be opened and wil take to 1F !------------------------------------------------------------------------- Object HallC "Hallway 3" with description "How long is this hallway?!^Rooms East & West^Closed Elevator going down.^", e_to RoomE, w_to RoomF, s_to HallB, in_to Elevator, has light; Object -> Elevator "Elevator" with name "elevator" "ele", description "Elevator going down", door_to HallD, door_dir in_to, has static door openable; !Empty cart in this room, player must have wheel to push the cart !------------------------------------------------------------------------- Object RoomE "216 SB" with description "This building has alot of classrooms.^There's a empty cart here.^ It looks like it could hold a projector...", w_to HallC, out_to HallC, has light; Object -> BCart "Broken Cart" with name "cart" "broken", description "A Projector cart, the wheel seems to be missing.^Try Pushing it.", before[; push: if(wheel in player){ move cart to player; print "Used wheel to fix cart. You have cart. ^"; remove bcart; remove wheel; rtrue;} print "It's Wheel is broken^";rtrue;], has static; !Using the money from the wallet the player can get candy. !------------------------------------------------------------------------- Object RoomF "217 SB" with description "Appears to be some sorta of lounge area.^Nothing of much interest Besides a vending machine.", e_to HallC, out_to HallC, has light; Object -> Vmach "Vending Machine" with name "vend" "vending" "mach" "machine" "button", description "A Vending machine with lots of yummy candy.^ If you have money try pushing the buttons.", before[; push: if (money in player){ move candy to player; print "Got Yummy Candy."; remove money; rtrue;}]; !Maxims Door is blocked by broken glass, must have broom to remove. !------------------------------------------------------------------------- Object HallD "1F SB Hallway" with description "Hallway of the 1st floor of the SB.^The elevator is to the south.^ There appear to be rooms to the east and north.^There's a door too.", in_to DoorM, e_to RoomH, n_to RoomI, s_to Elevator2, has light; Object -> Elevator2 "Elevator" with name "elevator" "ele", description "Elevator going up", door_to HallC, door_dir s_to, has static door openable; Object -> Glass "Shattered Glass" with name "glass" "shattered", description "There is broken Glass blocking a door.^ You should take the glass...but you need something to do so.", before[; take: if (broom in player){ print "You swept up the glass."; remove glass; give DoorM ~concealed;rtrue;} ],has static; Object -> DoorM "Maxims Office Door" with name "maxim" "office" "door", description "This Door leads to Maxims Office", door_to RoomG, door_dir e_to, has static door openable concealed; !Maxims Office, player must be in maid uniform to obtain axe. !------------------------------------------------------------------------- Object RoomG "Maxims Office" with description "Maxims Office.^ Prof Maxim is either preparing a lesson or playing a game.^ Either way it'd be best not to talk to him.^ An axe is mounted on the wall.", w_to HallD, out_to HallD, has light; Object -> axe "+7 Head Chopping Axe" with name "head" "chop" "chopping" "axe", description "A strong axe. Seems good for head chopping.", before[; take: if (wearing == 1){ print "~Oh you must be the cleaning woman. You can have the axe.~"; give axe ~static; move axe to player; rtrue; } print "~Hey! No One touches my axe!^Well except when I get it cleaned.~";rtrue;], has static; !A seemingly empty classroom which has the wallet, which is opened to get money. !------------------------------------------------------------------------- Object RoomH "102 SB" with description "An Empty Classroom", e_to HallD, out_to HallD, has light; Object -> wallet "Wallet" with name "wallet", description "A brown leather wallet.^There's some money inside if you open it.^", before[; open: move money to player; print "Found Money."; rtrue;], article "a", has openable; !The AV office, has flashlight, AV person will open door when player has axe !------------------------------------------------------------------------- Object RoomI "101 SB" with description "AV office", s_to HallD, out_to HallD, in_to DoorAV, has light; Object -> flashlight "Flashlight" with name "flash" "light" "flashlight", description "A durable flash light, should light up darkened areas pretty well.", before[; switchon: give player light; print "You switch the flashlight on."; rfalse; switchoff: give player ~light; print "You switch the flashlight off."; rfalse; ], has switchable; Object -> person "AV Worker" with name "AV" "worker" "person", description "An evil employee of the AV office.", before[; talk: if(axe in player){ print "Oh you have a weapon, you can pass then."; give DoorAV ~concealed; rtrue;} else{ print "Oh You need a projector...^Well we have one left in the AV vault.^ I could let you go get it, but the vault in full of monsters.^ I can;t let you go without a weapon.";rtrue;}], has static; Object -> DoorAV "Door to the AV Vault" with name "AV" "door" "vault", description "This Door leads to Maxims Office", door_to RoomAV, door_dir in_to, has static door openable concealed; !If player drops axe and approaches monster then death. !Player can give monster candy to get projector with cart !------------------------------------------------------------------------- Object RoomAV "Av Vault 1" with description "The dungeon the Av dept keeps it's equipment in.^ Seeing Your +7 Head Chopping Axe, the monsters are staying away.^ The Equipment room seems to be north of here.", s_to RoomI, out_to RoomI, in_to DoorSec, n_to RoomJ, has light; Object -> monster "Evil Monster" with name "evil" "monster", description "A deformed monster. It seems afraid of your axe.^ Perhaps this is the fate of old AV workers.^ Feeling sorry for them you decide to let them be.", before[; talk: if(axe in player){ print "Gruihanjisda (You dont understand monster)"; rtrue;} else{ deadflag = 1; print "Seeing you without your axe the monsters attack and kill you";rtrue;}], life[; give: if(noun == candy){ print "The monster seems happy and shows you a hidden door"; give DoorSec ~concealed;score = 20;}], has static animate; Object -> DoorSec "A Secret Door!" with name "secret" "door", description "A special door your monster friend showed you", door_to RoomSec, door_dir in_to, has static door openable concealed; !Player must have the fixed pushcart in inv in order to get Projector. !------------------------------------------------------------------------- Object RoomJ "Equipment room" with description "Av Equipment Room, finally!", s_to RoomAV, out_to RoomAV, has light; Object -> Projector "Projector" with name "proj" "projector", description "The long lost projector! ^But it's heavy, you need a cart.", before[; take: if(cart in player){ print "You put the projector on the cart"; move ProjCart to Player; score = 10; remove projector; remove cart; rtrue;}], has static; !Player can gets higher score and doesn't need a cart. !------------------------------------------------------------------------- Object RoomSec "Secret Equipment room" with description "Secret Av Equipment Room. Hooray for monsers.", s_to RoomAV, out_to RoomAV, has light; Object -> ProjCart "Projector on Cart" with name "Projector" "proj" "cart", description "A Pushcart with a projector on it."; !---------------------------------------------------------------------- ! ---------------------------------------------------------------------------- ! Grammar ! ! added talk to talk to people ! ---------------------------------------------------------------------------- [ talkSub; ;]; Include "Grammar"; Verb "talk" * 'to' noun -> talk * noun -> talk;