! caverns of chaos ! original by Paul Martinez and Alison Castro ! inform conversion by lemonhead@anti-social.com ! http://members.xoom.com/headlemon/ Abbreviate ". "; Abbreviate ", "; Abbreviate "................"; Abbreviate " the "; Abbreviate "Would you like to"; Abbreviate "You"; Abbreviate "^^Do you"; Abbreviate "The"; Abbreviate "] or ["; Abbreviate "As you"; Abbreviate "ing"; Abbreviate "and"; Abbreviate "LEAVE"; Abbreviate "Queen"; Abbreviate " you"; Abbreviate "..."; Abbreviate "the"; Abbreviate " through"; Abbreviate " or"; Abbreviate " to"; Abbreviate " into"; Abbreviate " door"; Abbreviate " fi"; Abbreviate " of"; Abbreviate "troll"; Abbreviate " tha"; Abbreviate " see"; Abbreviate " ca"; Abbreviate " large"; Abbreviate " three"; Abbreviate " dr"; Abbreviate " he"; Abbreviate "[ATTACK"; Abbreviate " wall"; Abbreviate " take"; Abbreviate " some"; Abbreviate " have"; Abbreviate " li"; Abbreviate " for"; Abbreviate " is"; Abbreviate " begi"; Abbreviate " com"; Abbreviate " this"; Abbreviate " try"; Abbreviate " di"; Abbreviate " on"; Abbreviate " sh"; Abbreviate " we"; Abbreviate " are"; Abbreviate " down"; Abbreviate " made"; Abbreviate " fr"; Abbreviate " re"; Abbreviate "ter"; Abbreviate "^ "; Abbreviate "round"; Abbreviate "s a"; Abbreviate "you"; Abbreviate "hat"; Abbreviate "rea"; Abbreviate "er "; Abbreviate "n a"; Abbreviate "] a"; Abbreviate "ight"; array textb->83; array parseb-->5; [ getinput; print " "; textb->0=80; parseb->0=1; read textb parseb; if(parseb-->1==#n$q) quit; return parseb-->1; ]; [ waitforkey a; @read_char 1 0 0 a; return a; ]; [ clearscreen; @erase_window -1; ]; constant maxchoices=8; array wordlist-->maxchoices; array nodelist-->maxchoices; global nchoices; [ addchoice word node; if(nchoices==maxchoices) { print "*** Too many choices!"; rfalse; } wordlist-->nchoices=word; nodelist-->nchoices=node; nchoices++; ]; [ newnode word oldnode i; for(i=0:ii) return nodelist-->i; switch(word) { 'save': save worked; print "*** Couldn't save"; 'restore': restore worked; print "*** Couldn't restore"; 'quit', 'q': quit; 'about': about(); default: dontknow(); } .worked; return oldnode; ]; global location; [ main n; print "^^^Caverns of Chaos ^original by Paul Martinez and Alison Castro ^inform conversion by lemonhead@@64anti-social.com ^http://members.xoom.com/headlemon/ ^Type ~about~ if you haven't already."; location=banner; for(::) { if(location==-1) rtrue; nchoices=0; n=location(); if(n~=1) location=n; else location=newnode(getinput(), location); } ]; [ dontknow; print "^^^PLEASE WAIT WHILE I PROCESS DATA........ ^........................................ ^........................................ ^........................................ ^........................................ ^............I DON'T KNOW THAT WORD!^ ^^^^^PRESS A KEY TO RETURN TO GAME...^^^"; waitforkey(); ]; array charname->83; [ entername; charname->0=80; read charname 0; ]; [ printname i; for(i=0:i1:i++) print (char) charname->(i+2); ]; [ about; print "During the process of converting this game, I realized something about it that astonished me: it's not that bad. No, scratch that. This game is horrible. But when you live in someone else's game for upwards of 8 hours you start to respect how much work the authors put into it, no matter how bad it is. Then again, maybe the fact that the authors were willing to sink so much time into such a project is a sign of how little respect they deserve."; print "^^The game plays reasonably close to how I imagine it would if it were originally written in Inform. I've done away with original's 40 column formatting and relied on the interpreter for ~more~ prompts. However, in the interest of size and simplicity, the game isn't based on the standard Inform library, so most of the pleasantries you've come to expect will be missing. I've implemented ~save~, ~restore~, ~quit~, and ~q~, but no other meta commands."; print "^^Testing a game like this is tedious. Finding bugs in the game is no trouble at all, but since the conversion attempts to come as close to the original as possible, the real trick is to determine whether the bug is from the original or not. And there's always the danger that I've accidentally fixed bugs that were in the original. Therefore, testing becomes an exercise in typing the same things twice: one for this version, and one in the original, and comparing the results. I don't expect many people to be willing to do this sort of thing, but believe me, I'll be grateful if anyone does."; print "^^Since I didn't have the source code, this conversion was done on an experimental basis, trying out all possible branches of the story. There are some (thankfully few) spots which I was unable (or unwilling) to document to their fullest extent. The only major crime I committed was simplifying being able to ~have what she needs~; I made the ~puzzle~ much more straightforward since I have not been able to trip this flag in the original game on purpose."; ]; global pouchfound=0; global frogfound=0; global armorfound=0; global keyfound=0; [ banner; print "^^ C A V E R N S O F C H A O S ^Written AND programmed by Paul Martinez AND Alison Castro ^VERSION 1.6792 ^^THIS GAME IS VOLUNTARILY RATED PG-13 ^^WILL YOU [START] THE GAME OR DO YOU WANT TO [QUIT]?"; addchoice('start', titlescreen); addchoice('quit', toobad); ]; [ titlescreen i; for(i=0:i<15:i++) print "^WELCOME TO THE CAVERNS OF CHAOS..."; print "^PRESS A KEY TO START GAME...^^^"; waitforkey(); return mainmenu; ]; [ toobad; print "Too bad!You missed out on a fun game..."; return titlescreen; ]; [ mainmenu; print "^^^ M A I N M E N U ^^^1> INTRODUCTION ^^2> CREATE A CHARACTER ^^3> HALL OF FAMERS ^^4> BEGIN GAME ^^^PLEASE TURN YOUR CAPS LOCK ON! ^^CHOOSE A NUMBER?"; addchoice(#n$1, introduction); addchoice(#n$2, createchar); addchoice(#n$3, halloffame); addchoice(#n$4, startgame); ]; [ introduction; print " I N T R O D U C T I O N ^^ Welcome to The Caverns of Chaos. This is a story about the King and Queen of Pandaris, a small island located in the Atlantic Ocean. Pandaris was a small kingdom. For three hundred years there had not been a war or plague.The people of Pandaris were content, until... ^^ One day an evil troll arrived on Pandaris and demanded to see the King. He told everyone who would listen to him that he has important information that will benefit Pandaris but would only tell the King himself. The troll finally convince the guards to let him into the castle. ^^Upon seeing the King and Queen, the troll transformed himself into a large dragon."; print "^^`Hear me rulers of pandaris'belowed the dragon `from this day forth you on the first of the month shall pay me 800 gold pieces.The tribute will insure your Kingdoms safety.' ^^`Ridiculous' screamed the Queen ^`Outlandish' yelled the king ' ^`We will not pay a single... ^^With that a blue flame shot out of the dragon's snout and surrounded the Queen She did not burn but rather flickered and then disappeared.What have you done yelled the King as he drew his sword and charged the dragon."; print "^^ Once again the blue flame shot from the dragons snout,this time surrounding the King. The King like his poor wife flickered and disappeared too. ^^The dragon then surveyed the room with his cold black eyes. After seeing that all the guards were terrified and would not attack, he turned back into himself walked out of Royal Hall and through the castle gates.As he left the castle he turned to the guard and growled... ^^`I Landloris, will return...'"; print "^^ Once the people of Pandaris learned of the mysterious troll and the disappearance of their King and Queen, they all began to panic. What will they od now. What will happen when Landloris returns to destroy their homes? ^^^They held a meeting and decided they must find the troll and make him return the King and Queen. If he refuses they must kill him before he returns to destroy Pandaris."; print "^^ Ten of the bravest men and women joined together in search of the trolls den. Two weeks ago a carrier pigeon arrived in the city of Pandaris with a map with the location of the trolls den ^^They found him on the island of Chaos, just three days East by sea. Their message said they were outside of the troll's den and were ready to enter the cave and find the troll. Their next message would be sent after they kill the troll and are ready to come home."; print "^^It has been over three weeks since they have been heard from... ^^Being the brave soul that you are you you decide to follow the map to the troll's den and kill him yourself. ^^Besides the 10,000 gold piece reward wouldn't hurt... ^^PRESS A KEY FOR MAIN MENU..."; return mainmenu; ]; [ createchar; print "^Welcome To The Cosmic Gene Pool ^^Enter your characters name?"; entername(); return rollstats; ]; [ rollstats; clearscreen(); print "^^Name:"; printname(); print "^^AGE ", random(20)+15, " YOU ARE EQUIPPED WITH ^STR ", random(25), " CHAINMAIL ^DEX ", random(25), " SMALL WOODEN SHIELD ^INT ", random(25), " SHORT SWORD ^WIS ", random(25), " LEATHER BOOTS ^CON ", random(25), " 2 TORCHES ^CHR ", random(25), " FLINT AND STEEL ^AC 5 ONE WEEKS RATIONS ^^[BEGIN]the game,[REROLL] your character or [RETURN] to main ?"; addchoice('begin', startgame); addchoice('reroll', rollstats); addchoice('return', mainmenu); ]; [ halloffame; print "^T H E H A L L O F F A M E ^^LORD MICHAEL BUDWEISER OF BUSH ^^KING PAUL I OF PANDARIS ^^QUEEN ALISON OF PANDARIS ^^SIR WAID OF WORDENIA ^^LADY BIANCA OF WORDENIA ^^MICHAEL (I DIDN'T WAPE HER) TYSON ^^YOUR NAME COULD BE HERE! "; printname(); print "^^PRESS A KEY TO RETURN TO MAIN MENU..."; waitforkey(); clearscreen(); return mainmenu; ]; [ startgame; print "^ You are at the docks of Pandaris aboard their only ship. The Captain will take you to the shore but will not dock the ship. He promises to return in a week to pick you up. If you are not there, the ship will leave without you. ^^ [LEAVE] ship or [ANCHORS] away?"; addchoice('leave', leaveship); addchoice('anchors', landho); ]; [ leaveship; print "^As you start to run down the gangplank an arrow pierces your heart. Lousy coward snarls the seaman as he spits on your dead body. ^"; return dead; ]; [ dead; print "^ This game, like life, is made up of choices. You, obviously have made the wrong one. Welcome to the afterlife! ^^Would you like to be [REBORN] or [FLOAT] around in the void?"; addchoice('reborn', titlescreen); addchoice('float', -1); !the end ]; [ landho; print "^ After two days on the sea you hear `LAND HO'.The ship drops anchor, puts you in a dingy and sends you on your way. Inside the dingy is a sack containing a weeks worth of food and water.As you start rowing to the island you hear the Captain yell, ^^`You're a brave soul "; printname(); print " Good luck!' ^"; return trek1; ]; [ trek1; print "^ According to the map, the troll's cavern is a few days hike from here.The terrain is plush, with tall grass. You can see a forest three miles in front of you. Judging by the sky you have three hours of sun left. ^^Would you like to set up [CAMP] here or [START] walking?"; addchoice('camp', trek2); addchoice('start', trek2); ]; [ trek2; print "^ You slowly make it through the terrain and closer to the troll's cavern. The sky blackens as night approaches ^^Set [CAMP] or [KEEP] walking?"; addchoice('camp', wolves); addchoice('keep', trek3); ]; [ wolves; print "^You You were attacked by a pack of wolves as you slept. You made a tasty midnight snack. ^"; return dead; ]; [ trek3; print "^ Now you are walking through a thick dark forest. You are a day away from the caverns. ^^Do you want to [REST] or [KEEP] walking?"; addchoice('rest', wolves); addchoice('keep', trek4); ]; [ trek4; print "^ You are out of the forest now. You have been walking for 12 hours and are getting very tired. ^^Do you want to [CAMP] or [KEEP] on trekking?"; addchoice('camp', dontknowtwice); addchoice('keep', trek5); ]; [ dontknowtwice; dontknow(); dontknow(); return titlescreen; ]; [ trek5; print "^You are about to drop from fatigue.You can see the caverns from where you are standing. ^^Do you [REST] first or [HEAD] for the entrance?"; addchoice('rest', resting); addchoice('head', dead); ]; [ resting; print "^ You take a well deserved rest outside the entrance to the caverns.Eight hours later you wake up.Are you ready to walk into the entrance to the caverns ^^[WALK] into the cave or go back to [SLEEP]?"; addchoice('walk', entrance); addchoice('sleep', dead); ]; [ entrance; clearscreen(); print "^ C A V E R N S ^^ O F ^^ C H A O S ^^ INSIDE LIES DEATH AND DOOM... ^^ Would you like to [WALK] into the cave or [RUN] for your life?"; addchoice('walk', frontdoor); addchoice('run', getballs); ]; [ getballs; print "^ Come back when you get some balls! Caverns of Chaos is not a place for the weak of heart! ^^Would you like to play again?"; addchoice('yes', titlescreen); addchoice('no', -1); !theend ]; [ frontdoor; print "^ As you walk in the cave, you hear a soft moan from within. Firmly mounted torches expose the wet and moldy walls. ^^ At the end of the cave, you see a large metal door with a faint light coming through the keyhole. The moan turns into a loud wail as you approach the large door. ^^This is your last chance to run away. Don't say that I didn't warn you! ^Prepare to die... ^^Would you like to turn the [DOORKNOB] or look through the [KEYHOLE]?"; addchoice('doorknob', enterlargeroom); addchoice('keyhole', keyhole); ]; [ keyhole; print "^Stale air fills your nose and you begin to cough.A cold chill FREEZES your SOUL. As fear overcomes you a puddle forms at your feet. ^"; return getballs; ]; [ enterlargeroom; print "^You struggle to get the old door open. ^"; return largeroom; ]; [ largeroom; print "^ You see .....a large room. ^ Four doors are visible to you.The door large gold doorknob. The door on the [SOUTH] wall is smaller than the North door. ^^ The door on the [EAST] is 20 feet high and 8 feet wide. The door on [WEST] wall is the only metal door in the room. In the center of the room is a large round [TABLE] made of oak. ^^ The west door has a large bolt across it.Perhaps to keep something or body out Although the table can seat 50 there are only five chairs here. All along the walls, high above your reach, you see many shields of different colors. ^^Would you like to open a door, examine the [TABLE] or [LEAVE]?"; addchoice('north', enternorthroom); addchoice('south', entersouthroom); addchoice('east', eastroom); addchoice('west', westroom); addchoice('table', examinetable); addchoice('leave', cantleave); ]; [ cantleave; print "^The door you first came in is no longer visible... ^^Would you like to open a door, examine the [TABLE] or [LEAVE]?"; addchoice('north', enternorthroom); addchoice('south', entersouthroom); addchoice('east', eastroom); addchoice('west', westroom); addchoice('table', examinetable); addchoice('leave', cantleave); ]; [ examinetable; print "^ You see a large round oaken table. It looks as if it can seat 50 people comfortably. For such a large table, chairs scattered around the table. ^^If you drew a line from chair to chair, you would have created a five pointed star...a pentagram. Lucky your not SUPERSTITIOUS.... ^^You see a chair with three legs. ^^Do you [EXAMINE] it , [OPEN] a door or [LEAVE]?"; addchoice('examine', examinecloser); addchoice('open', largeroom); addchoice('leave', largeroom); ]; [ examinecloser; print "^ The old chair has a very high back and majestic red velvet cushion. You feel something underneath the cushion. ^^Do you search under the cushion?"; if(keyfound) addchoice('yes', findlint); else addchoice('yes', findkey); addchoice('no', largeroom); ]; [ findlint; print "^ You find a pile of lint. ^^Do you [LEAVE] or [OPEN] a door?"; addchoice('leave', cantleave2); addchoice('open', largeroom); ]; [ findkey; print "^ You find a golden key. ^^Do you [TAKE] or [LEAVE] the key?"; addchoice('take', getkey); addchoice('leave', examinetable); ]; [ getkey; keyfound=1; print "^ You now have an unique looking gold skeleton key.All that you have to do know is find what it opens. ^^Do you [LEAVE] or [OPEN] a door?"; addchoice('leave', cantleave2); addchoice('open', largeroom); ]; [ cantleave2; print "^ You try to find the way you came in but cannot. You search and search, but can't find your way out. Oh well, may as well pick a door. ^"; return largeroom; ]; [ enternorthroom; print "^ The small door opens easily.The room is dimly lit.The further you enter the room the more you can see.You are inside of a beautiful bedroom. The smell of roses lingers in the air. ^"; return northroom; ]; [ northroom; print "^ You see a large canopy [BED] taking up most of the room. Next to the bed is an oak [DRESSER] and a night [STAND]. Against the east wall,you see a dressing [TABLE] with a mirror. In the west corner, you see a wooden [WARDROBE]. ^^ A beautiful [RUG] covers the entire room. The largest [SPIDERWEB] you have ever seen is spun in the southwest corner. A thick layer of dust covers the furniture. ^^Examine an item or [LEAVE]?"; addchoice('bed', bed); addchoice('dresser', dresser); addchoice('stand', stand); addchoice('table', table); addchoice('wardrobe', wardrobe); addchoice('rug', rug); addchoice('spiderweb', spiderweb); addchoice('leave', largeroom); ]; [ bed; print "^ The bed is firm yet comfortable. It has not been slept on in quite awhile. Silken sheets and pillow cases give the bed a royal look. You look under the bed and discover ... a trapdoor. ^^Do you open the trapdoor?"; addchoice('yes', opentrapdoor); addchoice('no', northroom); ]; [ opentrapdoor; print "^ You lift up the old wooden door and one of the rusty hinges break. Boy, you're a strong one! You saw claw marks on the inside of the trap door. ^^ You see a staircase leading down. darkness you can see two red eyes glaring up at you. Do you still want to [ENTER] or would you rather [LEAVE]?"; addchoice('enter', entertrapdoor); addchoice('leave', chicken); ]; [ chicken; print "^ CHICKEN! ^"; return northroom; ]; [ dresser; print "^ The oak looks very worn, but the dresser is sturdy. You open the dresser to find...NOTHING! ^"; return northroom; ]; [ stand; print "^ The night table has only three legs. ^"; return table; ]; [ table; print "^ What a beautiful dressing table. You look in the mirror, but do not see your reflection.Upon touching the mirror, your hand disappears. You quickly pull it out.1,2,3,4,5. Good, all your fingers are still there! ^^Do you enter the [MIRROR] or [LEAVE] it be?"; addchoice('mirror', entermirror); addchoice('leave', northroom); ]; [ wardrobe; print "^ Here us a fine piece of workmanship. Not a scratch or flaw to be found. The see three rectangular drawers inside and a gown hanging there. ^^Do you take the gown?"; addchoice('yes', takegown); addchoice('no', northroom); ]; [ takegown; print "^ After trying it on, you decide it's not you...and put the gown back in the wardrobe. ^"; return northroom; ]; [ rug; print "^ You look under the rug and find nothing but dust and more dust, but you are on the right track. ^"; return northroom; ]; [ spiderweb; print "^ This really is the largest spiderweb you have ever seen! Judging by its size the spider must be huge. You better leave well enough alone... ^"; return northroom; ]; [ entermirror; print "^ As you step through the mirror, a sense of peace and well-being swells in your chest. But there is also a great sadness here. It feels as if you have entered another's dream. ^"; return meadow; ]; [ meadow; print "^ You are in a lush, green meadow. You can feel the morning dew in the air. There is a large bumble bee circling around your head. You see a massive weeping willow [TREE] shadowing a small [POND]. ^^Where would you like to go?"; addchoice('tree', tree); addchoice('pond', pond); ]; [ pond; print "^ You gaze into the pond and see a reflection other than your own. You behold a fair Queen crying besides the willow tree. She looks as if she may have cried amillion tears. ^^ You reach out and drink the water of this reflectiong pond and realize that it is filled with the salt from the Queens' tears. ^"; return meadow; ]; [ tree; print "^ The ancient,gnarled tree has stood for many centuries.You notice a small, black hole towards the bottom of the trunk. ^^Do you want to [EXAMINE] the hole or [CONTINUE] onward??"; addchoice('examine', hole); addchoice('continue', findbee); ]; [ hole; print "^ You nimbly climb around the mighty roots of the willow and peer inside the opening only to find that it isn't a hole at all. Rather it's a small, heart-shaped door, with a tiny silver door knob. ^^Would you like to try the [DOORKNOB] or [RESUME] your quest elsewhere?"; addchoice('doorknob', opentinydoor); addchoice('resume', findbee); ]; [ opentinydoor; print "^ Using two fingers , you gently turn the delicate knob. Inside you see a beautiful emerald ring. ^^Would you like to take the [EMERALD] or [CLOSE] the door ?"; addchoice('emerald', emerald); addchoice('close', findbee); ]; [ emerald; print "^ You take the ring and securely close the small door. ^"; return findbee; ]; [ findbee; print "^ The bumble bee flies to your ear and begins to speak.`Hello weary traveller, follow me for safe passage.' ^^Do you [FOLLOW] the bee or [SEEK] your own way out?"; addchoice('follow', followbee); addchoice('seek', dontfollowbee); ]; [ dontfollowbee; print "^You wanter aimlessly for days. Finally you give up hope of escaping. ^"; return dead; ]; [ followbee; print "^ You follow the bee to what seems to be a drawing room door.` Have a safe and rewarding journey, Human ' the bee says as he buzzes away. ^^ Seeing no doorknob, you walk through the penciled doorway. You feel a tingling sensation and see a vast nothingness. You've made it through. ^"; return almostlargeroom; ]; [ almostlargeroom; print "^^Would you like to [LOOK] around or examine the [DOOR]?"; addchoice('look', largeroom); addchoice('door', nodoor); ]; [ nodoor; print "^You see no traces of the door you passed through. ^"; return almostlargeroom; ]; [ entersouthroom; print "^ How you fit through that door I'll never know. But the hard part is all behind you. You are standing in the kitchen. ^"; return southroom; ]; [ southroom; print "^ You can see a large wood burning [STOVE] by the east wall.By the stove is a large wash [BASIN].Near the north wall you see four [CABINETS] and a [WELL]. ^^Would you like to examine something or [LEAVE]?"; addchoice('stove', stove); addchoice('basin', basin); addchoice('cabinets', cabinets); addchoice('well', well); addchoice('leave', largeroom); ]; [ stove; print "^ The stove is very old and may fall apart at any second now. You open up the hatch and find..."; if(pouchfound) { print "NOTHING"; return entersouthroom; } print "^ a leather pouch. ^^Would you like to open the pouch ?"; addchoice('yes', openpouch); addchoice('no', southroom); ]; [ openpouch; print "^You find three blank pieces of paper. ^You also find a diamond ring. ^^Do you try the ring on?"; pouchfound=1; addchoice('yes', wearring); addchoice('no', southroom); ]; [ wearring; print "^ No matter how hard you try it does not fit. ^"; return southroom; ]; [ basin; print "^ Here is a large round washbasin. It is empty but you can still see the ring where the water once was. Don't even think about trying to take it. ^"; return southroom; ]; [ cabinets; print "^ All the cabinets are very dusty and very empty excepting one. You find a funny shaped bottle. ^^ [TAKE] the bottle or [LEAVE] it behind?"; addchoice('take', takebottle); addchoice('leave', mightneed); ]; [ mightneed; print "^Bad choice. You might need that later in the game."; return southroom; ]; [ takebottle; print "Would you like to [DRINK] or [STORE] the bottle for later use?"; addchoice('drink', drinkbottle); addchoice('store', southroom); ]; [ drinkbottle; print "^ As you drink the potion you feel your insides begin to burn away. Nevr drink anything without knowing first what it is. The room begins to fade as you die a painful death. ^"; return dead; ]; [ well; print "^ The well is made of stone and mud.The rope is worn but looks sturdy enough to hold you. ^^Do you tie the rope and climb down?"; addchoice('yes', climbrope); addchoice('no', southroom); ]; [ climbrope; print "^ Since this rope has no bucket attached, you can easily tie the end around your waist and lower yourself into the well. About a third of the way down you feel a tug on the rope, ^^`Hello down there' you hear from above. `What do you think you're doing?, there is nothing down there. Would you like me to pull you out of the well?' ^^Do you [ACCEPT] his offer , [CONTINUE] down or [CUT] yourself free?"; addchoice('accept', accepttroll); addchoice('continue', continuedown); addchoice('cut', cutrope); ]; [ accepttroll; print "^You are quickly pulled up and come face to-face with an ugly troll!You hear the troll say something about dinner... ^"; return dead; ]; [ continuedown; print "^As you get to the bottom you see... ^Nothing! Absolutely nothing. The troll was telling the truth. As the other end of the rope hits you in the head, you hear the troll laugh. `HAHA' ^^`Stupid Human!' yells the troll. You should have listened. With that he walks away, leaving you to die. After hours of screaming ,you pass out and eventually die. ^"; return dead; ]; [ cutrope; print "^You cut the rope with your sword and fall sixty feet..... SPLAT ^"; return dead; ]; [ eastroom; print "^ You are standing in the doorway to a few [STATUES]. Fine silken [DRAPES] cover all four walls. ^^ The room has a warm feel to it. There is a [FIREPLACE] in the north corner. Unlit of course. A crude [ORGAN] sits in the middle of the room. ^^ Do you examine something or leave?"; addchoice('statues', statues); addchoice('drapes', drapes); addchoice('fireplace', fireplace); addchoice('organ', organ); addchoice('leave', largeroom); ]; [ statues; print "^ You see three statues. One is of a beautiful woman. The other two are of cats. The woman has a sad look on her face. If you look closely, you can see a tear in her eye. ^"; return eastroom; ]; [ drapes; print "^ The drapes hang from the ceiling to the floor and cover all four walls. What do you know! Behind each drape you find a large, LOCKED door. ^"; return eastroom; ]; [ fireplace; print "^You see an old stone and mud fireplace. ^^Do you want to look up the flute?"; addchoice('yes', lookupflute); addchoice('no', eastroom); ]; [ lookupflute; print "^You get an eyeful of soot. ^"; return eastroom; ]; [ organ; print "^ You see a very old and dirty looking organ. Dust covers every inch of this relic. There is sheet music atop the of it. Now your organ lessons pay off. ^^ As you start to play the sad melody, dust and cobwebs fly out of the old pipes. Halfway through the melody the statue of the Queen comes to life. ^^Do you [ATTACK] the statue , [TALK] to it or [GIVE] it something?"; addchoice('attack', attackqueen); addchoice('talk', talkqueen); if(~~frogfound) addchoice('give', cantgive); addchoice('give', givefrog); ]; [ attackqueen; print "^ As you draw your sword the Queen twitches her nose and turns you into a mouse. The queen walks over to the statues of the cats and begins to pet them. ^^ As she strokes the statues, the cats come to life. Before you can say Mickey Mouse, the cats are on you. The last thing you feel is a rough tongue across your face. ^"; return dead; ]; [ talkqueen; print "^She smiles and tells you she is Queen Alison.The evil troll has teleported the King and her to this cavern.The King has been transformed into a frog and is held in a jar that sits on the troll's table. The Queen begs you to find the King and return them to Pandaris. ^^Do you agree to help her?"; addchoice('yes', agree); addchoice('no', disagree); ]; [ agree; print "^ She wishes you luck and sends you on your way. Now all you have to do is find the King, I mean frog."; return largeroom; ]; [ disagree; print "^ The Queen begins to weep....loudly. Her wailing causes the walls to shake and vibrate. As the walls come tumbling down on you, you regret what a selfish person you were... ^"; return dead; ]; [ cantgive; print "^ YOU DO NOT HAVE WHAT SHE NEEDS! ^"; return eastroom; ]; [ givefrog; print "^ The Queen is so happy she starts to cry. In between her sobs, she asks you to break the troll's spell and free them both by playing the sheet music, which is their wedding song. ^^Do you [PLAY] their song or [RUN] for the door?"; addchoice('play', playsong); addchoice('run', runaway); ]; [ runaway; print "^ You made it out of the door and into the main hall. After trying to open all the doors, you realize you're locked in. You wanter aimlessly for days until you finally die of dehydration. Next time be MORE COMPASSIONATE... ^"; return dead; ]; [ playsong; print "^ You sit on the old organ bench and begin to play their wedding song. Halfway through the song the frog begins to glow and sparkle. The image of the frog now starts to transform. ^^Before long the King returns to his normal form. The King and Queen embrace and kiss. You feel your cheeks getting red. ^^ The king asks 'What is your name hero?"; entername(); print "^THANK YOU "; printname(); print "^You are truly a brave soul. ^When we return to Pandaris , I will knight you and hold a feast in your honor. All of Pandaris will know your name and the brave deed you performed today. ^^You thank him for his generous offer and inform them that the ship will be returning soon and they must hurry. You urge the King and Queen to follow you back to the dock immediately. ^^The Queen agrees and unlocks one of the doors behind the drapes. This will lead us straight to the outside'says the Queen. The Queen grabs her two cats and follows the both of you through the door. ^^The King tells you to walk first and check for traps ,do you?"; addchoice('yes', checktraps); addchoice('no', winmessage); ]; [ winmessage; print "^CONGRATULATIONS! You have killed the troll and rescued the royal couple! Take a well deserved rest and get ready for a rough outdoor adventure IN: CHAOS II;The Forest of Fury.........^^"; return -1; !theend ]; [ checktraps; print "^You walk down a long winding passage and reach a stone door. You walk out of the door and are standing on the edge of the forest. ^"; return winmessage; ]; [ westroom; print "^ You enter through the door and see a pool as large as a lake. The room is empty except for the large [POOL].The air is heavy and smells of decay.In the east corner is a suit of [ARMOR].You hear splashing coming from the pool. ^^Would you like th examine the [POOL], [ARMOR] or [LEAVE]?"; addchoice('pool', enterpool); if(armorfound) addchoice('armor', noarmor); else addchoice('armor', armor); addchoice('leave', largeroom); ]; [ enterpool; print "^ Upon closer inspection of the pool, you see a large shadow under the water. The shadow crosses the pool in a zig-zag pattern. There is a ladder to enter the pool on the east side by the armor. ^^Do you want to enter the pool?"; addchoice('yes', yesenterpool); addchoice('no', westroom); ]; [ yesenterpool; print "^ As you walk over to the ladder you slip and fall into the pool.As you hit you hit the water, out of the corner of your eye,you see the shadow make a quick bolt for you. As you panic, water starts to fill your mouth. ^"; return dead; ]; [ noarmor; print "^ YOU ALREADY HAVE TAKEN THE ARMOR!"; return westroom; ]; [ armor; armorfound=1; print "^ It seems that some long departed adventurer removed his clothing prior to taking a dip in the pool. ^^ You move through the pile and discover an old, but finely made shield bearing the inscription 'In God We Trust'. You take the shield you also see a mighty sword hammered from the finest steel in all the land. ^^ You take the fine sword and place it in the sheath. All that remains of the pile is a pair of boots made from the shells of panda bugs, you try and imagine what type of adventurer could afford these fine things.Especially one foolish enough to dive into a strange pool. Any fool knows to test the waters first...."; return salvage; ]; [ salvage; print "^ Salvaging everything you possibly can, you continue on your quest. ^^Would you like to examine the [POOL], [ARMOR] or [LEAVE]?"; addchoice('pool', enterpool); addchoice('armor', noarmor); addchoice('leave', largeroom); ]; [ entertrapdoor; print "^Do you light your [TORCH] or just [DESCEND] the stairs?"; addchoice('torch', lighttorch); addchoice('descend', darkdescend); ]; [ darkdescend; print "^Without a light you don't see that missing step. Have a nice trip, see you next fall. You land at the bottom of the winding staircase and break your neck! ^"; return dead; ]; [ lighttorch; print "^ You open your backpack and remove a torch. You light it and start walking down the staircase. As you walk down the old creaky stairs, you carefully avoid some missing steps. After nearly tripping twice, you reach the bottom of the stairs. ^^Do you want to [LOOK] around or [WALK] back up the stairs?"; addchoice('look', lookaround); addchoice('walk', upstairs); ]; [ upstairs; print "^ As you scurry to reach the top of the stairs, your full weight causes one of the decaying steps to collapse. ^^As the wood splinters through your ankle, you let out a scream. ^^As you try to pry your foot free, you hear a loud thumping.It's coming closer! You frantically claw at your foot. You see two red eyes and a large form. ^^Do you [CUT] off your foot or [WAIT] for the rat?"; addchoice('cut', cutfoot); addchoice('wait', waitrat); ]; [ cutfoot; print "^OUCH.....YOU SICK BASTARD! ^"; return bloody; ]; [ waitrat; print "^ You do not have to wait long. The rat is on top of you in seconds. The rat clamps its teeth on your left arm and pulls it right out of its socket. ^"; return bloody; ]; [ bloody; print "^The smell of your freshly spilled blood drives the rat into a frenzy! You made a tasty morsel for a hungry rat. Thanks for coming to dinner. ^"; return dead; ]; [ lookaround; print "^ You see a narrow passage leading east. ^^[WALK] down the passage or [FEEL] walls for secret doors?"; addchoice('walk', walkeast); addchoice('feel', feelwalls); ]; [ feelwalls; print "^ You crush a couple of bugs while feeling for doors. ^^Do you continue to [SEARCH] or go east?"; addchoice('search', continuesearch); addchoice('east', endofpassageway); ]; [ continuesearch; print "^ As you continue to search, your luck runs out. ^You just crushed a poison panda bug! Of all the bugs, why did it have to be that one... The most deadly of all. As the bug shell cracks, corrosive poison is released. The acidic poison eats through your hand and enters your bloodstream. ^"; return dead; ]; [ walkeast; print "^ You see insects crawling across the passage walls. As you walk through the passage you try to avoid them. Trying is not doing,you brush against the wall. ^^ You hear several loud crunches as your armor comes in contact with several hard-shelled insects. ^"; return endofpassageway; ]; [ endofpassageway; print "^ You have reached the end of the passageway. In front of you is a marble door. The marble is smooth and polished. Intricate scenes are carved into it. On your left is a wooden door. ^^ This door is pitted and may fall apart at anytime now. The only purpose this door serves, is to feed and house the termites. ^^Would you like to enter the [MARBLE] , [WOODEN] door or [LEAVE]?"; addchoice('marble', marbledoor); addchoice('wooden', woodendoor); addchoice('leave', -1); !yes, theend, for no good reason ]; [ woodendoor; print "^ You open the rotting door and see a small room. The room is empty save for an old chair. The chair looks normal except it has but one leg. ^^Will you [ATTACK] or [SIT] on the chair?"; addchoice('attack', attackchair); addchoice('sit', sitchair); ]; [ sitchair; print "^As you sit in the chair, your butt begins to tingle. It feels as if your being teleported...... ^"; return largeroom; ]; [ attackchair; print "^You hack the chair to pieces. ^You're lucky the chair wasn't armed. ^"; return afterdoor; ]; [ beforeafterdoor; print "^You see a [WOODEN] door on the right and a [MARBLE] door behind you."; return afterdoor; ]; [ afterdoor; print "^Would you like to open a door or [WALK] west?"; addchoice('marble', keyalready); addchoice('wooden', woodendoor); addchoice('walk', upstairs); ]; [ keyalready; print "^ You no longer have the gold key. You already used it...I remember. ^"; return beforeafterdoor; ]; [ marbledoor; print "^ The marble door has no handle and does not budge when you push it. You see a small keyhole hidden in the intricate carvings. ^^Were you smart enough to take the gold key?"; if(keyfound) { addchoice('yes', marbleroom); addchoice('no', marbleroom); } else { addchoice('yes', goback); addchoice('no', goback); } ]; [ goback; print "^Well, you better go back and get it. ^"; return upstairs; ]; [ marbleroom; print "^ GOOD! You place the key into the keyhole and turn the knob.Inside you see a dark figure sitting at a table. There are shelves lining all four walls. Against the southwest wall is a table. On top of the table are three flasks. ^^Do you [APPROACH] the seated figure or [EXIT] the room?"; addchoice('approach', attack1); addchoice('exit', exitroom); ]; [ exitroom; print "^ As you quietly head towards the door, the figure notices you. ^^Do you [ATTACK],[RUN] away,[TALK] or [BEG] for mercy?"; addchoice('attack', attack1); addchoice('run', diecoward); addchoice('talk', upstairs); ]; [ diecoward; print "^ As you try to run away you feel a sword pierce your back and get stuck between your 9th and 10th rib. You fall to your knees and gasp for air.The last thing you hear is 'Die coward!'"; return dead; ]; [ attack1; print "^ As you draw your sword to attack, the figure removes it's cloak and rears it's ugly head. You freeze and the troll takes advantage of his ugliness and attacks you first. The troll's claw leaves a deep gash across your chest. ^^Do you [ATTACK] or try to [RUN]?"; addchoice('attack', attack2); addchoice('run', dead); ]; [ attack2; print "^ You are a little off balance, but still manage to hit the troll. The troll wails in pain and claws at you. Still being somewhat stunned, a claw slashes across your face. ^^Will you [ATTACK] or [RUN] away?"; addchoice('attack', attack3); addchoice('run', dead); ]; [ attack3; print "^ Great swing! You scored a solid hit to the trolls left arm. The troll is noticably weakened by your blow. He claws at you and misses. The troll is already starting to regenerate. ^^[ATTACK] or [RUN] away?"; addchoice('attack', attack4); addchoice('run', dead); ]; [ attack4; print "^ You thrust at the troll just missing it's head. The troll claws at your chest again.His left arm has fully regenerated ^^Do you [ATTACK] or [RUN] away?"; addchoice('attack', attack5); addchoice('run', dead); ]; [ attack5; print "^ You have lost quite a bit of blood and feel faint. You muster what little strength you have left and swing for the troll's head. Your blade hums as it cuts through the hair as well as the troll. ^^The troll's head spins as it is severed from the troll's neck and lands with a loud thud. Now with the troll dead you can examine the room."; return trolldead; ]; [ trolldead; print "^Would you like to examine the [BOOKS] , dead [TROLL],[TABLE] or [LEAVE]?"; addchoice('books', books); addchoice('troll', troll); addchoice('table', trolltable); addchoice('leave', enterpassageway); ]; [ books; print "^ Many thousands of books line these walls. The troll was an avid reader. Although the books look interesting to you, there is no time to stop and read them. You flip through a couple of books and move on. ^"; return trolldead; ]; [ enterpassageway; print "^You exit the room and enter a passageway ^"; return beforeafterdoor; ]; [ troll; print "^ You notice he has funny looking but well made slippers on. The thin slippers are made of leather. You notice an inscription on them. It says.... MADE IN THE U.S.A. ^^Do you [TAKE] the slippers or [LEAVE] them on the dead troll ?"; addchoice('take', takeslippers); addchoice('leave', enterpassageway); ]; [ takeslippers; print "^You take the slippers and put them in your pack. ^"; return trolldead; ]; [ trolltable; print "^On the table you see three flasks. Each one contains a different colored liquid. You also see three beakers. Behind one of the beakers you see... a jar with a toad in it ^^Could this be what your looking for? ^^Do you take the [FLASK],[JAR] OR [LEAVE]?"; addchoice('flask', flask); addchoice('jar', jar); addchoice('leave', enterpassageway); ]; [ jar; print "^You see a brown toad with bright blue spots enclosed in a bell jar. Could this be the toad you're looking for???. ^^It's hard to believe this toad was once and bring it to the Queen as promised. You gently place the jar in your pack. ^^Do you head out the [DOOR] or [LOOK] around some more ?"; frogfound=1; addchoice('door', beforeafterdoor); addchoice('look', trolldead); ]; [ flask; print "^Do you take the [RED], [BLUE] OR [BLACK] liquid filled flask ?"; addchoice('red', redflask); addchoice('blue', blueflask); addchoice('black', pool); ]; [ redflask; print "^ You know have a flask of red liquid. You uncork the flask and smell the potion. A bitter odor rises from inside of the flask. ^^Would you like to drink some of the [LIQUID] or [STORE] it for later?"; addchoice('store', storeflask); ]; [ storeflask; print "^You store the flask in your pack. ^"; return trolldead; ]; [ blueflask; print "^You now have a flask half full of blue liquid ^^Would you like to [DRINK] or [STORE] the flask in your pack?"; addchoice('drink', pool); addchoice('store', storeflask); ]; [ pool; print "^You see a [LADDER] leading into the pool and a pile of [ARMOR] neatly stacked in the southeast corner. You hear splashing in the pool. ^^Do you use the[LADDER],[ARMOR] OR [LEAVE]?"; addchoice('ladder', ladder); if(armorfound) addchoice('armor', noarmor); else addchoice('armor', armor); addchoice('leave', largeroom); ]; [ ladder; print "^As you walk down the ladder and into the water your armor begins to rust Do you want to [CONTINUE] or [LEAVE] the pool?"; addchoice('continue', downladder); addchoice('leave', leaveladder); ]; [ downladder; print "^The further you walk into the pool, the more your armor rusts.You are about to leave when you feel something close around your legs and pull you under! ^"; return dead; ]; [ leaveladder; print "^ As you start to climb up the ladder, you feel something close around your leg. You scream in horror as you look down to discover you're missing a leg! Blood now pours from your stomp and turns the water around you red. You panic and pool. ^^ Whatever took a bite out of your leg, now clamps its steel jaws over your head and pulls you under. Welcome to Davy Jones' locker"; return dead; ];