! ---------------------------------------------------------------------------- ! UMD Tribulations: The Struggles of Class Registration - A Students Story ! ! An interactive puzzle game involving a student and his plight to ! register for a class at the University of Michigan-Dearborn ! ! ! Jason Presnell ! Assignment #2 - Inform Game Development ! Tuesday, June 6th, 2000 ! CIS 587 Game Design ! Dr. Bruce Maxim ! ---------------------------------------------------------------------------- ! ! Written for Inform 6 and library 6/1 ! v0.1 - Initial coding and design. Game layout and objects defined. Game ! puzzles and design document. ! v0.2 - Initial overview of help system. ! v0.3 - Initial object creation of start location and development of ELB. ! v0.5 - Significant release. Included some interaction with the players ! v1.0 - Final release. Included all "check-off" items ! v1.1 - Formatting of code to make more presentable. ! ! ---------------------------------------------------------------------------- ! Serial "000602"; Release 6; !- Require the right version Constant Story "Tribulations"; Constant Headline "^UMD Tribulations^ The Struggles of Class Registration - A Students Story^ Developed by Jason Presnell for CIS 587 Game design assignment^"; ! ----- Setable constants Constant DEBUG; Constant SACK_OBJECT = Backpack; ! ----- Global definitions Global mom_paid; Global cashiers_paid; Global library_paid; Global registered; Global slip_received; ! ----- Pull in the appropriate libraries Include "parser"; Include "verblib"; Include "grammar"; ! ----- Pre-initialize items, and move appropriate items to backpack [ Initialise; location = Starting_Location; move money to player; move backpack to player; move Slip to backpack; move Cell_Phone to backpack; move Check_Book to backpack; print "^^Time to register...^^^"; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! Object Def: Rooms !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ------ ROOM: Starting Location outside ELB ---------------------------------- Object Starting_Location "Outside the main entrance to ELB" has light, with name "outside", description "It's a nice day out. The tree in the foyer is blowing slightly in the wind. The birds are chirping, and the flowers are blooming. There are two students standing in the doorway to the ELB smoking and talking.", e_to ELB_Lobby, w_to SB, s_to Mardigian_Library; ! ----- ! ----- ROOM: ELB Lobby -------------------------------------------------------- Object ELB_Lobby "Entranceway to ELB Lobby" has light, with name "lobby", description "You're standing in the lobby. There are two hallways, one leading East to the DCE (it's blocked off!) and one heading North to the CIS office. There is a plaque on the wall, and a few pop machines.", w_to Starting_Location, n_to ELB_N_Hallway_1; !----- ! ----- ROOM: CIS Office ------------------------------------------------------- Object CIS_Office "CIS Office" has light, with name "cis" "office", !--- Shameless plug for my fiance :) ---! description "You walked into the CIS office.^ There is a beautiful secretary named Andrea sitting at the counter. There is a copy machine to your left, and a catalog in front of you.", e_to ELB_N_Hallway_1, s_to ELB_LOBBY; Object -> "Andrea" with name "andrea" "andi" "secretary", description "A lovey woman that just glows knowledge and happiness", initial "Andrea is typing away at her desk", life [; Talk: "Make sure to have your advisor sign your slip. Also, be sure to clear any holds you may have. Your advisor is DR. MAXIM"; Kiss: "That, my friend, is reserved for my fiance!!!"; !Kill: ! "Being a master a KungFu, Andrea proceeds to kick you puny little butt. Next thing you know, you see her fiancee walk in. Looks like your dead meat. ~OOPS YOU ARE!!!~"; ! remove self; ], has animate; ! ----- ! ----- ROOM: ELB North Hallway #1 --------------------------------------------- Object ELB_N_Hallway_1 "ELB North Hallway #1" has light, with name "elb north hallway", description "In this hallway, you see rows and rows of pictures along the wall. You can see offices further down the hallway. The offices might be down there", n_to ELB_N_Hallway_2, s_to ELB_Lobby, w_to CIS_Office; ! ----- ! ----- ROOM: ELB North Hallway #2 --------------------------------------------- Object ELB_N_Hallway_2 "ELB North Hallway #2" has light, with name "elb far north hallway ", description "A bunch of doors are doors are here. They all have labels of professor names on them. One of them must be the advisor I'm looking for!!!", s_to ELB_N_Hallway_1, w_to Yoon_Office; ! ----- ! ----- ROOM: Dr. Yoons Office ------------------------------------------------- Object Yoon_Office "Dr. Yoon's office" has light, with name "yoon office" "yoon" "dr. yoon", description "Dr. Yoon is helping other students. He can't see you right now anyway!", s_to ELB_N_Hallway_2, n_to Maxim_Office; ! ----- ! ----- ROOM: Dr. Maxim's Office ----------------------------------------------- Object Maxim_Office "Dr. Maxim's office" has light, with name "maxim office" "maxim" "Dr. maxim", description "Dr. Maxim's office. He has books from one wall to the other.^", s_to Yoon_Office, n_to Elenbogen_Office; Object -> "Dr. Maxim" with name "maxim" "bruce maxim" "dr. maxim", description "It's the one and only, Dr. Maxim.", initial "Dr. Maxim is busy looking over some grades from his previous class, he doesn't seem to happy with the results he's getting", life [; Give: if (noun==slip) { remove slip; move slip_filled to player; slip_received=1; print "You should really be taking CIS587 with me, but that's OK, I'm not offended^"; print "Be sure to take care of any holds you may have.^"; print "Dr. Maxim hands you a signed registration slip. You stick it back in your bag"; } ], has animate; ! ----- ! ----- ROOM: Dr. Elenbogen's Office ------------------------------------------- Object Elenbogen_Office "Dr. Elenbogen's office" has light, with name "elenbogen office" "elenbogen" "Dr. Elenbogen", description "Doesn't look like Dr. E is in. You better get out of his office.", s_to Maxim_Office; ! ----- ! ----- ROOM: Mardigian Library ----------------------------------------------- Object Mardigian_Library "Midigian Library" has light, with name "library" "mardigian" "mardigian library", description "A large square building. I hear they have books in here", initial "Your in the front doors of the lobby. You're standing at the desk of the librarian. I suppose you have to pay here right?", s_to UMall, n_to Starting_Location; Object -> "Librarian" with name "librarian", description "An elderly woman, with wire rimmed glasses and a chain from ear to ear is standing at the counter", life [; Give: if (noun==money) { remove money; library_paid=1; print "Thanks for the ransom... errr.. I mean money! Heh Heh^"; } ], has animate; ! ----- ! ----- ROOM: UMall ------------------------------------------------------------ Object UMall "University Mall" has light, with name "umall" "hangout" "mall", description "Curiously, the doors to the mall are closed.^ What I wouldn't give for some Cottage Inn Pizza!^", w_to SB, n_to Mardigian_Library; ! ----- ! ----- ROOM: SB --------------------------------------------------------------- Object SB "Science Building" has light, with name "sb" "Science Building", description "A grand hallway greets you, with marble floors.^ A hint of chemical from the freshly waxed floor ^ permeates the air.^", n_to Starting_Location, e_to UMall, w_to SSC; ! ----- ! ----- ROOM: SSC -------------------------------------------------------------- Object SSC "Student Services Center" has light, with name "ssc" "Student_Services" "student_ services_center", description "A small, two story building. The mecca of money!^ To the south you see the cashiers office, and to the south east is stairs to the registrars office.^", e_to SB, se_to SSC_Registrars, s_to SSC_Cashiers, n_to CSS; ! ----- ! ----- ROOM: SSC_Cashiers ----------------------------------------------------- Object SSC_Cashiers "Cashiers Office" has light, with name "cashiers", description "A large plexiglass windowed room. There are ^ workers behind the glass.", n_to SSC; Object -> Cashier "Cashier" with name "cashier", description "Lady behind the glass", life [; Give: if (noun==check) { if (mom_paid==1) { print "Thanks, we will process that immediately^"; print "You hand a check to the cashier^"; cashiers_paid=1; remove check; } else { print "Are you sure you have enough."; } } ], has animate; ! ----- ! ----- ROOM: SSC_Registrars --------------------------------------------------- Object SSC_Registrars "Registration Office" has light, with name "registrars" "registration", description "A room with two doors is ahead of you. Man, what a line out that door, but your next.^ Next! calls out the clerk from the desk. You move to her^", nw_to SSC; Object -> "Clerk" with name "registration_person" "clerk" "lady" "registration_lady", description "A quiet woman sitting behind a terminal.^She greets you warmly, and the clerk asks for your signed slip^", life [; Give: if (cashiers_paid==1 && slip_received==1 && library_paid==1) { if (noun==slip_filled) { remove slip_filled; registered=1; "After a few moments, the clerk does her magic, and a class list is printed.^Next, you have to go to get your photoID taken.^"; } } else { print "You aren't finished getting your things in order. Better think about what you need to do!^"; } ], has animate; ! ----- ! ----- ROOM: CSS -------------------------------------------------------------- Object CSS "Campus Support Services" has light, with name "css" "Campus_Safety" "Campus_support_services", description "There is a small room that has a sign on it Get PhotoIDs here.^A guy tells you to sit down and face forward^ You hear a click, and he quickly shuffles along. There's a machine ^that is supposed to spit out the photoID", s_to SSC, e_to Starting_Location; Object -> photoid "Student ID Card" with name "studentid" "photoid", description "My, what a handsome picture on that card", life [; Take: if (registered==1) { print "CONGRATULATIONS!!!!!!!!!!!^"; print "You've finally registered. Time to go^"; print "and educate yourself!!! Have fun"; ! print "You now drop dead from exhaustion"; remove player; } ], has animate; ! ----- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! Object Def: Helper Items !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object slip "Registration Slip" Starting_Location with name "registration_slip" "class_list" "election_form" "slip", description "A Blank Election form for undergraduate admissions"; Object slip_filled "Registration Slip Signed" with name "signed" "signed_slip", description "Your Election formed, all signed and ready to go"; Object cell_phone "Cellular Phone" Starting_Location with name "cellphone" "phone" "cellularphone", description "Your Nokia phone with it's purple customized face. You are so vain. Battery looks a bit low", when_on "You flip on the cell phone, it begins playing a tune", has static switchable; Object check_book "CheckBook" Starting_Location with name "checkbook", description "A tattered checkook with a full set of checks, and many missing entries. Shesh, keep it up to date"; Object check "Check" with name "check", description "Gonna be spending some more dough. A check made out for the amount owed for tuition. Man, the price just keeps going up"; Object money "5 Dollar bill" with name "money" "fivski" "dollar", description "A crumpled up 5 dollar bill"; Object Backpack "Backpack" Starting_Location has container open openable, with name "backpack" "pack" "Backpack", description "Your trusty backpack you have had since freshman year", when_open "Better zip up that pack, you wil loose all yer stuff", when_closed "All safe and sound, nobody is getting into this one"; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! Verbs and Grammar !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Verb "talk" * -> Talk; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! Subroutines !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ TalkSub; if (cell_phone hasnt on) { print "You have to turn the phone on first!^"; } else { if (location==ssc_cashiers) { print "^Calling mom up, beg her for some more money^"; print "Phew, after a 5 minute grip session, mom gives you money.^"; print "Now you have enough money to pay the tuition.^"; move check to player; mom_paid=1; } else { print "Who the heck are you calling? You don't have any friends!"; } } ];