! ---------------------------------------------------------------------------- ! Mystical Pyramid ! ! ! Simon the great pyramid explorer has found the Mystical Pyramid and he must ! explore it. The Mystical Pyramid is the burial place for the great pharaoh ! Tikituka. ! ---------------------------------------------------------------------------- Constant Story "MYSTICAL PYRAMID"; Constant Headline "^The Interactive Original^ By Jeremy Eden (2000)^"; Constant MAX_SCORE = 100; Global dark_warning; Global red_used; Include "Parser"; Include "VerbLib"; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! objects that are with Simon (the player) the knife and the whip !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Knife "Ten inch long knife" with description "A deadly weapon in your hands.", name "knife"; Object Whip "Leather Whip" with description "A deadly weapon in your hands.", name "whip" "leather"; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! There are no objects outside of the pyramid so ! just define the room of outside of the pyramid !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Outside_Of_Pyramid "Outside Of Pyramid" with description [; if(Slaves_Tomb has visited) "You are standing outside of the entrance to the Mystical Pyramid with all your possesions thus ending your exploration of the pyramid."; else "You are standing outside of the entrance to the Mystical Pyramid. You see a hole near the peak of the pyramid, which you assume must be a window of some kind."; ], in_to [; if(Slaves_Tomb has visited) { print "Your exploration of the Mystical Pyramid has ended."; return 1; } else return Slaves_Tomb; ], name "outside" "exit" "pyramid" has light; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Now the Slave's Tomb objects ! Some classes are defined in this area and are used ! by objects in other rooms (Block Door, Crystal Egg, ! and Tomb) ! The objects used in this room are a Casket with ! a skeleton in it. The skeleton has a miner's hat ! on. A Tomb with a mummy in it and a crystal egg ! in the mummy. A hole in the wall and the door between ! the Slave's Tomb and the Inner Chamber !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Slaves_Tomb "Slave's Tomb" with description [; if(MinerHat notin Player) "You stand inside a room that is partially lighted by the exit door."; else !player has minerhat "You stand in a very plain room with gray block walls and a low ceiling that you barely clear with the miner's hat on your head. From your great exploring experiences you believe this room was the Slave's Tomb. You also see a hole in the far wall."; ], in_to [;if (Slave_Inner_Door in Slaves_Tomb) { move Slave_Inner_Door to Inner_Chamber; return Inner_Chamber; } else return 0; ], out_to [; deadflag=2; return Outside_Of_Pyramid;], name "slave" "slave tomb", has light; Object Casket "Casket" Slaves_Tomb with description "An Eygyptian casket with a sculpture of the great pharaoh Tikituka.", name "casket", has container static openable; Object Skeleton "Skeleton" Casket with description [; print "This poor guy did not make it very far into the Mystical Pyramid"; if(MinerHat notin Player) " even with that miners hat on his skull."; else "."; ], name "skeleton" "skull" "deadman", has static supporter; Object MinerHat "Miner's Hat" Skeleton with description "This hat will provide you with protection and light.", name "hardhat" "miner" "hat", before [; Take: if(self hasnt general) { score = score +5; give self general; } move Slaves_Tomb_Tomb to Slaves_Tomb; move Hole_In_Wall to Slaves_Tomb; Drop: remove Slaves_Tomb_Tomb; remove Hole_In_Wall; ], has clothing light; Class Tomb with description "A tomb for the dead.", has container openable static; Tomb Slaves_Tomb_Tomb "Slave Burial Tomb" with name "slavetomb" "tomb", describe[;if(self has open) "^You can see a Slave Burial Tomb (which is opened), revealing a Slave Mummy."; else return false; ]; Object Mummy "Slave Mummy" Slaves_Tomb_Tomb with description "A normal mummy except for an abnormally large head.", name "mummy" "slave" "head" "large", before[; Close:"Too late to fix the mummy's head now."; Search:give mummy open; ], has container openable static; Class Crystal_Egg with before [; Take: if(self hasnt general) { score = score +5; give self general; } ], name "crystal" "egg", description [; print_ret (The) self," is beautiful."; ]; Crystal_Egg Red_Crystal_Egg "Red Crystal Egg" with name "red"; Crystal_Egg White_Crystal_Egg "White Crystal Egg" with name "white"; Object Hole_In_Wall "Hole in the far wall" with description [; if(knife notin self) "A slender hole in the wall."; else "Your knife is filling the hole."; ], describe [;return true;], before[;Receive: if(noun == knife) { move Slave_Inner_Door to Slaves_Tomb; return false; } else { print "Can not put ",(the) noun," here."; return true; } LetGo: remove Slave_Inner_Door; ], after [;Receive: if(noun == knife) { print "You insert the knife into the hole, then you here a sound like stones scraping together.^"; if(self hasnt general) { score = score+5; give self general; } return true; } ], name "hole", has container open static; Class Block_Door with description "A plain block door.", name "door", has static; Block_Door Slave_Inner_Door "Door between Slave's Tomb and Inner Chambers" with name "slavedoor"; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Now the Inner Chamber's Objects ! Defines the following classes that are used in ! other rooms: Pedastal ! Defines the following objects: Pillars, Secret Pedastal ! with a Book on top of it, Ladder leading up to the Moon Room, ! Metal Hook on the floor, a block door in the floor leading ! to Tikituka's Tomb, and a block door leading to the ! Queen's Quarters. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Inner_Chamber "Inner Chamber" with description "This room has a certain greatness about it with the large pillars in the four corners of the room. This must have been the religious room when the dead were mummified and given their possessions for their next life. The walls are made of ordinary blocks similar to those in the Slave's Tomb.", in_to [;if (Inner_Queen_Door in Inner_Chamber) return Queens_Quarters; else return 0; ], out_to [;if (Slave_Inner_Door in Inner_Chamber) { move Slave_Inner_Door to Slaves_Tomb; return Slaves_Tomb; } else return 0; ], u_to Moon_Room, d_to [;if(Floor_Door in Inner_Chamber && Whip in Metal_Hook) { if(Metal_Hook hasnt general) { score = score+5; give Metal_Hook general; } return Tikituka_Tomb; } else return 0; ], name "inner" "chamber" "innerchamber"; Object Pillars "Pillars" Inner_Chamber with description "A normal looking Eygyptian pillar holding up the ceiling.", name "pillar" "pillars", has scenery static; Class Pedastal with name "pedastal" "stand", before[;Take: "That's hardly portable"; ], has static supporter; Pedastal Secret_Pedastal "Pedastal" Inner_Chamber with description "A stone carved pedastal which looks to be very heavy."; Object Book "Book" Secret_Pedastal with before[;Take: "That book must remain on the pedastal otherwise you would be cursed."; Examine: if(Secret_Pedastal has general) "A book that is opened to the middle of the book."; else { print "You read the book and a cloud of smoke appears on top of the pedastal."; print "^^When the smoke clears you see a "; if(red_used) { print "white"; move White_Crystal_Egg to Secret_Pedastal; } else { print "red"; move Red_Crystal_Egg to Secret_Pedastal; } print " crystal egg setting on top of the pedastal."; score = score+5; give Secret_Pedastal general; return true; } ], name "book"; Object Ladder "Ladder" with description [;print "A normal ladder leading "; if(Player in Moon_Room) "down into the Inner Chamber."; else { if(Moon_Room has visited) "up into the Moon Room."; else "up to another room."; } ], name "ladder", found_in Inner_Chamber Moon_Room, has static; Object Metal_Hook "Metal Hook on the Floor" Inner_Chamber with description "A metal hook fastened to the floor.", name "hook" "metal", has static supporter; Block_Door Inner_Queen_Door "Door between Inner Chamber and the Queen's Quarters" with name "innerdoor"; Block_Door Floor_Door "Floor Opening to Tikituka's Tomb" with name "floordoor" "floor" ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Now the Moon Room's Objects are: Moon shaped window, ! Cupped Pedastal, Stone box with a spider in it. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Moon_Room "Moon Room" with description "This room has some natural light coming in through a moon shaped window. There are writings on the walls that look something like a map of the stars that would be viewed out the moon shaped window. You determine that this room can be used by the dead buried in the pyramid to use as directions to their next life.", d_to [;if(Stone_Box has open) { deadflag=1; print "You did not close the box and the spider got out and bit you."; return 1; } else return Inner_Chamber; ], name "moon" "moonroom"; Object Moon_Window "Moon-shaped window" Moon_Room with description "A very nice window with an excellent view outside the pyramid.", name "moonwindow" "window" has static scenery; Pedastal Cupped_Pedastal "Cupped Pedastal" Moon_Room with description "A stone carved pedastal with a cupped top, which looks to be very heavy.", before[;Receive:if(noun == Red_Crystal_Egg || noun == White_Crystal_Egg) { if(Red_Crystal_Egg in Self || White_Crystal_Egg in Self) { print "First remove the other egg before placing this one on the pedastal."; return 1; } } else { print "Can not place ",(the) noun," on here."; return 1; } ], after[;Receive: if(noun == Red_Crystal_Egg) { remove Slave_Inner_Door; remove Inner_Queen_Door; move Floor_Door to Inner_Chamber; if(Floor_Door hasnt general) { score=score+5; give Floor_Door general; } } else { remove Floor_Door; move Slave_Inner_Door to Inner_Chamber; move Inner_Queen_Door to Inner_Chamber; if(Inner_Queen_Door hasnt general) { score=score+5; give Inner_Queen_Door general; } } print "You hear some stone scraping sounds below as you place ", (the) noun," on ",(the) self,"."; return 1; LetGo: remove Floor_Door; remove Inner_Queen_Door; move Slave_Inner_Door to Inner_Chamber; print "You hear some stone scraping sounds below as you remove ", (the) noun," from ",(the) self,"."; return 1; ], name "cupped"; Object Stone_Box "Stone Box next to the Cupped Pedastal" Moon_Room with description "A heavy looking stone box sitting next to the pedastal.", name "stone" "box", has static container openable; Object Spider "Spider" Stone_Box with description "A deadly looking spider, you better close the stone box before he bites you.", after[;Take: deadflag=1; "That was stupid, the poisonous spider bit you."; ], name "spider"; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Now the Queen's Quarter's Objects defines the ! class Treasure which is also used in Tikituka's Tomb ! The following objects are in this room: Queen's Tomb ! and Two Bags Of Gold. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Queens_Quarters "Queen's Quarters" with description "You are stunned by the beauty of this room. The room reflects the light from your miner's hat in all directions. The block walls have crystals embedded in them. The crystals are worthless but they create a splendid display.", out_to Inner_Chamber, name "queen" "quarters"; Tomb Queen_Tomb_Tomb "Queen Burial Tomb" Queens_Quarters with name "queentomb" "tomb", description "The burial place of the Queen of Tikituka, except the mummy seems to be missing.", has open; Class Treasure with name "treasure" "riches"; Treasure Bags_Of_Gold "Two Bags of Gold" Queen_Tomb_Tomb with description "Two Bags of Gold", after [;if(self hasnt general) { score = score+20; give self general; } return 0; ], name "two" "bags" "gold"; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Now the Tikituka's Tomb Objects are: Tikituka's Tomb ! with Two Bags of Gold and a Bag of Jewels in it. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Tikituka_Tomb "Tikituka's Tomb" with description "You are taken aback by the beauty of this room with all the crytals embedded in the block walls. There are also drawings on the walls where there are no crystals. You see that these drawings are wishing well being to Tikituka in his next life.", u_to Inner_Chamber, name "Tikituka" "pharaoh"; Tomb Pharaoh_Tomb_Tomb "Tikituka's Burial Tomb" Tikituka_Tomb with name "tikituka" "pharaoh" "tomb", description "The burial place of Tikituka, except the mummy seems to be missing."; Treasure Bags_Of_Richs "Two Bags of Gold" Pharaoh_Tomb_Tomb with description "Two Bags of Gold", after [;if(self hasnt general) { score = score+20; give self general; } return 0; ], name "bags" "two" "gold"; Treasure Bags_Of_Jewels "Bag of Jewels" Pharaoh_Tomb_Tomb with description "Bag of Jewels", after [;if(self hasnt general) { score = score+20; give self general; } return 0; ], name "jewels" "bag"; ! ---------------------------------------------------------------------------- ! Some entry points ! ---------------------------------------------------------------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Give player the knife and whip to start with outside of ! the pyramid. Also set which crystal starts where, fifty ! percent of the time the red crystal will be in the slave ! mummy and the other percent will appear when the ! user reads the book in the inner chamber !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ Initialise; location=Outside_Of_Pyramid; score = 0; move knife to player; move whip to player; !fifty percent chance the red egg will be in the slave mummy's head if (random(2)==1) { move Red_Crystal_Egg to Mummy; red_used = true; } else { move White_Crystal_Egg to Mummy; red_used = false; } ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Used when the score is shown to give a ranking !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ PrintRank; print ", earning you the rank of "; if (score >= 100) "Grandmaster Explorer!"; if (score >= 90) "Master, first class."; if (score >= 80) "Master, second class."; if (score >= 70) "Junior Master."; if (score >= 60) "Seasoned Explorer."; if (score >= 50) "Experienced Explorer."; if (score >= 40) "Explorer."; if (score >= 30) "Novice."; "Amateur."; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Called when the player travels from a dark room to another ! If the user does it they have the potential (25% of the time) ! of dying. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ DarkToDark; if (dark_warning == false) { dark_warning = true; "It is now pitch dark. If you proceed you will likely fall into a pit."; } if (random(4) == 1) { deadflag = 1; "You fell into a pit and broke every bone in your body!"; } rfalse; ]; Include "Grammar";