! Carl Saenz ! CIS 487 ! Inform Project ! The Quest for the Sword of 1000 Truths Constant Story "The Quest for the Sword of 1000 Truths"; Constant Headline "^Carl Saenz^CIS 487^Dr. Maxim^"; Include "Parser"; Include "VerbLib"; Include "Grammar"; ! ----------Global Vars----------------! Global Lobby_Open = 0; Global Glasses_On = 0; Global Have_Sword = 0; Global Backup_Del = 0; ! ----------Verbs ---------------------! Verb "Delete" "delete" "del" * noun -> delete; [ deleteSub; print "^what do you want to delete?";]; Verb "Backup" "backup" "bkup" * noun -> backup; [ backupSub; print "^what do you want to backup?";]; Verb "Import" "import" "imprt" * noun -> import; [ ImportSub; print "^what do you want to restore?";]; ! ----------Begin the Map--------------! Object Lobby "~Blizzard HQ~" with description "You are now inside the Blizzard HQ lobby where technicians and developers are coming and going. Given the high volume of workers, you should be able to blend in as one of them with an additional disguise, but you require a distraction to get past the lobby receptionist.^", n_to [; if(Lobby_Open == 1) return Stairs_0; else print "The receptionist looks at you rather suspiciously and informs you that^"; ], has light static; Object Stairs_0 "Staircase" with name "stairs" "staircase", description "The elevator is too much of a risk so you'll have to take the stairs up.", s_to Lobby, u_to Stairs_1, has light static locked; Object Stairs_1 "Staircase" with name "stairs1" "staircase", description "Alright, you've climbed one set of stairs. You can either enter floor 1 or go up to floor 2.", n_to First_Floor, d_to Stairs_0, u_to Stairs_2, has light static; Object First_Floor "Floor 1 of Blizzard HQ" with name "first floor" "floor 1", description "This is the first floor. Ahead, you see a room with a sign that reads 'Closet.' To the east is a sign saying 'Characters M through Z.' To the west is a sign saying 'Characters A through L.'", n_to Closet, e_to Char_MtoZ, s_to Stairs_1, w_to Char_AtoL, has light static; Object Closet "Closet" with name "Closet", description "Loser! What makes you think you'll find the Sword of 1000 Truths in here? It has to be a file on a server or something like that. Not a freakin' mop!", has light static; Object Char_MtoZ "Characters M through Z" with name "characters m through z" "m to z" "m through z", description "This is where your nemesis, Nathrelenbogen, resides. You may be able to locate and delete him from here", w_to First_Floor, has light static; Object Char_AtoL "Characters A through L" with name "characters m through z" "m to z" "m through z", description "This is where your character, Kelthmaxim, resides. You may be able to locate and endow him with the mighty Sword of 1000 Truths from here :-D.", e_to First_Floor, has light static; Object Stairs_2 "Staircase" with name "stairs2" "staircase", description "You are on the second floor of the surprisingly small Blizzard HQ. You see a door in front of you that says 'Backups.'", n_to Backups, d_to Stairs_1, has light static; Object Backups "Backups" with name "backups", description "You are in a beautiful room filled with a several servers labeled server3, server4, and server5.", s_to Stairs_2, has light static; ! ------------------------------ End the Map ----------------------------------! ! Confused?? Look here at the map ! Floor 0 Floor 1 Floor 2 ! ! ! Staircase Closet Backups ! ^ ^ ^ ! | | | ! Lobby Char_AtoL <- First_Floor - > Char_MtoZ Staircase ! ^ ! | ! Staircase ! ---------------------------- Objects in the Lobby ---------------------------! Object BluePen "Pen with blue ink" Lobby, with name 'pen' 'bluepen', initial "A small, blue pen is on the lobby desk in front of the receptionist", description "It's an old, beat up pen. The ink may burst on it soon...", after [; Take: "You pick up the pen and hope it bursts after you find some use for it."; Drop: Lobby_Open = 1; "The pen drops to the ground spilling ink all over the carpet! The receptionist and his obsessive compulsiveness causes him to run away in agony trying to find something to clean it up. You only have a small window here.^"; ]; Object Receptionist "The lobby receptionist" Lobby, with name 'receptionist' 'desk person', description "He wears glasses like almost every Blizzard employee. His shirt is surprisingly clean and he is very well groomed. He constantly wipes his hands and seems a little too obsessed with being clean."; Object GreyUSBdrive "grey usb drive" Lobby with name 'greyobject' "grey object" 'greydrive' "grey usb drive" 'drive1', initial "A small, grey object is on the carpet of the lobby", description "You see it's actually a USB Drive which must have been dropped by an employee.", after [; Take: "You pick up the USB Drive because there's always some use for those."; Drop: "You put the drive down. I hope you don't need that later"; ], has light container; ! ---------------------------- Objects in the stair case ----------------------- ! Object Glasses "Glasses you wear on your face" Stairs_0 with name 'glasses', initial "There are a pair of glasses on the ground", description "Put them on. They'll make you look smarter", after [; Take: Glasses_On = 1; "You pick up the glasses and put them on. This should help you blend in with the other coworkers. The same way Superman can blend in as Clark Kent."; ], has clothing; ! ---------------------------- Objects in the first floor ---------------------- ! Object Programmer "Blizzard Programmer" First_Floor with name 'programmer' 'employee', initial [; if(Glasses_On == 0) { deadflag = true; print "A blizzard programmer sees you. He recognizes that you're not an employee here. You've been kicked out of the building, and your character has been banned FOREVER!"; } else print "A Blizzard Programmer walks by and greets you warmly."; ], has static; ! ---------------------------- Objects in the Char_AtoL room ------------------- ! Object Server1 "The server containing all characters named A through L" Char_AtoL with name 'server' 'server1', initial "You are in front of a server that is still on.", description "It says, 'Kelthumaxim' on the screen.", before [; import: if (Have_Sword == 1) { print "You have successfully added the Sword of 1000 Truths to your server. Now go home and play WoW because this game sucks."; deadflag = 2; } else print "You do not have the Sword yet!"; ], has static; ! ---------------------------- Objects in the Char_MtoZ room ------------------- ! Object Programmer2 "Blizzard Programmer" Char_MtoZ with name 'programmer' 'employee', initial [; if(Glasses_On == 0) { deadflag = true; print "A blizzard programmer sees you. He recognizes that you're not an employee here. You've been kicked out of the building, and your character has been banned FOREVER!"; } else print "A Blizzard Programmer walks by and greets you warmly."; ], has static; Object Server2 "The server containing all characters named M through Z" Char_MtoZ with name 'server' 'server2', initial "You are in front of a server that is still on.", description "It says, 'Nathrelenbogen' on the screen. (HINT: Deleting the whole server will format it!)", before [; delete: "You have deleted the Nathrelenbogen file along with every other character on this server because Blizzard would never back up their data"; ], has static light container; !----------------------------- Objects on Second Floor ------------------------ ! Object Server3 "The server containing all items" Backups with name 'items' 'server3', description "It says, 'Server3: This is the backup of all items (some are not being used in the actual world).' on the screen.", before [; delete: "You have deleted the Sword of 100 Truths! Now you can never use it!", deadflag = true; backup: if(GreyUSBdrive in player) { Have_Sword = 1; print "You have successfully backed up all items (including the Sword of 1000 Truths) onto your USB Drive. Those drives store a huge amount of data!"; } else print "You don't have anything to back it up with"; ], has static light; Object Server4 "The server containing all characters named M through Z" Backups with name 'char_mtoZ' 'server4', description "It says, 'Server4: This is the backup of all characters m through z' on the screen. (HINT: Deleting the whole server will format it!)", before [; delete: "You have deleted the Nathrelenbogen file along with every other character on this server because Blizzard would never back up their data off site"; ], has static light; Object Server5 "The server containing all characters named A through L" Backups with name 'char_atol' 'server5', description "It says, 'Server 4: This is the backup of all characters a through l' on the screen. (HINT: Deleting the whole server will format it!)", before [; delete: Backup_Del = 1; "You have deleted your own backup file along with every other character on this server because Blizzard would never back up their data off site. This is a good thing because only the main file will be what Blizzard can use now"; ], has static light; [ Initialise; location = Lobby; "^^^After reading various forums and web articles concerning World of Warcraft, you found there is a secret item: The Sword of 1000 Truths. It was designed by the GM's who should use it only to restore an imbalance in the world. It is stored on a secret USB Drive hidden deep within the Blizzard Server Farms. You find yourself having no life, a lust for power, and a huge ambition to risk losing your WoW account. You have used your savings to fly to California and go to the largest of Blizzard's Server Farms where the sword must be. It is a Monday evening when most servers are down for maintenance (which is why you're not playing now). Your objective: infiltrate the server farm and give your character, Kelthumaxim, the Sword of 100 Truths."; ];