/************************************* * Horizon: Lands of Kestrel LIBRARY * * Started July 2 / 2002 * * Complete July 17 / 2002 * * Programmed by Carlo * *************************************/ //--------------------------------------------------------------------------= #include #include #include #include #include #include //--------------------------------------------------------------------------= // Declaring functions so they can be used within the library. //--------------------------------------------------------------------------= void Start(); void Leave(); void Terrain(string <errain); void Checktrap(string &Check); void Beastiary(); void Pause(); void Set(); void Text(int &Color); void Readme(); void Save(string &Name, int &Power, int &Level, long &XP, long &NextLvl, int &TotalHP, int &Strength, int &Dexterity, int &Intelligence, int &Wilderness, int &Barter, long &Attack, long &Defense, long &Gold, string &Weapon, string &Shield, string &Armor, string &One, string &Two, string &Three, string &Four, string &Five, int &Day, int &WeaponAR, int &ShieldDR, int &ArmorDR, int &Rations); void ASave(string &Name, int &Power, int &Level, long &XP, long &NextLvl, int &TotalHP, int &Strength, int &Dexterity, int &Intelligence, int &Wilderness, int &Barter, long &Attack, long &Defense, long &Gold, string &Weapon, string &Shield, string &Armor, string &One, string &Two, string &Three, string &Four, string &Five, int &Day, int &WeaponAR, int &ShieldDR, int &ArmorDR, int &Rations); void Logfile(string &Output); void Magicitem(int &MFChance, int &WeaponAR, int &ShieldDR, int &ArmorDR, string &Weapon, string &Shield, string &Armor, string &Shielduse, long &Attack, long &Defense, int &Dexterity, int &Level, string &Check, string &Wither); void Magiclist(); void ChooseMonster(int &Monstertype, string &MonsterName, string &MonsterChallenge, int &MonsterPower, int &MonsterAttack, int &MonsterDefense, int &MonsterHP, int &MonsterXP, int &MonsterGold, int &MFChance, int &Level, int &Power); //--------------------------------------------------------------------------= void Start() { long First, Second; string Username; ifstream LogSizeCheck("Log.txt", ios::in | ios::nocreate); Second = LogSizeCheck.tellg(); LogSizeCheck.seekg (0, ios::end); First = LogSizeCheck.tellg(); LogSizeCheck.close(); if ((First - Second) >= 20000) { ofstream LogClear("Log.txt", ios::trunc); LogClear.close(); } // Clear Log.txt ofstream LogENTER("Log.txt", ios::app); LogENTER<< "\nENTER\n"; LogENTER.close(); // Maximize screen keybd_event(VK_MENU,0x38,0,0); keybd_event(VK_RETURN,0x1c,0,0); keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0); ofstream LogFullscreen("Log.txt", ios::app); LogFullscreen<< "Fullscreen\n"; LogFullscreen.close(); randomize(); textcolor(LIGHTBLUE); textbackground(BLACK); clrscr(); gotoxy(1,1); cout<> First; Playfile1>> Username; Playfile1.close(); if (First == 0) { cout<< "Enter your Username: "; cin>> Username; if (Username.length() > 20) { cout<< "Maximum 20 charaters, re-enter: "; cin>> Username; } cout<< "Welcome " << Username << " to the Lands of Kestrel.\n\n"; getch(); cout<< "Thank you for downloading this program, I am sure you will like\n"; cout<< "it. As this is your first time playing, you may need to consult\n"; cout<< "the Readme for Help on getting started. Enjoy the game!\n"; getch(); clrscr(); gotoxy(1,2); } // Enter username First++; ofstream Playfile2("C:\\Datastore.key", ios::trunc); Playfile2<< First <> Playtimes; Playfile3>> Username; Playfile3.close(); if (Playtimes <= 0) Playtimes = 1; ifstream LogfileIN("Horizon\\Logs\\Time.log", ios::nocreate); LogfileIN>> Logtime; LogfileIN.close(); Logtime = (Logtime + (clock()/1000)); ofstream LogfileOUT("Horizon\\Logs\\Time.log"); LogfileOUT<< Logtime < 1) cout<< "Thank you " << Username << " for playing " << Playtimes << " times since installation.\n"; cout<< "Freeware programmed by Carlo.\n\n"; ofstream LogRuntime("Log.txt", ios::app); LogRuntime<< "Runtime: " << Days << " -> " << Hours << ":" << Minutes << "." << Remainder << "\n"; LogRuntime<< "EXIT\n"; LogRuntime.close(); time_t now; time(&now); printf("Current: %.24s.\n", ctime(&now)); cout<< "Runtime: (" << Days << " -> " << Hours << ":" << Minutes << "." << Remainder << ")\n"; cout<< " (Day/Hour/Minute/Second)\n"; getch(); exit(0); } //Leave---------------------------------------------------------------------= void Terrain(string <errain) { int Terraintype = 1+random(5); if (Terraintype == 1) LTerrain = "Forest"; else if (Terraintype == 2) LTerrain = "Plain"; else if (Terraintype == 3) LTerrain = "Mountain"; else if (Terraintype == 4) LTerrain = "Swamp"; else if (Terraintype == 5) LTerrain = "Hill"; else if (Terraintype == 6) LTerrain = "Badland"; } //Terrain-------------------------------------------------------------------= void Checktrap(string &Check) { while ((Check != "YES") && (Check != "Yes") && (Check != "NO") && (Check != "No") && (Check != "yes") && (Check != "no") && (Check != "Y") && (Check != "N") && (Check != "y") && (Check != "n")) { cout<< "\aYes or no? "; cin>> Check; } } //Checktrap-----------------------------------------------------------------= void Pause() { getch(); } //Pause---------------------------------------------------------------------= void Beastiary() { ofstream LogBeastiary("Log.txt", ios::app); LogBeastiary<< "Beastiary Accessed\n"; LogBeastiary.close(); string Beastiary; do{ clrscr(); gotoxy(1,2); cout<< "Beastiary\n\n"; cout<< "Enter the Monster you wish to learn about in the space below, or\n"; cout<< "type \'List\' for a complete listing of Monsters, or \'Return\' to\n"; cout<< "leave the Beastiary.\n\n"; cout<< "Entry: "; getline(cin, Beastiary); clrscr(); gotoxy(1,2); if ((Beastiary == "List") || (Beastiary == "list") || (Beastiary == "LIST")) { cout<< "Beastiary List\n\n"; cout<< "Air Elemental Giant Worm Skeleton\n"; cout<< "Animated Armor Gnoll Thief\n"; cout<< "Bandit Goblin Troll\n"; cout<< "Barbarian Golem Trolog\n"; cout<< "Basilisk Grub Vampire\n"; cout<< "Bear Harpy Voll\n"; cout<< "Behemoth Hobgoblin Water Elemental\n"; cout<< "Bladefly Hydra Werewolf\n"; cout<< "Bloodmaw Lizardman Wight\n"; cout<< "Cobra Manticore Wolf\n"; cout<< "Darkmaw Manvermin Wraith\n"; cout<< "Death Knight Medusa Wyvern\n"; cout<< "Demon Minotaur Zombie\n"; cout<< "Dog Mummy\n"; cout<< "Earth Elemental Ogre\n"; cout<< "Fire Elemental Orc\n"; cout<< "Ghost Orog\n"; cout<< "Ghoul Rat\n"; cout<< "Giant Sand Howler\n"; cout<< "Giant Scorpion Shadow\n"; cout<< "Giant Spider Snake\n"; getch(); } // List if ((Beastiary == "Hal'kiir") || (Beastiary == "Sinoko")) { cout<< "Record not found, no creature by this name exists.\n"; getch(); } // Hal'kiir or Sinoko else if ((Beastiary == "Air Elemental") || (Beastiary == "AIR ELEMENTAL") || (Beastiary == "air elemental")) { cout<< "Name: Air Elemental\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Transparent\n"; cout<< "Clothing: None\n"; cout<< "Weapon: Natural\n"; cout<< "Air Elementals vary in size, from tiny whisps to massive storms. They\n"; cout<< "have a vaguely human form, but their arms end in long nails that are used\n"; cout<< "for attacking. Air Elementals are known to move through solid objects,\n"; cout<< "and can infiltrate nearly anywhere.\n"; getch(); } // Air Elemental else if ((Beastiary == "Animated Armor") || (Beastiary == "ANIMATED ARMOR") || (Beastiary == "animated armor")) { cout<< "Name: Animated Armor\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Bronze\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Swords\n"; cout<< "These animated suits of various Armor have been given base intelligence\n"; cout<< "and a Weapon. They were used by Kestrel as expendable soldiers. Stronger\n"; cout<< "variants wear heavier Armor, and can pose quite a challenge.\n"; getch(); } // Animated Armor else if ((Beastiary == "Bandit") || (Beastiary == "BANDIT") || (Beastiary == "bandit")) { cout<< "Name: Bandit\n"; cout<< "Challenge: Easy\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Tan\n"; cout<< "Clothing: Basic\n"; cout<< "Weapon: Any\n"; cout<< "Bandits are still a problem along well travelled roads. They are known\n"; cout<< "to raid caravans or harass adventurers. Their wide arsenal of Weapons and\n"; cout<< "knowledge of tactics can pose a problem, but once confronted Bandits are\n"; cout<< "felled easily.\n"; getch(); } // Bandit else if ((Beastiary == "Barbarian") || (Beastiary == "BARBARIAN") || (Beastiary == "barbarian")) { cout<< "Name: Barbarian\n"; cout<< "Challenge: Easy\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Tan\n"; cout<< "Clothing: Furs\n"; cout<< "Weapon: Axe\n"; cout<< "Barbarians are not normally hostile, but are angered easily. They attack\n"; cout<< "using powerful sweeps induced by rage. A large group of Barbarians will\n"; cout<< "likely be encountered with a leader, a stronger version who has years of\n"; cout<< "battle experience. Barbarians are best taken down at long range.\n"; getch(); } // Barbarian else if ((Beastiary == "Basilisk") || (Beastiary == "BASILISK") || (Beastiary == "basilisk")) { cout<< "Name: Basilisk\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Red\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Basilisks are much feared for their ability to turn flesh to stone\n"; cout<< "with a mere gaze. When battling them, an adventurer must be very\n"; cout<< "wary to stay behind the beast. Basilisks have sharp claws and long\n"; cout<< "fangs to attack with, in case their gaze attack fails.\n"; getch(); } // Basilisk else if ((Beastiary == "Bear") || (Beastiary == "BEAR") || (Beastiary == "bear")) { cout<< "Name: Bear\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Large\n"; cout<< "Color: Brown, Black, or White\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Bears come in three possible colors, but their attitudes remain very\n"; cout<< "similar. Slow to anger, an attacking Bear can be a real problem.\n"; cout<< "However, the animals are easily hit, and thus no challenge to\n"; cout<< "a seasoned adventurer.\n"; getch(); } // Bear else if ((Beastiary == "Behemoth") || (Beastiary == "BEHEMOTH") || (Beastiary == "behemoth")) { cout<< "Name: Behemoth\n"; cout<< "Challenge: Very Difficult\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Huge\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Behemoths are large four legged creatures that are quite ferocious,\n"; cout<< "and always hungery. They attack with their two front legs, which\n"; cout<< "end in large sickle-like appendages. Their tough carapace is nearly\n"; cout<< "impossible to penetrate, and a charging Behemoth is much feared.\n"; getch(); } // Behemoth else if ((Beastiary == "Bladefly") || (Beastiary == "BLADEFLY") || (Beastiary == "bladefly")) { cout<< "Name: Bladefly\n"; cout<< "Challenge: Easy\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Small\n"; cout<< "Color: Green\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Blades\n"; cout<< "Bladefly's are small animals with dangerous blades protruding from\n"; cout<< "their frontal limbs. These blades can pierce all but the strongest\n"; cout<< "Armor. The mobility of the Bladefly makes it challenging to hit, but\n"; cout<< "once a blow is landed, the creature is easily felled.\n"; getch(); } // Bladefly else if ((Beastiary == "Bloodmaw") || (Beastiary == "BLOODMAW") || (Beastiary == "bloodmaw")) { cout<< "Name: Bloodmaw\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Gray\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "The Bloodmaw, a giant dog like creature with the head of a demon,\n"; cout<< "can pose quite a threat to all travellers. They have powerful claws\n"; cout<< "and razor sharp teeth. A scrape from a Bloodmaw will likely result\n"; cout<< "in paralysis, or disease, based on where the wound came from.\n"; getch(); } // Bloodmaw else if ((Beastiary == "Cobra") || (Beastiary == "COBRA") || (Beastiary == "cobra")) { cout<< "Name: Cobraw\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Small\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "The Cobra is a deadly snake that can inject a strong dose of venom\n"; cout<< "when it strikes. Although easily slain at long range, a Cobra in\n"; cout<< "close combat is a difficult opponent to strike.\n"; getch(); } // Cobra else if ((Beastiary == "Darkmaw") || (Beastiary == "DARKMAW") || (Beastiary == "darkmaw")) { cout<< "Name: Darkmaw\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "The Darkmaw is a wolf like creature with long wings growing from\n"; cout<< "its forelegs. Their unnatural Dexterity and mobility make the\n"; cout<< "Darkmaw a difficult foe to strike. Their bite is quite powerful\n"; cout<< "and painful.\n"; getch(); } // Darkmaw else if ((Beastiary == "Death Knight") || (Beastiary == "DEATH KNIGHT") || (Beastiary == "death knight")) { cout<< "Name: Death Knight\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Black\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Magical Swords\n"; cout<< "The Death Knight is a powerful Undead creature, an image of a\n"; cout<< "once glorious Knight. Now, using magically imbued Weapons, Death\n"; cout<< "Knights stalk the land, causing havoc in their wake.\n"; getch(); } // Death Knight else if ((Beastiary == "Demon") || (Beastiary == "DEMON") || (Beastiary == "demon")) { cout<< "Name: Demon\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Red and Black\n"; cout<< "Clothing: Furs\n"; cout<< "Weapon: Demon Blades\n"; cout<< "Demons are frightful creatures to behold. Though they wear little\n"; cout<< "or no Armor, a Demon has plenty of life. Well feared for their deadly\n"; cout<< "Weapons, Demons can inflict mortal wounds in a single stroke.\n"; getch(); } // Demon else if ((Beastiary == "Dog") || (Beastiary == "DOG") || (Beastiary == "dog")) { cout<< "Name: Dog\n"; cout<< "Challenge: Easy\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Small\n"; cout<< "Color: Brown\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Dogs are mostly harmless, unless they are starving or feel\n"; cout<< "threatened. They have little defense against attacks, and\n"; cout<< "little life. However, their powerful jaws can be a pain to\n"; cout<< "inexperienced adventurers.\n"; getch(); } // Dog else if ((Beastiary == "Earth Elemental") || (Beastiary == "EARTH ELEMENTAL") || (Beastiary == "earth elemental")) { cout<< "Name: Earth Elemental\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Brown\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Using their powerful stone studded fists, Earth Elementals can\n"; cout<< "smash the strongest of foes aside. Penetrating their outer shell\n"; cout<< "of rock can prove to be quite a problem. Strong, but slow, the Earth\n"; cout<< "Elemental is a foe to be reckoned with.\n"; getch(); } // Earth Elemental else if ((Beastiary == "Fire Elemental") || (Beastiary == "FIRE ELEMENTAL") || (Beastiary == "fire elemental")) { cout<< "Name: Fire Elemental\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Red\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Wreathed in flames, the Fire Elemental is a hard foe to combat\n"; cout<< "without the right Weapons. Ice and water do more damage against\n"; cout<< "their glowing skin. A strike from a Fire Elemental can leave\n"; cout<< "an adventurer marred for life.\n"; getch(); } // Fire Elemental else if ((Beastiary == "Ghost") || (Beastiary == "GHOST") || (Beastiary == "ghost")) { cout<< "Name: Ghost\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Transparent\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Ghosts require magical Weapons to even damage them. Their blows\n"; cout<< "can sap the strength of the hardiest of warriors, while their\n"; cout<< "shifting forms make it difficult to strike effectively against\n"; cout<< "Ghosts.\n"; getch(); } // Ghost else if ((Beastiary == "Ghoul") || (Beastiary == "GHOUL") || (Beastiary == "ghoul")) { cout<< "Name: Ghoul\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Gray\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "The Ghoul is quite a diverse opponent. They have no noticeable\n"; cout<< "weaknesses. Attack, defense, and their life are all balanced.\n"; cout<< "A Mace is the preferable Weapon against Ghouls, for it can crush\n"; cout<< "their weak flesh where a Sword would slide off.\n"; getch(); } // Ghoul else if ((Beastiary == "Giant") || (Beastiary == "GIANT") || (Beastiary == "giant")) { cout<< "Name: Giant\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Huge\n"; cout<< "Color: Tan\n"; cout<< "Clothing: Furs and Armor\n"; cout<< "Weapon: Treestumps\n"; cout<< "The Giant, a slow but powerful foe, has massive amounts of\n"; cout<< "life, but is easily hit. A single blow from their massive\n"; cout<< "treestump clubs can knock an adventurer unconcious.\n"; getch(); } // Giant else if ((Beastiary == "Giant Scorpion") || (Beastiary == "GIANT SCORPION") || (Beastiary == "giant scorpion")) { cout<< "Name: Giant Scorpion\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Bronze\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Relying mostly on its powerful stinger, the Giant Scorpion can\n"; cout<< "also use its claws. The deadly poison of a sting adds quite a\n"; cout<< "bit of power to all attacks.\n"; getch(); } // Giant Scorpion else if ((Beastiary == "Giant Spider") || (Beastiary == "GIANT SPIDER") || (Beastiary == "giant spider")) { cout<< "Name: Giant Spider\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Large\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "The stealthy Giant Spider can strike using a deadly bite. Large\n"; cout<< "fangs do average damage, while strong poison adds power. The\n"; cout<< "agility of a Giant Spider makes it hard to hit.\n"; getch(); } // Giant Spider else if ((Beastiary == "Giant Worm") || (Beastiary == "GIANT WORM") || (Beastiary == "giant worm")) { cout<< "Name: Giant Worm\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Small\n"; cout<< "Color: Purple\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Bearing viciously oversized jaws, the Giant Worm can be a\n"; cout<< "hazard to early adventurers. All attributes are balanced,\n"; cout<< "making the Giant Worm a crafty foe.\n"; getch(); } // Giant Worm else if ((Beastiary == "Gnoll") || (Beastiary == "GNOLL") || (Beastiary == "gnoll")) { cout<< "Name: Gnoll\n"; cout<< "Challenge: Easy\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Brown\n"; cout<< "Clothing: Furs\n"; cout<< "Weapon: Axe\n"; cout<< "A creature half man and half dog, the Gnoll uses its immense\n"; cout<< "strength and powerful Axe to slay any opposition. Its one\n"; cout<< "weakness is the ease of which a Gnoll can be struck.\n"; getch(); } // Gnoll else if ((Beastiary == "Goblin") || (Beastiary == "GOBLIN") || (Beastiary == "goblin")) { cout<< "Name: Goblin\n"; cout<< "Challenge: Very Easy\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Small\n"; cout<< "Color: Green or Yellow\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Sword\n"; cout<< "Well known for their cruelty, Goblins pose little problem\n"; cout<< "to all but the weakest of adventurers. Only in great numbers\n"; cout<< "do Goblins have any real power, otherwise they possess little\n"; cout<< "in the way of outstanding abilities.\n"; getch(); } // Goblin else if ((Beastiary == "Golem") || (Beastiary == "GOLEM") || (Beastiary == "golem")) { cout<< "Name: Golem\n"; cout<< "Challenge: Very Difficult\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Metal\n"; cout<< "Clothing: Metal\n"; cout<< "Weapon: Natural\n"; cout<< "Known for their inhuman strength and endurance, Golems are feared\n"; cout<< "for their combat prowess. Smashing foes with their bare metal hands,\n"; cout<< "a single blow can shatter bones.\n"; getch(); } // Golem else if ((Beastiary == "Grub") || (Beastiary == "GRUB") || (Beastiary == "grub")) { cout<< "Name: Grub\n"; cout<< "Challenge: Very Easy\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Small\n"; cout<< "Color: Blue\n"; cout<< "Clothing: Furs\n"; cout<< "Weapon: Dagger\n"; cout<< "Grubs, even smaller than Goblins, are crafty creatures. They have\n"; cout<< "learned how to avoid blows until they are nearly impossible to hit.\n"; cout<< "Although their damage is low, a battle with a Grub promises to be\n"; cout<< "drawn out.\n"; getch(); } // Grub else if ((Beastiary == "Harpy") || (Beastiary == "HARPY") || (Beastiary == "harpy")) { cout<< "Name: Harpy\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: White\n"; cout<< "Clothing: None\n"; cout<< "Weapon: Natural\n"; cout<< "Using their wings and long claws, Harpys can strike quickly and\n"; cout<< "without warning. When near death, they have been known to emit a\n"; cout<< "high pitched wail that can paralyse any attackers.\n"; getch(); } // Harpy else if ((Beastiary == "Hobgoblin") || (Beastiary == "HOBGOBLIN") || (Beastiary == "hobgoblin")) { cout<< "Name: Hobgoblin\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Orange\n"; cout<< "Clothing: Furs and Armor\n"; cout<< "Weapon: Maces\n"; cout<< "The larger cousin to the Goblin, Hobgoblins are well trained and\n"; cout<< "armed. To an experienced adventurer, they present the same problems\n"; cout<< "as a standard Goblin.\n"; getch(); } // Hobgoblin else if ((Beastiary == "Hydra") || (Beastiary == "HYDRA") || (Beastiary == "hydra")) { cout<< "Name: Hydra\n"; cout<< "Challenge: Very Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Huge\n"; cout<< "Color: Red\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "A standard Hydra has five heads, each with a mouth full of deadly\n"; cout<< "teeth. Known to attack villages and towns, Hydras have been seen\n"; cout<< "spewing forth great gouts of flames or other harmful substances.\n"; getch(); } // Hydra else if ((Beastiary == "Lizardman") || (Beastiary == "LIZARDMAN") || (Beastiary == "lizardman")) { cout<< "Name: Lizardman\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Large\n"; cout<< "Color: Green and Blue\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Spears\n"; cout<< "The Lizardmen hunt in tribes, using their knowledge of stealth\n"; cout<< "to set up deadly ambushes. Their long Spears grant them excellent\n"; cout<< "protection from melee, while their scaly hides make them nearly\n"; cout<< "immune to long range fire.\n"; getch(); } // Lizardman else if ((Beastiary == "Manticore") || (Beastiary == "MANTICORE") || (Beastiary == "manticore")) { cout<< "Name: Manticore\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Red and Orange\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Using its powerful jaws and long nails in close combat, or the\n"; cout<< "launchable spines from its tail, the Manticore is very hard to\n"; cout<< "destroy. Its wings add extra mobility and speed to their attacks.\n"; getch(); } // Manticore else if ((Beastiary == "Manvermin") || (Beastiary == "MANVERMIN") || (Beastiary == "manvermin")) { cout<< "Name: Manvermin\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Brown\n"; cout<< "Clothing: Furs and Armor\n"; cout<< "Weapon: Crossbow and Sword\n"; cout<< "Manvermin are the outcasts of society, half man and half rat.\n"; cout<< "Shunned to travel dark sewers and empty caverns, Manvermin have\n"; cout<< "developed a taste for humanoid flesh. They use Crossbows at long\n"; cout<< "range, and Swords and teeth in close combat.\n"; getch(); } // Manvermin else if ((Beastiary == "Medusa") || (Beastiary == "MEDUSA") || (Beastiary == "medusa")) { cout<< "Name: Medusa\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Black\n"; cout<< "Clothing: Robes\n"; cout<< "Weapon: Natural\n"; cout<< "Using their vicious poison tipped talons, or their petrifying gaze,\n"; cout<< "Medusa's are quite difficult. If an adventurer can survive the gaze\n"; cout<< "attack, and get close enough to strike, the Medusa will fall easily.\n"; getch(); } // Medudsa else if ((Beastiary == "Minotaur") || (Beastiary == "MINOTAUR") || (Beastiary == "minotaur")) { cout<< "Name: Minotaur\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Large\n"; cout<< "Color: Dark Brown\n"; cout<< "Clothing: Furs\n"; cout<< "Weapon: Axes\n"; cout<< "Using their powerful horns to stun foes, Minotaur's like to finish\n"; cout<< "off hapless victims with their massive Axes. Though easily struck,\n"; cout<< "a Minotaur's sheer strength carries it through most wounds.\n"; getch(); } // Minotaur else if ((Beastiary == "Mummy") || (Beastiary == "MUMMY") || (Beastiary == "mummy")) { cout<< "Name: Mummy\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Sickly Green\n"; cout<< "Clothing: Wrappings\n"; cout<< "Weapon: Natural\n"; cout<< "Although their attacks are powerful, and likely bearers of disease,\n"; cout<< "the Mummy is slow and can easily be killed at long range. Their lack\n"; cout<< "of any real Armor hinders their survival rate.\n"; getch(); } // Mummy else if ((Beastiary == "Ogre") || (Beastiary == "OGRE") || (Beastiary == "ogre")) { cout<< "Name: Ogre\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Tan\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Spears\n"; cout<< "Ogres are stupid and slow, but can deliver huge damage on a\n"; cout<< "successful strike. They wear light Armor, making hitting and\n"; cout<< "damaging them of little worry. Only a counterattack is a serious\n"; cout<< "danger.\n"; getch(); } // Ogre else if ((Beastiary == "Orc") || (Beastiary == "ORC") || (Beastiary == "orc")) { cout<< "Name: Orc\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Green\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Sword\n"; cout<< "Orcs are cunning creatures who bully those weaker than them. Strong\n"; cout<< "in combat, Orc's are hit and killed easily, and break when the battle\n"; cout<< "turns sour.\n"; getch(); } // Orc else if ((Beastiary == "Orog") || (Beastiary == "OROG") || (Beastiary == "orog")) { cout<< "Name: Orog\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Gray\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Axe\n"; cout<< "A horrible spawn of Orc and Ogre, the Orog combines the strong\n"; cout<< "points of both races to make quite a fearsome foe. Powerful on the\n"; cout<< "attack, while large enough to take most punishment.\n"; getch(); } // Orog else if ((Beastiary == "Rat") || (Beastiary == "RAT") || (Beastiary == "rat")) { cout<< "Name: Rat\n"; cout<< "Challenge: Very Easy\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Small\n"; cout<< "Color: Gray\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Tiny and weak, the Rat poses no problem to any adventurer.\n"; cout<< "An average commoner can easily kill a Rat. Low life, pitiful\n"; cout<< "attack and defense, Rats have no redeemable qualities at all.\n"; getch(); } // Rat else if ((Beastiary == "Sand Howler") || (Beastiary == "SAND HOWLER") || (Beastiary == "sand howler")) { cout<< "Name: Sand Howler\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Desert Brown\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Similar is look to a dog, the Sand Howler has a few noticeable\n"; cout<< "differences. It has long fur protruding from its back, and all\n"; cout<< "its breathes are labored and sound wheezy. Using the wind as a\n"; cout<< "powerful ally, the Sand Howler can also use its natural Weapons.\n"; getch(); } // Sand Howler else if ((Beastiary == "Shadow") || (Beastiary == "SHADOW") || (Beastiary == "shadow")) { cout<< "Name: Shadow\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Using its icy claws to swipe at foes, the Shadow can drain the\n"; cout<< "will out of an adventurer with each blow. Their transparent\n"; cout<< "coloration and shifty movement makes it hard to pinpoint, and thus\n"; cout<< "attack, a Shadow.\n"; getch(); } // Shadow else if ((Beastiary == "Snake") || (Beastiary == "SNAKE") || (Beastiary == "snake")) { cout<< "Name: Snake\n"; cout<< "Challenge: Easy\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Small\n"; cout<< "Color: Yellow and Red\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Small but deadly, the Snake can induce a dose of poison with every\n"; cout<< "bite. Hard to strike because of its thin shape and constant movement,\n"; cout<< "a Snake can be quite a problem. Long range is of little use, as hitting\n"; cout<< "becomes a problem to all but the most skilled archers.\n"; getch(); } // Snake else if ((Beastiary == "Skeleton") || (Beastiary == "SKELETON") || (Beastiary == "skeleton")) { cout<< "Name: Skeleton\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Bone White\n"; cout<< "Clothing: None\n"; cout<< "Weapon: Greatsword\n"; cout<< "Skeletons are well balanced foes with a powerful attack. However,\n"; cout<< "they possess one glaring weakness. When a Mace is used against them,\n"; cout<< "double or triple the damage has been known to occur. Other Weapons\n"; cout<< "have a less than expected performance.\n"; getch(); } // Skeleton else if ((Beastiary == "Thief") || (Beastiary == "THIEF") || (Beastiary == "thief")) { cout<< "Name: Thief\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Tan\n"; cout<< "Clothing: Cloak and Armor\n"; cout<< "Weapon: Dagger\n"; cout<< "As their namesake suggests, a Thief can leave an encounter with\n"; cout<< "more gold than an adventurer would like to lose. When a battle\n"; cout<< "turns against a Thief, they will flee, taking as much gold as they\n"; cout<< "can get their greedy hands on.\n"; getch(); } // Thief else if ((Beastiary == "Troll") || (Beastiary == "TROLL") || (Beastiary == "troll")) { cout<< "Name: Troll\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Varies\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Using their powers of regeneration, a Troll is nearly unstoppable.\n"; cout<< "Their skin tone changes in accordance with the seasons. They swipe\n"; cout<< "at foes with powerful long claws, while a thick hide protects their\n"; cout<< "entire body.\n"; getch(); } // Troll else if ((Beastiary == "Trolog") || (Beastiary == "TROLOG") || (Beastiary == "trolog")) { cout<< "Name: Trolog\n"; cout<< "Challenge: Difficult\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Greatsword\n"; cout<< "A mix between an Ogre and a Troll, the Trolog has weak regenerative\n"; cout<< "powers, as well as the Weapons mastery of an Ogre. Using a Greatsword,\n"; cout<< "a healing Trolog is quite powerful, but rare.\n"; getch(); } // Trolog else if ((Beastiary == "Vampire") || (Beastiary == "VAMPIRE") || (Beastiary == "vampire")) { cout<< "Name: Vampire\n"; cout<< "Challenge: Very Difficult\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: White and Black\n"; cout<< "Clothing: Armor\n"; cout<< "Weapon: Natural\n"; cout<< "Prefering to hypnotize victims before draining them of blood, a\n"; cout<< "Vampire can only be harmed by magical Weapons. Death by a Vampire\n"; cout<< "is usually unpleasant, and adventurers have been known to wake up\n"; cout<< "as Zombies, cursed in their new form.\n"; getch(); } // Vampire else if ((Beastiary == "Voll") || (Beastiary == "VOLL") || (Beastiary == "voll")) { cout<< "Name: Voll\n"; cout<< "Challenge: Unknown\n"; cout<< "Frequency: Unknown\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Changes\n"; cout<< "Clothing: Unknown\n"; cout<< "Weapon: Natural\n"; cout<< "Little is known about the Voll, a strange creature whose body is\n"; cout<< "constantly shifting colors. It is difficult to tell what a Voll is\n"; cout<< "wearing or using because of this. They have several abilities which\n"; cout<< "are rumored, but never proven.\n"; getch(); } // Voll else if ((Beastiary == "Water Elemental") || (Beastiary == "WATER ELEMENTAL") || (Beastiary == "water elemental")) { cout<< "Name: Water Elemental\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Very Rare\n\n"; cout<< "Size: Huge\n"; cout<< "Color: Blue\n"; cout<< "Clothing: None\n"; cout<< "Weapon: Natural\n"; cout<< "Using huge fists to pummel opponents, Water Elementals can call\n"; cout<< "upon water sources for strength. Rarely seen away from bodies of\n"; cout<< "water. Fire does greater damage against Water Elementals, but also\n"; cout<< "enrages them.\n"; getch(); } // Water Elemental else if ((Beastiary == "Werewolf") || (Beastiary == "WEREWOLF") || (Beastiary == "werewolf")) { cout<< "Name: Werewolf\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Large\n"; cout<< "Color: Black and Brown\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Cursed with polymorphing, a Werewolf must kill to survive. Using\n"; cout<< "long talons and razor sharp teeth, they can move quickly and silently\n"; cout<< "up to prey, leaping out to surprise adventurers.\n"; getch(); } // Werewolf else if ((Beastiary == "Wight") || (Beastiary == "WIGHT") || (Beastiary == "wight")) { cout<< "Name: Wight\n"; cout<< "Challenge: Hard\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Black\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "A strike from a Wight can either instill disease or drain away\n"; cout<< "life. Wights have been known to steal the souls of victims they\n"; cout<< "kill, growing stronger as they do so.\n"; getch(); } // Wight else if ((Beastiary == "Wolf") || (Beastiary == "WOLF") || (Beastiary == "wolf")) { cout<< "Name: Wolf\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Common\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Gray\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "A Wolf is quite a challenging foe. Using their great agility and\n"; cout<< "strong jaws, a rampaging Wolf can be a hard thing for an early\n"; cout<< "adventurer to stop. They have an uncanny knack for avoiding damage.\n"; getch(); } // Wolf else if ((Beastiary == "Wraith") || (Beastiary == "WRAITH") || (Beastiary == "wraith")) { cout<< "Name: Wraith\n"; cout<< "Challenge: Very Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Transparent\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "A Wraith saps away strength and slows the target with every strike.\n"; cout<< "Often times they just float through adventurers, knowing their\n"; cout<< "ghostly forms will damage the living. Difficult to see and attack\n"; cout<< "at night, while Wraith's hardly ever venture out in daylight.\n"; getch(); } // Wraith else if ((Beastiary == "Wyvern") || (Beastiary == "WYVERN") || (Beastiary == "wyvern")) { cout<< "Name: Wyvern\n"; cout<< "Challenge: Very Difficult\n"; cout<< "Frequency: Rare\n\n"; cout<< "Size: Huge\n"; cout<< "Color: Gold\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Whipping about poisonous tails, a Wyvern is nearly impossible to\n"; cout<< "damage. Their heavy scales and razor sharp spines make it painful\n"; cout<< "to get near, while claws and teeth can neatly snap most adventurers\n"; cout<< "in half.\n"; getch(); } // Wyvern else if ((Beastiary == "Zombie") || (Beastiary == "ZOMBIE") || (Beastiary == "zombie")) { cout<< "Name: Zombie\n"; cout<< "Challenge: Normal\n"; cout<< "Frequency: Uncommon\n\n"; cout<< "Size: Medium\n"; cout<< "Color: Pale Gray\n"; cout<< "Clothing: Natural\n"; cout<< "Weapon: Natural\n"; cout<< "Zombies, mindless minions of long dead masters, are easily killed\n"; cout<< "at long range. In close combat their heavy, sickly fists can wreak\n"; cout<< "havoc on the unarmored.\n"; getch(); } // Zombie }while ((Beastiary != "Return") && (Beastiary != "return") && (Beastiary != "RETURN")); clrscr(); gotoxy(1,2); } //Beastiary-----------------------------------------------------------------= void Set() { getch(); clrscr(); gotoxy(1,2); } //Set-----------------------------------------------------------------------= void Text(int &Color) { int Temp = 1+random(8); if (Color == 1) textcolor(LIGHTGRAY); else if (Color == 2) textcolor(BLUE); else if (Color == 3) textcolor(GREEN); else if (Color == 4) textcolor(CYAN); else if (Color == 5) textcolor(RED); else if (Color == 6) textcolor(MAGENTA); else if (Color == 7) textcolor(BROWN); else if (Color == 8) textcolor(YELLOW); else if (Color == 9) textcolor(WHITE); else if (Color == 10) { if (Temp == 1) { textcolor(BLUE); Color = 2; } else if (Temp == 2) { textcolor(GREEN); Color = 3; } else if (Temp == 3) { textcolor(CYAN); Color = 4; } else if (Temp == 4) { textcolor(RED); Color = 5; } else if (Temp == 5) { textcolor(MAGENTA); Color = 6; } else if (Temp == 6) { textcolor(BROWN); Color = 7; } else if (Temp == 7) { textcolor(YELLOW); Color = 8; } else if (Temp == 8) { textcolor(WHITE); Color = 9; } else if (Temp == 9) { textcolor(LIGHTGRAY); Color = 1; } } // Random } //Text Color----------------------------------------------------------------= void Readme() { ofstream LogReadme("Log.txt", ios::app); LogReadme<< "Readme Accessed\n"; LogReadme.close(); // Output Readme ofstream Readmefile("Horizon\\Readme\\Horizon Readme.doc", ios::trunc); Readmefile<< "www.angelfire.com/realm2/horizon/files.html\n\n"; Readmefile<< " ***************************** \n"; Readmefile<< " * HORIZON: LANDS OF KESTREL * \n"; Readmefile<< " * Readme File * \n"; Readmefile<< " * By Carlo * \n"; Readmefile<< " ***************************** \n\n\n"; Readmefile<< "Background\n"; Readmefile<< "The fair land of Kestrel, a place of rolling hills, deep forests, and\n"; Readmefile<< "kind townsfolk. Once the land was ruled by a dark mage named Kestrel.\n"; Readmefile<< "In his arrogance, he named the entire land after himself. The townsfolk\n"; Readmefile<< "protested, but they were quickly silenced. Eventually, Kestrel died, for\n"; Readmefile<< "reasons unknown. Some say he merely moved to a different plane of existence,\n"; Readmefile<< "and will one day return to reclaim his throne. After Kestrel's Fall, there\n"; Readmefile<< "was a great time of Chaos. Out of this time rose a hero, one named Tunher.\n"; Readmefile<< "He had been vocal in his protests of Kestrel, and was a natural leader.\n"; Readmefile<< "However, he felt the tug of adventure at his heart, and so left the open\n"; Readmefile<< "throne to his most trusted friend Khaldrick. The original name of the land\n"; Readmefile<< "was forgotten, and so the townsfolk accepted Kestrel as their home. Under\n"; Readmefile<< "Khaldrick's guidance the lands flourished, towns were rebuilt and everything\n"; Readmefile<< "was as it had been hundreds of years before Kestrel's evil reign. Khaldrick\n"; Readmefile<< "eventually passed away, but his lineage stepped up to take the throne. Kestrel\n"; Readmefile<< "did not return for five generations, and his name is now a forgotten word\n"; Readmefile<< "of the past, nothing more than the name of the land. His evil still remains\n"; Readmefile<< "though, lingering in the air. During his time, many revolts tried to throw\n"; Readmefile<< "him from the throne, but they never succeeded. This is because Kestrel kept\n"; Readmefile<< "any army of foul creatures read to slay any that opposed him. Armed with\n"; Readmefile<< "magical weapons forged through Kestrel's magic, they enforced any of the\n"; Readmefile<< "laws Kestrel wrote. After Kestrel's Fall, these creatures lost their master,\n"; Readmefile<< "and took up home in the dark wilderness. To this day they remain, as much\n"; Readmefile<< "a part of the land as any other race. During peace time, much of the magic\n"; Readmefile<< "was lost, except for the remaining weapons of Kestrel's horde.\n"; Readmefile<< "No more weapons of this quality are crafted, and no magic is practiced.\n"; Readmefile<< "Often time small scale wars are fought over territory disputes, but generally\n"; Readmefile<< "things remain calm. However, the monsters are still considered evil, and their\n"; Readmefile<< "very nature brings about heroes and adventurers to slay the foul creatures. You\n"; Readmefile<< "are one such hero, travelled far on the promise of battles, riches, and fame.\n"; Readmefile<< "In the Lands of Kestrel, you may just find all you look for.\n\n"; Readmefile<< "Main Menu (Enter Realm) Help\n"; Readmefile<< "Once all the options have been set, you can access this feature to enter the\n"; Readmefile<< "actual gameplay area. A screen will come up showing some general information\n"; Readmefile<< "about your character that can be useful when you are adventuring. You are\n"; Readmefile<< "presented with the chance to use several commands. Enter Help or ? at any time\n"; Readmefile<< "to bring up a screen with all possible commands.\n"; Readmefile<< "Quit - This will Quit the game, saving your character as it does so.\n"; Readmefile<< "Sleep - When you sleep, a Day will pass and you will use a Ration, while at the\n"; Readmefile<< "same time recovering several Hitpoints from the rest.\n"; Readmefile<< "Inventory - You can open your Inventory, viewing all your items, as well as\n"; Readmefile<< "your character's information. You can carry 1 Weapon, 1 Shield, 1 Armor,\n"; Readmefile<< "50 Rations, 4 Healing Potions, and 90000gp.\n"; Readmefile<< "Enter - You can only use this command if the Terrain you are at is a Town. You\n"; Readmefile<< "will enter a town, allowing you to purchase Weapons and other items.\n"; Readmefile<< "Adventure - Once this is chosen, you will be asked how many Days you wish to\n"; Readmefile<< "Adventure. You cannot Adventure for less than 5 Days, and you must have enough\n"; Readmefile<< "Rations to survive the entire time.\n\n"; Readmefile<< "Main Menu (Enter Realm - Adventuring) Help\n"; Readmefile<< "When you are Adventuring, you have left the Town and can slay Monsters and\n"; Readmefile<< "collect Treasure. Enter Help or ? at this screen to bring up a list of commands\n"; Readmefile<< "you can use. There is one new command here, and that is Travel.\n"; Readmefile<< "Travel - When selected, your character will Travel for a single Day, and\n"; Readmefile<< "cross into a different type of Terrain.\n"; Readmefile<< "Whenever you Travel or Sleep, there is a chance that Monsters will come and\n"; Readmefile<< "attack you. Combat is quite simple, you can access your Inventory, Attack, or\n"; Readmefile<< "try to Flee. Fleeing is based on your Wilderness skill, as well as a random\n"; Readmefile<< "factor. When in your Inventory, you can enter a number (1-5) of a backpack\n"; Readmefile<< "slot to use the item in that slot. Enter 'Return' to leave the Inventory.\n\n"; Readmefile<< "Main Menu (Character - New Character) Help\n"; Readmefile<< "You can create a new character here. You must select this option when you first\n"; Readmefile<< "start the game, or when an old character dies. You will first be prompted for\n"; Readmefile<< "a name. A minimum of 3 characters is necessary, while you may only place 15\n"; Readmefile<< "characters as a maximum. Any name you wish can be used. Note that no spaces\n"; Readmefile<< "are allowed. Next you will be shown your 3 main statistics: Strength, Dexterity\n"; Readmefile<< "and Intelligence. Each number is present for you to see, and is generated\n"; Readmefile<< "between 20 and 30. You can place 5 points into a single statistic. Strength\n"; Readmefile<< "affects your Attack, while Dexterity helps your Defense. Intelligence will\n"; Readmefile<< "will give bonus experience for slaying Monsters. Next you must choose how\n"; Readmefile<< "many points to allocate into Barter and Wilderness. You have 20 points total.\n"; Readmefile<< "The points can be placed into the stats however you like, you don't even have\n"; Readmefile<< "to put the points into one of them if you don't want to. Wilderness affects\n"; Readmefile<< "your chance to Flee from combat, as well as giving you a chance to avoid\n"; Readmefile<< "combat when Adventuring, by spotting a Monster. Barter is useful in Towns,\n"; Readmefile<< "where it gives you a discount on items you may purchase. Note that a\n"; Readmefile<< "character will retire after 9200 Days (around 25 years) of Adventuring.\n"; Readmefile<< "Strength, Dexterity, and Intelligence cannot be raised above 900, while\n"; Readmefile<< "Wilderness and Barter cannot exceed 100.\n\n"; Readmefile<< "Main Menu (Character - Save Character) Help\n"; Readmefile<< "You can choose to Save a created character to Character.hcs. Note that this\n"; Readmefile<< "will override any previously Saved character. Also be aware that your character\n"; Readmefile<< "will be Saved when exiting the game as well as every 10 Days the game will\n"; Readmefile<< "Autosave.\n\n"; Readmefile<< "Main Menu (Character - Load Character) Help\n"; Readmefile<< "You can choose to Load a Saved character from the Character.hcs file. Loading a\n"; Readmefile<< "character will replace the current character.\n\n"; Readmefile<< "Main Menu (Character - Delete Character) Help\n"; Readmefile<< "This option will Delete the Saved character in the Character.hcs file. Once a\n"; Readmefile<< "character is Deleted, they cannot be Loaded or recovered, so make sure you want\n"; Readmefile<< "to remove the character.\n\n"; Readmefile<< "Main Menu (Character - Output Character) Help\n"; Readmefile<< "When selected, the current character will have their information Output to\n"; Readmefile<< "the document Output.doc. Note that Outputting a character will override any\n"; Readmefile<< "old characters who are stored in Output.doc.\n\n"; Readmefile<< "Main Menu (Options - Text Color) Help\n"; Readmefile<< "You can select any color you wish for the text. Default is Light Gray, and\n"; Readmefile<< "the color that the game begins with. If you select Random, a color from the\n"; Readmefile<< "list will be chosen for you. The color you choose will be stored in the file\n"; Readmefile<< "Horizon.cfg.\n\n"; Readmefile<< "Main Menu (Options - Reset Components) Help\n"; Readmefile<< "Here you can clear Horizon.cfg, Character.hcs, Custom.bin, and Time.log. These\n"; Readmefile<< "files are created by the program throughout your playing time. Horizon.cfg keeps\n"; Readmefile<< "track of all your choices about Text Color and similar matters. All character\n"; Readmefile<< "data is stored on Character.hcs. Time.log is a file modified every time the game\n"; Readmefile<< "is accessed. It keeps track of how many seconds you have been playing the game,\n"; Readmefile<< "from the first time you access the program to the very last time you exit it.\n"; Readmefile<< "Custom.bin manages all custom Weapons created. When Log.txt exceeds 20kb it\n"; Readmefile<< "automatically cleared. All files are created in C:\\Horizon base directory.\n\n"; Readmefile<< "Main Menu (Options - Customization) Help\n"; Readmefile<< "Customization allows the Creation, Saving, and Loading of user made\n"; Readmefile<< "Weapons. If no Customization is added, the default Weapon is the Dagger.\n"; Readmefile<< "Although some will use this as a cheating tool to make overpowering\n"; Readmefile<< "Weapons, others will use it as it was meant to be used, to make items\n"; Readmefile<< "that they like but were not implemented into the game. If you choose\n"; Readmefile<< "to reset Custom.bin, the custom Weapon will become the default Dagger,\n"; Readmefile<< "and Custom.bin (where the custom Weapon is stored) will be removed from\n"; Readmefile<< "your system.\n\n"; Readmefile<< "Main Menu (Options - Set Autosave) Help\n"; Readmefile<< "You can choose when you want your character to be automatically Saved.\n"; Readmefile<< "If you enter 0, the character will never be Autosaved. The default is to\n"; Readmefile<< "Save every 10 Days. The Autosave date is stored in Horizon.cfg.\n\n"; Readmefile<< "Main Menu (Catalog) Help\n"; Readmefile<< "The catalog is a special tool that will help you learn more about the\n"; Readmefile<< "various elements of the land. When using the catalog, you have two\n"; Readmefile<< "choices. You can either access the Beastiary, which is an information\n"; Readmefile<< "guide to all the Monsters, or Magic Items, which shows the abilities\n"; Readmefile<< "of any Magic Item you may find.\n\n"; Readmefile<< "Main Menu (Catalog - Beastiary) Help\n"; Readmefile<< "If you select this option, you will have a chance to learn more about\n"; Readmefile<< "the creatures you will encounter throughout your travels. Either enter\n"; Readmefile<< "'List' here to view a complete list of all monsters. Once you have found\n"; Readmefile<< "a creature you wish to learn more about, return to the main Beastiary and\n"; Readmefile<< "enter the creatures name in the space provided. You can learn about how\n"; Readmefile<< "challenging it is, how it looks, and general information concerning your\n"; Readmefile<< "choice. Enter 'Return' to leave the Beastiary.\n\n"; Readmefile<< "Main Menu (Catalog - Magic List) Help\n"; Readmefile<< "You can use this feature to read about all the Magic Items you may\n"; Readmefile<< "find or already own. In the space provided, type in the name of a\n"; Readmefile<< "Magic Item you wish to investigate, or enter 'List' for a complete\n"; Readmefile<< "listing of every Magic Item. To leave the Magic Item catalog section\n"; Readmefile<< "enter 'Return' in the space to leave the Magic List.\n\n"; Readmefile<< "Editing Codes\n"; Readmefile<< "Below are 7 codes that can be used at your desire. The game is meant\n"; Readmefile<< "to be played without codes, but these may help you get started or test\n"; Readmefile<< "out a certain facet of the game. Under no circumstances is using codes\n"; Readmefile<< "considered right, they are merely put here to help players from getting\n"; Readmefile<< "frustrated. If you want to play the game as it was meant to be, and are\n"; Readmefile<< "having no trouble with the game, then be smart and skip this section.\n"; Readmefile<< "Once used, there is no indication besides the change in numbers of the\n"; Readmefile<< "codes working.\n\n"; Readmefile<< "At Realm screen (non-adventuring): Gold500\n"; Readmefile<< "At Realm screen (adventuring) : Day1\n"; Readmefile<< "At Realm screen (adventuring) : XP500\n"; Readmefile<< "At Realm screen (adventuring) : Magicfind\n"; Readmefile<< "Inside Inventory screen (any) : Healme\n"; Readmefile<< "Inside Inventory screen (any) : Rations50\n"; Readmefile<< "At Combat Screen : Killall\n\n"; // End Output ofstream LogOutputReadme("Log.txt", ios::app); LogOutputReadme<< "Output Readme.doc\n"; LogOutputReadme.close(); string Action; do{ clrscr(); gotoxy(1,2); cout<< "Readme Menu\n"; cout<< "What area do you need help with?\n\n"; cout<< "1. Background\n"; cout<< "2. Realm and Adventuring\n"; cout<< "3. Character\n"; cout<< "4. Options\n"; cout<< "5. Catalog\n"; cout<< "6. Editing Codes\n"; cout<< "7. Return to Main Menu\n"; cout<< "Selection: "; cin>> Action; while ((Action != "1") && (Action != "2") && (Action != "3") && (Action != "4") && (Action != "5") && (Action != "6") && (Action != "7")) { cout<< "\aSelection: "; cin>> Action; } // Error trap clrscr(); gotoxy(1,2); if (Action == "1") { cout<< "Background\n\n"; cout<< "The fair land of Kestrel, a place of rolling hills, deep forests, and\n"; cout<< "kind townsfolk. Once the land was ruled by a dark mage named Kestrel.\n"; cout<< "In his arrogance, he named the entire land after himself. The townsfolk\n"; cout<< "protested, but they were quickly silenced. Eventually, Kestrel died, for\n"; cout<< "reasons unknown. Some say he merely moved to a different plane of existence,\n"; cout<< "and will one day return to reclaim his throne. After Kestrel's Fall, there\n"; cout<< "was a great time of Chaos. Out of this time rose a hero, one named Tunher.\n"; cout<< "He had been vocal in his protests of Kestrel, and was a natural leader.\n"; cout<< "However, he felt the tug of adventure at his heart, and so left the open\n"; cout<< "throne to his most trusted friend Khaldrick. The original name of the land\n"; cout<< "was forgotten, and so the townsfolk accepted Kestrel as their home. Under\n"; cout<< "Khaldrick's guidance the lands flourished, towns were rebuilt and everything\n"; cout<< "was as it had been hundreds of years before Kestrel's evil reign. Khaldrick\n"; cout<< "eventually passed away, but his lineage stepped up to take the throne. Kestrel\n"; cout<< "did not return for five generations, and his name is now a forgotten word\n"; cout<< "of the past, nothing more than the name of the land. His evil still remains\n"; cout<< "though, lingering in the air. During his time, many revolts tried to throw\n"; cout<< "him from the throne, but they never succeeded. This is because Kestrel kept\n"; cout<< "any army of foul creatures read to slay any that opposed him. Armed with\n"; cout<< "magical weapons forged through Kestrel's magic, they enforced any of the\n"; cout<< "laws Kestrel wrote. After Kestrel's Fall, these creatures lost their master,\n"; Set(); cout<< "Background (continued)\n\n"; cout<< "and took up home in the dark wilderness. To this day they remain, as much\n"; cout<< "a part of the land as any other race. During peace time, much of the magic\n"; cout<< "was lost, except for the remaining weapons of Kestrel's horde.\n"; cout<< "No more weapons of this quality are crafted, and no magic is practiced.\n"; cout<< "Often time small scale wars are fought over territory disputes, but generally\n"; cout<< "things remain calm. However, the monsters are still considered evil, and their\n"; cout<< "very nature brings about heroes and adventurers to slay the foul creatures. You\n"; cout<< "are one such hero, travelled far on the promise of battles, riches, and fame.\n"; cout<< "In the Lands of Kestrel, you may just find all you look for.\n"; Set(); } // Background else if (Action == "2") { cout<< "Main Menu (Enter Realm) Help\n\n"; cout<< "Once all the options have been set, you can access this feature to enter the\n"; cout<< "actual gameplay area. A screen will come up showing some general information\n"; cout<< "about your character that can be useful when you are adventuring. You are\n"; cout<< "presented with the chance to use several commands. Enter Help or ? at any time\n"; cout<< "to bring up a screen with all possible commands.\n"; cout<< "Quit - This will Quit the game, saving your character as it does so.\n"; cout<< "Sleep - When you sleep, a Day will pass and you will use a Ration, while at the\n"; cout<< "same time recovering several Hitpoints from the rest.\n"; cout<< "Inventory - You can open your Inventory, viewing all your items, as well as\n"; cout<< "your character's information. You can carry 1 Weapon, 1 Shield, 1 Armor,\n"; cout<< "50 Rations, 4 Healing Potions, and 90000gp.\n"; cout<< "Enter - You can only use this command if the Terrain you are at is a Town. You\n"; cout<< "will enter a town, allowing you to purchase Weapons and other items.\n"; cout<< "Adventure - Once this is chosen, you will be asked how many Days you wish to\n"; cout<< "Adventure. You cannot Adventure for less than 5 Days, and you must have enough\n"; cout<< "Rations to survive the entire time.\n"; Set(); cout<< "Main Menu (Enter Realm - Adventuring) Help\n\n"; cout<< "When you are Adventuring, you have left the Town and can slay Monsters and\n"; cout<< "collect Treasure. Enter Help or ? at this screen to bring up a list of commands\n"; cout<< "you can use. There is one new command here, and that is Travel.\n"; cout<< "Travel - When selected, your character will Travel for a single Day, and\n"; cout<< "cross into a different type of Terrain.\n"; cout<< "Whenever you Travel or Sleep, there is a chance that Monsters will come and\n"; cout<< "attack you. Combat is quite simple, you can access your Inventory, Attack, or\n"; cout<< "try to Flee. Fleeing is based on your Wilderness skill, as well as a random\n"; cout<< "factor. When in your Inventory, you can enter a number (1-5) of a backpack\n"; cout<< "slot to use the item in that slot. Enter 'Return' to leave the Inventory.\n"; Set(); } // Enter Realm / Adventuring else if (Action == "3") { cout<< "Main Menu (Character - New Character) Help\n\n"; cout<< "You can create a new character here. You must select this option when you first\n"; cout<< "start the game, or when an old character dies. You will first be prompted for\n"; cout<< "a name. A minimum of 3 characters is necessary, while you may only place 15\n"; cout<< "characters as a maximum. Any name you wish can be used. Note that no spaces\n"; cout<< "are allowed. Next you will be shown your 3 main statistics: Strength, Dexterity\n"; cout<< "and Intelligence. Each number is present for you to see, and is generated\n"; cout<< "between 20 and 30. You can place 5 points into a single statistic. Strength\n"; cout<< "affects your Attack, while Dexterity helps your Defense. Intelligence will\n"; cout<< "will give bonus experience for slaying Monsters. Next you must choose how\n"; cout<< "many points to allocate into Barter and Wilderness. You have 20 points total.\n"; cout<< "The points can be placed into the stats however you like, you don't even have\n"; cout<< "to put the points into one of them if you don't want to. Wilderness affects\n"; cout<< "your chance to Flee from combat, as well as giving you a chance to avoid\n"; cout<< "combat when adventuring, by spotting a Monster. Barter is useful in Towns,\n"; cout<< "where it gives you a discount on items you may purchase. Note that a\n"; cout<< "a character will retire automatically after 9200 Days (around 25 years)\n"; cout<< "of Adventuring. Strength, Dexterity, and Intelligence cannot be raised above\n"; cout<< "900, while Wilderness and Barter cannot exceed 100.\n"; Set(); cout<< "Main Menu (Character - Save Character) Help\n\n"; cout<< "You can choose to Save a created character to Character.hcs. Note that this\n"; cout<< "will override any previously Saved character. Also be aware that your character\n"; cout<< "will be saved when exiting the game as well as every 10 Days the game will\n"; cout<< "Autosave.\n"; Set(); cout<< "Main Menu (Character - Load Character) Help\n\n"; cout<< "You can choose to Load a Saved character from the Character.hcs file. Loading a\n"; cout<< "character will replace the current character.\n"; Set(); cout<< "Main Menu (Character - Delete Character) Help\n\n"; cout<< "This option will Delete the Saved character in the Character.hcs file. Once a\n"; cout<< "character is Deleted, they cannot be Loaded or recovered, so make sure you want\n"; cout<< "to remove the character.\n"; Set(); cout<< "Main Menu (Character - Output Character) Help\n\n"; cout<< "When selected, the current character will have their information Output to\n"; cout<< "the document Output.doc. Note that Outputting a character will override any\n"; cout<< "old characters who are stored in Output.doc.\n"; Set(); } // Character else if (Action == "4") { cout<< "Main Menu (Options - Text Color) Help\n\n"; cout<< "You can select any color you wish for the text. Default is Light Gray, and\n"; cout<< "the color that the game begins with. If you select Random, a color from the\n"; cout<< "list will be chosen for you. The color you choose will be stored in the file\n"; cout<< "Horizon.cfg.\n"; Set(); cout<< "Main Menu (Options - Reset Components) Help\n\n"; cout<< "Here you can clear Horizon.cfg, Character.hcs, Custom.bin, and Time.log. These\n"; cout<< "files are created by the program throughout your playing time. Horizon.cfg\n"; cout<< "keeps track of all your choices about Text Color and similar matters. All\n"; cout<< "character data is stored on Character.hcs. Time.log is a file modified every\n"; cout<< "time the game is accessed. It keeps track of how many seconds you have been\n"; cout<< "playing the game, from the first time you access the program to the very last\n"; cout<< "time you exit it. Custom.bin manages all custom Weapons created. When Log.txt\n"; cout<< "exceeds 20kb it is automatically cleared. All files are created in C:\\Horizon\n"; cout<< "base directory.\n"; Set(); cout<< "Main Menu (Options - Customization) Help\n\n"; cout<< "Customization allows the Creation, Saving, and Loading of user made\n"; cout<< "Weapons. If no Customization is added, the default Weapon is the Dagger.\n"; cout<< "Although some will use this as a cheating tool to make overpowering\n"; cout<< "Weapons, others will use it as it was meant to be used, to make items\n"; cout<< "that they like but were not implemented into the game. If you choose\n"; cout<< "to reset Custom.bin, the custom Weapon will become the default Dagger,\n"; cout<< "and Custom.bin (where the custom Weapon is stored) will be removed from\n"; cout<< "your system.\n"; Set(); cout<< "Main Menu (Options - Set Autosave) Help\n\n"; cout<< "You can choose when you want your character to be automatically Saved.\n"; cout<< "If you enter 0, the character will never be Autosaved. The default is to\n"; cout<< "Save every 10 Days. The Autosave date is stored in Horizon.cfg.\n"; Set(); } // Options else if (Action == "5") { cout<< "Main Menu (Catalog) Help\n\n"; cout<< "The catalog is a special tool that will help you learn more about the\n"; cout<< "various elements of the land. When using the catalog, you have two\n"; cout<< "choices. You can either access the Beastiary, which is an information\n"; cout<< "guide to all the Monsters, or Magic Items, which shows the abilities\n"; cout<< "of any Magic Item you may find.\n"; Set(); cout<< "Main Menu (Catalog - Beastiary) Help\n\n"; cout<< "If you select this option, you will have a chance to learn more about\n"; cout<< "the creatures you will encounter throughout your travels. Either enter\n"; cout<< "'List' here to view a complete list of all monsters. Once you have found\n"; cout<< "a creature you wish to learn more about, return to the main Beastiary and\n"; cout<< "enter the creatures name in the space provided. You can learn about how\n"; cout<< "challenging it is, how it looks, and general information concerning your\n"; cout<< "choice. Enter 'Return' to leave to Beastiary.\n"; Set(); cout<< "Main Menu (Catalog - Magic List) Help\n\n"; cout<< "You can use this feature to read about all the Magic Items you may\n"; cout<< "find or already own. In the space provided, type in the name of a\n"; cout<< "Magic Item you wish to investigate, or enter 'List' for a complete\n"; cout<< "listing of every Magic Item. To leave the Magic Item catalog section\n"; cout<< "enter 'Return' in the space to leave the Magic List.\n"; Set(); } // Catalog else if (Action == "6") { cout<< "Editing Codes\n"; cout<< "Below are 7 codes that can be used at your desire. The game is meant\n"; cout<< "to be played without codes, but these may help you get started or test\n"; cout<< "out a certain facet of the game. Under no circumstances is using codes\n"; cout<< "considered right, they are merely put here to help players from getting\n"; cout<< "frustrated. If you want to play the game as it was meant to be, and are\n"; cout<< "having no trouble with the game, then be smart and skip this section.\n"; cout<< "Once used, there is no indication besides the change in numbers of the\n"; cout<< "codes working.\n\n"; cout<< "At Realm screen (non-adventuring): Gold500\n"; cout<< "At Realm screen (adventuring) : Day1\n"; cout<< "At Realm screen (adventuring) : XP500\n"; cout<< "At Realm screen (adventuring) : Magicfind\n"; cout<< "Inside Inventory screen (any) : Healme\n"; cout<< "Inside Inventory screen (any) : Rations50\n"; cout<< "At Combat Screen : Killall\n\n"; Set(); } // Codes }while (Action != "7"); } //Readme--------------------------------------------------------------------= void Save(string &Name, int &Power, int &Level, long &XP, long &NextLvl, int &TotalHP, int &Strength, int &Dexterity, int &Intelligence, int &Wilderness, int &Barter, long &Attack, long &Defense, long &Gold, string &Weapon, string &Shield, string &Armor, string &One, string &Two, string &Three, string &Four, string &Five, int &Day, int &WeaponAR, int &ShieldDR, int &ArmorDR, int &Rations) { if (Gold >= 90000) Gold = 90000; ofstream LogSave("Log.txt", ios::app); LogSave<< "Save " << Name << "\n"; LogSave.close(); cout<< "Saving " << Name; cout<< "."; ofstream SCharacter("Horizon\\Character\\Character.hcs", ios::trunc); SCharacter<< Name <= 90000) Gold = 90000; ofstream LogAutosave("Log.txt", ios::app); LogAutosave<< "Autosave " << Name << "\n"; LogAutosave.close(); ofstream SCharacter("Horizon\\Character\\Character.hcs", ios::trunc); SCharacter<< Name <= 1) && (Item <= 10)) Type = "WEAPON"; else if ((Item >= 11) && (Item <= 20)) Type = "ARMOR"; else if ((Item >= 21) && (Item <= 30)) Type = "SHIELD"; Redisplay: if (Type == "WEAPON") { Output = ("Found " + MWeapon); Logfile(Output); cout<< "You find " << MWeapon << ".\n\n"; cout<< "Replace " << Weapon << " with " << MWeapon << " (enter ? for stats)? "; } else if (Type == "ARMOR") { Output = ("Found " + MArmor); Logfile(Output); cout<< "You find " << MArmor << ".\n\n"; cout<< "Replace " << Armor << " with " << MArmor << " (enter ? for stats)? "; } else if (Type == "SHIELD") { Output = ("Found " + MShield); Logfile(Output); cout<< "You find " << MShield << ".\n\n"; if (Shielduse == "NO") goto NoShield; cout<< "Replace " << Shield << " with " << MShield << " (enter ? for stats)? "; } cin>> Check; if (Check == "?") { Magiclist(); goto Redisplay; } // Help Checktrap(Check); if ((Check == "YES") || (Check == "Yes") || (Check == "yes") || (Check == "Y") || (Check == "y")) { if (Type == "WEAPON") { if (Weapon == "Quickblade") Dexterity = (Dexterity - 5); Attack = (Attack - WeaponAR); Weapon = MWeapon; WeaponAR = MWeaponAR; Shielduse = MUse; cout<< "Equipped " << MWeapon << ".\n"; if ((Shielduse == "NO") && (Shield != "None")) { Shield = "None"; Defense = (Defense - ShieldDR); } // Remove shield if weapon is 2 handed } // Weapon else if (Type == "ARMOR") { Defense = (Defense - ArmorDR); Armor = MArmor; ArmorDR = MArmorDR; cout<< "Equipped " << MArmor << ".\n"; } // Armor else if (Type == "SHIELD") { Defense = (Defense - ShieldDR); Shield = MShield; ShieldDR = MShieldDR; cout<< "Equipped " << MShield << ".\n"; } // Shield if ((Type == "SHIELD") && (Shielduse == "NO")) { NoShield: cout<< "You are currently using a two handed weapon and cannot use a Shield.\n"; } // No Shielduse allowed Check = "Inventory"; } // Yes } // Found magic item } //Magicweapon---------------------------------------------------------------= void Magiclist() { ofstream MagicListLog("Log.txt", ios::app); MagicListLog<< "Magic List Accessed\n"; MagicListLog.close(); string Magic; do{ clrscr(); gotoxy(1,2); cout<< "Magic List\n\n"; cout<< "Enter the Magic Item you wish to learn about in the space below,\n"; cout<< "or type 'List' for a complete listing of Magic Items,\n"; cout<< "type 'Return' to leave the Magic List.\n\n"; cout<< "Entry: "; cin>> Magic; clrscr(); gotoxy(1,2); if ((Magic == "List") || (Magic == "LIST") || (Magic == "list")) { cout<< "Magic Item List\n\n"; cout<< "WEAPONS ARMOR SHIELDS\n"; cout<< "Curephase-w Cravenplate Blackpit\n"; cout<< "Darkslayer Curephase-a Bodylink\n"; cout<< "Destructor Ember Curephase-s\n"; cout<< "Frostweaver Famine Mindfeed\n"; cout<< "Lehoma Icechain Protector\n"; cout<< "Razoredge Isura Restfull\n"; cout<< "Risingsun Steelwall Sentinent\n"; cout<< "Truestrike Swordguide Syrian\n"; cout<< "Vampirous Tinwall Woundcover\n"; cout<< "Witherblade Trollplate Yu-lang\n"; Pause(); } // List if ((Magic == "Blackpit") || (Magic == "BLACKPIT") || (Magic == "blackpit")) { cout<< "Name: Blackpit\n"; cout<< "Type: Tower Shield\n"; cout<< "DR: 70\n"; cout<< "Special: Bonus DR\n"; Pause(); } // Blackpit if ((Magic == "Bodylink") || (Magic == "BODYLINK") || (Magic == "bodylink")) { cout<< "Name: Bodylink\n"; cout<< "Type: Wooden Shield\n"; cout<< "DR: 25\n"; cout<< "Special: Damage reduce 1-4\n"; Pause(); } // Bodylink if ((Magic == "Curephase-s") || (Magic == "CUREPHASE-S") || (Magic == "curephase-s")) { cout<< "Name: Curephase-s\n"; cout<< "Type: Wooden Shield\n"; cout<< "DR: 25\n"; cout<< "Special: Heals user on sleep\n"; cout<< " Heals user on travel\n"; Pause(); } // Curephase-s if ((Magic == "Mindfeed") || (Magic == "MINDFEED") || (Magic == "mindfeed")) { cout<< "Name: Mindfeed\n"; cout<< "Type: Metal Shield\n"; cout<< "DR: 30\n"; cout<< "Special: +20XP bonus\n"; Pause(); } // Mindfeed if ((Magic == "Protector") || (Magic == "PROTECTOR") || (Magic == "protector")) { cout<< "Name: Protector\n"; cout<< "Type: Wooden Shield\n"; cout<< "DR: 45\n"; cout<< "Special: Bonus DR\n"; Pause(); } // Protector if ((Magic == "Restfull") || (Magic == "RESTFULL") || (Magic == "restfull")) { cout<< "Name: Restfull\n"; cout<< "Type: Metal Shield\n"; cout<< "DR: 25\n"; cout<< "Special: Always sleep\n"; Pause(); } // Restfull if ((Magic == "Sentinent") || (Magic == "SENTINENT") || (Magic == "sentinent")) { cout<< "Name: Sentinent\n"; cout<< "Type: Metal Shield\n"; cout<< "DR: 30\n"; cout<< "Special: +25 AR\n"; Pause(); } // Sentinent if ((Magic == "Syrian") || (Magic == "SYRIAN") || (Magic == "syrian")) { cout<< "Name: Syrian\n"; cout<< "Type: Wooden Shield\n"; cout<< "DR: 15\n"; cout<< "Special: 10gp Discount\n"; Pause(); } // Syrian if ((Magic == "Woundcover") || (Magic == "WOUNDCOVER") || (Magic == "woundcover")) { cout<< "Name: Woundcover\n"; cout<< "Type: Metal Shield\n"; cout<< "DR: 20\n"; cout<< "Special: Regenerate 1-3\n"; Pause(); } // Woundcover if ((Magic == "Yu-lang") || (Magic == "YU-LANG") || (Magic == "yu-lang")) { cout<< "Name: Yu-lang\n"; cout<< "Type: Guardian Shield\n"; cout<< "DR: 200\n"; cout<< "Special: Always sleep\n"; cout<< " Regenerate 5-7\n"; cout<< " 15gp Discount\n"; Pause(); } // Yu-lang if ((Magic == "Cravenplate") || (Magic == "CRAVENPLATE") || (Magic == "cravenplate")) { cout<< "Name: Cravenplate\n"; cout<< "Type: Full Plate Mail\n"; cout<< "DR: 55\n"; cout<< "Special: Always notice Monsters, Always flee\n"; Pause(); } // Cravenplate if ((Magic == "Curephase-a") || (Magic == "CUREPHASE-a") || (Magic == "curephase-a")) { cout<< "Name: Curephase-a\n"; cout<< "Type: Chain Mail\n"; cout<< "DR: 85\n"; cout<< "Special: Heal user on sleep\n"; Pause(); } // Curephase-a if ((Magic == "Ember") || (Magic == "EMBER") || (Magic == "ember")) { cout<< "Name: Ember\n"; cout<< "Type: Full Plate Mail\n"; cout<< "DR: 90\n"; cout<< "Special: Rebuke 5-8 fire damage.\n"; Pause(); } // Ember if ((Magic == "Famine") || (Magic == "FAMINE") || (Magic == "famine")) { cout<< "Name: Famine\n"; cout<< "Type: Leather Armor\n"; cout<< "DR: 50\n"; cout<< "Special: Will never starve\n"; Pause(); } // Famine if ((Magic == "Icechain") || (Magic == "ICECHAIN") || (Magic == "icechain")) { cout<< "Name: Icechain\n"; cout<< "Type: Chain Mail\n"; cout<< "DR: 70\n"; cout<< "Special: Rebukes 5-11 cold damage\n"; Pause(); } // Icechain if ((Magic == "Isura") || (Magic == "ISURA") || (Magic == "isura")) { cout<< "Name: Isura\n"; cout<< "Type: Arcane Plate\n"; cout<< "DR: 400\n"; cout<< "Special: Will not starve\n"; cout<< " Always notice Monsters\n"; cout<< " Always sleep\n"; cout<< " Regenerates 5-8\n"; Pause(); } // Isura if ((Magic == "Steelwall") || (Magic == "STEELWALL") || (Magic == "steelwall")) { cout<< "Name: Steelwall\n"; cout<< "Type: Full Plate Mail\n"; cout<< "DR: 200\n"; cout<< "Special: Bonus DR\n"; Pause(); } // Steelwall if ((Magic == "Swordguide") || (Magic == "SWORDGUIDE") || (Magic == "swordguide")) { cout<< "Name: Swordguide\n"; cout<< "Type: Full Plate Mail\n"; cout<< "DR: 90\n"; cout<< "Special: +50 AR\n"; Pause(); } // Swordguide if ((Magic == "Tinwall") || (Magic == "TINWALL") || (Magic == "tinwall")) { cout<< "Name: Tinwall\n"; cout<< "Type: Full Plate Mail\n"; cout<< "DR: 160\n"; cout<< "Special: Bonus DR\n"; Pause(); } // Tinwall if ((Magic == "Trollplate") || (Magic == "TROLLPLATE") || (Magic == "trollplate")) { cout<< "Name: Trollplate\n"; cout<< "Type: Full Plate Mail\n"; cout<< "DR: 120\n"; cout<< "Special: Regenerate 10-14\n"; Pause(); } // Trollplate if ((Magic == "Curephase-w") || (Magic == "CUREPHASE-w") || (Magic == "curephase-w")) { cout<< "Name: Curephase-w\n"; cout<< "Type: Sword\n"; cout<< "AR: 40\n"; cout<< "Special: Regenerate 10\n"; Pause(); } // Curephase-w if ((Magic == "Darkslayer") || (Magic == "DARKSLAYER") || (Magic == "darkslayer")) { cout<< "Name: Darkslayer\n"; cout<< "Type: Mace\n"; cout<< "AR: 50\n"; cout<< "Special: Double damage vs. Undead\n"; Pause(); } // Darkslayer if ((Magic == "Destructor") || (Magic == "DESTRUCTOR") || (Magic == "destructor")) { cout<< "Name: Destructor\n"; cout<< "Type: Axe\n"; cout<< "AR: 80\n"; cout<< "Special: 10% chance to destroy target\n"; Pause(); } // Destructor if ((Magic == "Frostweaver") || (Magic == "FROSTWEAVER") || (Magic == "frostweaver")) { cout<< "Name: Frostweaver\n"; cout<< "Type: Greatsword\n"; cout<< "AR: 100\n"; cout<< "Special: Add 4-8 cold damage\n"; Pause(); } // Frostweaver if ((Magic == "Lehoma") || (Magic == "LEHOMA") || (Magic == "lehoma")) { cout<< "Name: Lehoma (ultimate)\n"; cout<< "Type: Force Katana\n"; cout<< "AR: 400\n"; cout<< "Special: Heal user on sleep\n"; cout<< " Heal user on travel\n"; cout<< " Add 10-15 damage\n"; cout<< " Steal life\n"; cout<< " 20% chance to destroy target\n"; Pause(); } // Lehoma if ((Magic == "Razoredge") || (Magic == "RAZOREDGE") || (Magic == "razoredge")) { cout<< "Name: Razoredge\n"; cout<< "Type: Dagger\n"; cout<< "AR: 20\n"; cout<< "Special: Add 2-7 damage\n"; Pause(); } // Razoredge if ((Magic == "Risingsun") || (Magic == "RISINGSUN") || (Magic == "risingsun")) { cout<< "Name: Risingsun\n"; cout<< "Type: Spear\n"; cout<< "AR: 90\n"; cout<< "Special: Add 5-10 fire damage\n"; Pause(); } // Risingsun if ((Magic == "Truestrike") || (Magic == "TRUESTRIKE") || (Magic == "truestrike")) { cout<< "Name: Truestrike\n"; cout<< "Type: Sword\n"; cout<< "AR: 200\n"; cout<< "Special: Bonus AR\n"; Pause(); } // Truestrike if ((Magic == "Vampirous") || (Magic == "VAMPIROUS") || (Magic == "vampirous")) { cout<< "Name: Vampirous\n"; cout<< "Type: Axe\n"; cout<< "AR: 70\n"; cout<< "Special: Steals life\n"; Pause(); } // Vampirous if ((Magic == "Witherblade") || (Magic == "WITHERBLADE") || (Magic == "witherblade")) { cout<< "Name: Witherblade\n"; cout<< "Type: Sword\n"; cout<< "AR: 75\n"; cout<< "Special: Add 5 withering damage\n"; Pause(); } // Witherblade }while ((Magic != "Return") && (Magic != "RETURN") && (Magic != "return")); clrscr(); gotoxy(1,2); } //Magiclist-----------------------------------------------------------------= void ChooseMonster(int &Monstertype, string &MonsterName, string &MonsterChallenge, int &MonsterPower, int &MonsterAttack, int &MonsterDefense, int &MonsterHP, int &MonsterXP, int &MonsterGold, int &MFChance, int &Level, int &Power) { int OldLevel = Level; if (Level > 16) { Level = 6+random(10); } if ((Power >= 1000) && (OldLevel == 55)) { MonsterName = "Slayer"; MonsterChallenge = "Nearly Impossible"; MonsterPower = 1050; MonsterAttack = 750; MonsterDefense = 750; MonsterHP = 300; MonsterXP = 1500; MonsterGold = 1000; MFChance = 50; Level = 17; } // Slayer if (OldLevel == 500) { MonsterName = "Dragon"; MonsterChallenge = "Impossible"; MonsterPower = 2050; MonsterAttack = 1500; MonsterDefense = 1750; MonsterHP = 550; MonsterXP = 5000; MonsterGold = 5000; MFChance = 100; Level = 17; } // Dragon if (Level == 1) { Monstertype = 1+random(8); if (Monstertype == 1) { MonsterName = "Bandit"; MonsterChallenge = "Easy"; MonsterPower = 40; MonsterAttack = 25; MonsterDefense = 30; MonsterHP = 15; MonsterXP = 20; MonsterGold = 5+random(4); MFChance = 3; } // Bandit else if (Monstertype == 2) { MonsterName = "Dog"; MonsterChallenge = "Easy"; MonsterPower = 50; MonsterAttack = 30; MonsterDefense = 20; MonsterHP = 20; MonsterXP = 25; MonsterGold = 2+random(3); MFChance = 1; } // Dog else if (Monstertype == 3) { MonsterName = "Giant Worm"; MonsterChallenge = "Normal"; MonsterPower = 70; MonsterAttack = 50; MonsterDefense = 25; MonsterHP = 20; MonsterXP = 35; MonsterGold = 7+random(9); MFChance = 2; } // Giant Worm else if (Monstertype == 4) { MonsterName = "Goblin"; MonsterChallenge = "Very Easy"; MonsterPower = 30; MonsterAttack = 20; MonsterDefense = 20; MonsterHP = 10; MonsterXP = 15; MonsterGold = 2+random(4); MFChance = 2; } // Goblin else if (Monstertype == 5) { MonsterName = "Gnoll"; MonsterChallenge = "Easy"; MonsterPower = 75; MonsterAttack = 50; MonsterDefense = 10; MonsterHP = 25; MonsterXP = 35; MonsterGold = 9+random(6); MFChance = 3; } // Gnoll else if (Monstertype == 6) { MonsterName = "Grub"; MonsterChallenge = "Very Easy"; MonsterPower = 25; MonsterAttack = 10; MonsterDefense = 65; MonsterHP = 15; MonsterXP = 15; MonsterGold = 6+random(2); MFChance = 1; } // Grub else if (Monstertype == 7) { MonsterName = "Rat"; MonsterChallenge = "Very Easy"; MonsterPower = 30; MonsterAttack = 25; MonsterDefense = 25; MonsterHP = 5; MonsterXP = 15; MonsterGold = 1+random(2); MFChance = 1; } // Rat else if (Monstertype == 8) { MonsterName = "Snake"; MonsterChallenge = "Easy"; MonsterPower = 55; MonsterAttack = 35; MonsterDefense = 25; MonsterHP = 20; MonsterXP = 30; MonsterGold = 1+random(2); MFChance = 1; } // Snake } // Level 1 else if (Level == 2) { Monstertype = 1+random(7); if (Monstertype == 1) { MonsterName = "Air Elemental"; MonsterChallenge = "Normal"; MonsterPower = 80; MonsterAttack = 50; MonsterDefense = 35; MonsterHP = 35; MonsterXP = 40; MonsterGold = 10+random(6); MFChance = 4; } // Air Elemental else if (Monstertype == 2) { MonsterName = "Barbarian"; MonsterChallenge = "Easy"; MonsterPower = 90; MonsterAttack = 60; MonsterDefense = 50; MonsterHP = 30; MonsterXP = 45; MonsterGold = 12+random(4); MFChance = 3; } // Barbarian else if (Monstertype == 3) { MonsterName = "Bear"; MonsterChallenge = "Normal"; MonsterPower = 105; MonsterAttack = 65; MonsterDefense = 60; MonsterHP = 40; MonsterXP = 50; MonsterGold = 10+random(2); MFChance = 4; } // Bear else if (Monstertype == 4) { MonsterName = "Bladefly"; MonsterChallenge = "Easy"; MonsterPower = 25; MonsterAttack = 15; MonsterDefense = 90; MonsterHP = 10; MonsterXP = 15; MonsterGold = 10+random(8); MFChance = 2; } // Bladefly else if (Monstertype == 5) { MonsterName = "Cobra"; MonsterChallenge = "Normal"; MonsterPower = 60; MonsterAttack = 40; MonsterDefense = 70; MonsterHP = 20; MonsterXP = 30; MonsterGold = 10+random(4); MFChance = 2; } // Cobra else if (Monstertype == 6) { MonsterName = "Giant Worm"; MonsterChallenge = "Normal"; MonsterPower = 75; MonsterAttack = 50; MonsterDefense = 65; MonsterHP = 25; MonsterXP = 35; MonsterGold = 10+random(1); MFChance = 3; } // Giant Worm else if (Monstertype == 7) { MonsterName = "Gnoll"; MonsterChallenge = "Easy"; MonsterPower = 80; MonsterAttack = 55; MonsterDefense = 35; MonsterHP = 25; MonsterXP = 40; MonsterGold = 10+random(2); MFChance = 4; } // Gnoll } // Level 2 if (Level == 3) { Monstertype = 1+random(7); if (Monstertype == 1) { MonsterName = "Barbarian"; MonsterChallenge = "Easy"; MonsterPower = 120; MonsterAttack = 85; MonsterDefense = 70; MonsterHP = 35; MonsterXP = 60; MonsterGold = 12+random(4); MFChance = 4; } // Barbarian else if (Monstertype == 2) { MonsterName = "Bladefly"; MonsterChallenge = "Easy"; MonsterPower = 35; MonsterAttack = 25; MonsterDefense = 90; MonsterHP = 10; MonsterXP = 20; MonsterGold = 11+random(3); MFChance = 3; } // Bladefly else if (Monstertype == 3) { MonsterName = "Cobra"; MonsterChallenge = "Normal"; MonsterPower = 105; MonsterAttack = 85; MonsterDefense = 70; MonsterHP = 20; MonsterXP = 55; MonsterGold = 10+random(5); MFChance = 3; } // Cobra else if (Monstertype == 4) { MonsterName = "Giant Spider"; MonsterChallenge = "Normal"; MonsterPower = 100; MonsterAttack = 80; MonsterDefense = 75; MonsterHP = 20; MonsterXP = 50; MonsterGold = 11+random(2); MFChance = 4; } // Giant Spider else if (Monstertype == 5) { MonsterName = "Hobgoblin"; MonsterChallenge = "Normal"; MonsterPower = 120; MonsterAttack = 85; MonsterDefense = 70; MonsterHP = 25; MonsterXP = 60; MonsterGold = 15+random(3); MFChance = 5; } // Hobgoblin else if (Monstertype == 6) { MonsterName = "Manvermin"; MonsterChallenge = "Normal"; MonsterPower = 100; MonsterAttack = 85; MonsterDefense = 80; MonsterHP = 15; MonsterXP = 50; MonsterGold = 13+random(4); MFChance = 5; } // Manvermin else if (Monstertype == 7) { MonsterName = "Zombie"; MonsterChallenge = "Normal"; MonsterPower = 135; MonsterAttack = 100; MonsterDefense = 55; MonsterHP = 35; MonsterXP = 70; MonsterGold = 10+random(6); MFChance = 5; } // Zombie } // Level 3 if ((Level == 4) || (Level == 5)) { Monstertype = 1+random(12); if (Monstertype == 1) { MonsterName = "Fire Elemental"; MonsterChallenge = "Normal"; MonsterPower = 150; MonsterAttack = 105; MonsterDefense = 60; MonsterHP = 45; MonsterXP = 75; MonsterGold = 7+random(6); MFChance = 7; } // Fire Elemental else if (Monstertype == 2) { MonsterName = "Giant Spider"; MonsterChallenge = "Normal"; MonsterPower = 110; MonsterAttack = 80; MonsterDefense = 80; MonsterHP = 30; MonsterXP = 55; MonsterGold = 12+random(2); MFChance = 5; } // Giant Spider else if (Monstertype == 3) { MonsterName = "Harpy"; MonsterChallenge = "Normal"; MonsterPower = 100; MonsterAttack = 70; MonsterDefense = 85; MonsterHP = 30; MonsterXP = 50; MonsterGold = 12+random(6); MFChance = 6; } // Harpy else if (Monstertype == 4) { MonsterName = "Hobgoblin"; MonsterChallenge = "Normal"; MonsterPower = 130; MonsterAttack = 90; MonsterDefense = 70; MonsterHP = 30; MonsterXP = 70; MonsterGold = 14+random(7); MFChance = 5; } // Hobgoblin else if (Monstertype == 5) { MonsterName = "Manvermin"; MonsterChallenge = "Normal"; MonsterPower = 115; MonsterAttack = 90; MonsterDefense = 85; MonsterHP = 25; MonsterXP = 55; MonsterGold = 13+random(5); MFChance = 6; } // Manvermin else if (Monstertype == 6) { MonsterName = "Mummy"; MonsterChallenge = "Normal"; MonsterPower = 130; MonsterAttack = 90; MonsterDefense = 45; MonsterHP = 40; MonsterXP = 65; MonsterGold = 18+random(6); MFChance = 7; } // Mummy else if (Monstertype == 7) { MonsterName = "Mummy"; MonsterChallenge = "Normal"; MonsterPower = 125; MonsterAttack = 95; MonsterDefense = 55; MonsterHP = 30; MonsterXP = 60; MonsterGold = 12+random(7); MFChance = 4; } // Orc else if (Monstertype == 8) { MonsterName = "Skeleton"; MonsterChallenge = "Normal"; MonsterPower = 140; MonsterAttack = 95; MonsterDefense = 70; MonsterHP = 45; MonsterXP = 70; MonsterGold = 15+random(6); MFChance = 5; } // Skeleton else if (Monstertype == 9) { MonsterName = "Thief"; MonsterChallenge = "Normal"; MonsterPower = 100; MonsterAttack = 65; MonsterDefense = 85; MonsterHP = 35; MonsterXP = 55; MonsterGold = 25+random(10); MFChance = 8; } // Thief else if (Monstertype == 10) { MonsterName = "Water Elemental"; MonsterChallenge = "Normal"; MonsterPower = 105; MonsterAttack = 45; MonsterDefense = 40; MonsterHP = 60; MonsterXP = 55; MonsterGold = 9+random(3); MFChance = 5; } // Water Elemental else if (Monstertype == 11) { MonsterName = "Wolf"; MonsterChallenge = "Normal"; MonsterPower = 60; MonsterAttack = 35; MonsterDefense = 100; MonsterHP = 25; MonsterXP = 30; MonsterGold = 5+random(2); MFChance = 5; } // Wolf else if (Monstertype == 12) { MonsterName = "Zombie"; MonsterChallenge = "Normal"; MonsterPower = 140; MonsterAttack = 95; MonsterDefense = 60; MonsterHP = 45; MonsterXP = 70; MonsterGold = 11+random(4); MFChance = 6; } // Zombie } // Level 4 or 5 if (Level == 6) { Monstertype = 1+random(9); if (Monstertype == 1) { MonsterName = "Animated Armor"; MonsterChallenge = "Hard"; MonsterPower = 150; MonsterAttack = 100; MonsterDefense = 80; MonsterHP = 50; MonsterXP = 75; MonsterGold = 17+random(3); MFChance = 8; } // Animated Armor else if (Monstertype == 2) { MonsterName = "Earth Elemental"; MonsterChallenge = "Hard"; MonsterPower = 155; MonsterAttack = 105; MonsterDefense = 85; MonsterHP = 50; MonsterXP = 80; MonsterGold = 14+random(3); MFChance = 7; } // Earth Elemental else if (Monstertype == 3) { MonsterName = "Ghoul"; MonsterChallenge = "Hard"; MonsterPower = 120; MonsterAttack = 85; MonsterDefense = 90; MonsterHP = 35; MonsterXP = 60; MonsterGold = 10+random(2); MFChance = 5; } // Ghoul else if (Monstertype == 4) { MonsterName = "Giant"; MonsterChallenge = "Hard"; MonsterPower = 165; MonsterAttack = 85; MonsterDefense = 60; MonsterHP = 80; MonsterXP = 80; MonsterGold = 25+random(5); MFChance = 6; } // Giant else if (Monstertype == 5) { MonsterName = "Giant Scorpion"; MonsterChallenge = "Hard"; MonsterPower = 135; MonsterAttack = 90; MonsterDefense = 75; MonsterHP = 45; MonsterXP = 65; MonsterGold = 5+random(7); MFChance = 5; } // Giant Scorpion else if (Monstertype == 6) { MonsterName = "Harpy"; MonsterChallenge = "Normal"; MonsterPower = 100; MonsterAttack = 70; MonsterDefense = 85; MonsterHP = 30; MonsterXP = 50; MonsterGold = 12+random(6); MFChance = 7; } // Harpy else if (Monstertype == 7) { MonsterName = "Lizardman"; MonsterChallenge = "Hard"; MonsterPower = 130; MonsterAttack = 95; MonsterDefense = 80; MonsterHP = 35; MonsterXP = 65; MonsterGold = 8+random(13); MFChance = 7; } // Lizardman else if (Monstertype == 8) { MonsterName = "Thief"; MonsterChallenge = "Normal"; MonsterPower = 115; MonsterAttack = 75; MonsterDefense = 85; MonsterHP = 40; MonsterXP = 60; MonsterGold = 25+random(8); MFChance = 8; } // Thief else if (Monstertype == 9) { MonsterName = "Wight"; MonsterChallenge = "Hard"; MonsterPower = 105; MonsterAttack = 60; MonsterDefense = 110; MonsterHP = 45; MonsterXP = 55; MonsterGold = 11+random(6); MFChance = 7; } // Wight } // Level 6 if ((Level == 7) || (Level == 8) || (Level == 9)) { Monstertype = 1+random(9); if (Monstertype == 1) { MonsterName = "Demon"; MonsterChallenge = "Hard"; MonsterPower = 160; MonsterAttack = 110; MonsterDefense = 90; MonsterHP = 50; MonsterXP = 85; MonsterGold = 23+random(7); MFChance = 8; } // Demon else if (Monstertype == 2) { MonsterName = "Ghoul"; MonsterChallenge = "Hard"; MonsterPower = 125; MonsterAttack = 85; MonsterDefense = 90; MonsterHP = 40; MonsterXP = 65; MonsterGold = 12+random(2); MFChance = 6; } // Ghoul else if (Monstertype == 3) { MonsterName = "Giant"; MonsterChallenge = "Hard"; MonsterPower = 170; MonsterAttack = 85; MonsterDefense = 65; MonsterHP = 80; MonsterXP = 85; MonsterGold = 25+random(9); MFChance = 6; } // Giant else if (Monstertype == 4) { MonsterName = "Manticore"; MonsterChallenge = "Hard"; MonsterPower = 140; MonsterAttack = 95; MonsterDefense = 85; MonsterHP = 45; MonsterXP = 75; MonsterGold = 9+random(14); MFChance = 7; } // Manticore else if (Monstertype == 5) { MonsterName = "Minotaur"; MonsterChallenge = "Hard"; MonsterPower = 155; MonsterAttack = 90; MonsterDefense = 70; MonsterHP = 65; MonsterXP = 75; MonsterGold = 19+random(11); MFChance = 8; } // Minotaur else if (Monstertype == 6) { MonsterName = "Minotaur"; MonsterChallenge = "Hard"; MonsterPower = 145; MonsterAttack = 95; MonsterDefense = 75; MonsterHP = 50; MonsterXP = 80; MonsterGold = 2+random(14); MFChance = 7; } // Ogre else if (Monstertype == 7) { MonsterName = "Orog"; MonsterChallenge = "Hard"; MonsterPower = 135; MonsterAttack = 90; MonsterDefense = 80; MonsterHP = 45; MonsterXP = 65; MonsterGold = 7+random(12); MFChance = 8; } // Orog else if (Monstertype == 8) { MonsterName = "Werewolf"; MonsterChallenge = "Hard"; MonsterPower = 165; MonsterAttack = 115; MonsterDefense = 65; MonsterHP = 55; MonsterXP = 85; MonsterGold = 1+random(7); MFChance = 9; } // Werewolf else if (Monstertype == 9) { MonsterName = "Wight"; MonsterChallenge = "Hard"; MonsterPower = 115; MonsterAttack = 65; MonsterDefense = 110; MonsterHP = 50; MonsterXP = 60; MonsterGold = 10+random(3); MFChance = 7; } // Wight } // Level 7 or 8 or 9 if ((Level == 10) || (Level == 11)) { Monstertype = 1+random(8); if (Monstertype == 1) { MonsterName = "Darkmaw"; MonsterChallenge = "Difficult"; MonsterPower = 155; MonsterAttack = 95; MonsterDefense = 100; MonsterHP = 60; MonsterXP = 75; MonsterGold = 12+random(7); MFChance = 9; } // Darkmaw else if (Monstertype == 2) { MonsterName = "Death Knight"; MonsterChallenge = "Difficult"; MonsterPower = 180; MonsterAttack = 125; MonsterDefense = 80; MonsterHP = 55; MonsterXP = 90; MonsterGold = 29+random(9); MFChance = 9; } // Death Knight else if (Monstertype == 3) { MonsterName = "Demon"; MonsterChallenge = "Hard"; MonsterPower = 165; MonsterAttack = 110; MonsterDefense = 90; MonsterHP = 55; MonsterXP = 80; MonsterGold = 24+random(7); MFChance = 8; } // Demon else if (Monstertype == 4) { MonsterName = "Ghost"; MonsterChallenge = "Difficult"; MonsterPower = 140; MonsterAttack = 75; MonsterDefense = 85; MonsterHP = 65; MonsterXP = 70; MonsterGold = 15+random(4); MFChance = 9; } // Ghost else if (Monstertype == 5) { MonsterName = "Medusa"; MonsterChallenge = "Difficult"; MonsterPower = 130; MonsterAttack = 85; MonsterDefense = 95; MonsterHP = 45; MonsterXP = 65; MonsterGold = 18+random(9); MFChance = 8; } // Medusa else if (Monstertype == 6) { MonsterName = "Sand Howler"; MonsterChallenge = "Hard"; MonsterPower = 155; MonsterAttack = 105; MonsterDefense = 90; MonsterHP = 50; MonsterXP = 75; MonsterGold = 10+random(5); MFChance = 7; } // Sand Howler else if (Monstertype == 7) { MonsterName = "Shadow"; MonsterChallenge = "Hard"; MonsterPower = 150; MonsterAttack = 95; MonsterDefense = 85; MonsterHP = 55; MonsterXP = 75; MonsterGold = 11+random(7); MFChance = 9; } // Shadow else if (Monstertype == 8) { MonsterName = "Voll"; MonsterChallenge = "Unknown"; MonsterAttack = 50+random(50); MonsterDefense = 90+random(10); MonsterHP = 60+random(5); MonsterPower = (MonsterAttack + MonsterHP); MonsterXP = 70+random(10); MonsterGold = 30; MFChance = 10; } // Voll } // Level 10 or 11 if (Level == 12) { Monstertype = 1+random(7); if (Monstertype == 1) { MonsterName = "Basilisk"; MonsterChallenge = "Difficult"; MonsterPower = 170; MonsterAttack = 105; MonsterDefense = 95; MonsterHP = 65; MonsterXP = 85; MonsterGold = 19+random(6); MFChance = 8; } // Basilisk else if (Monstertype == 2) { MonsterName = "Bloodmaw"; MonsterChallenge = "Difficult"; MonsterPower = 170; MonsterAttack = 110; MonsterDefense = 90; MonsterHP = 60; MonsterXP = 80; MonsterGold = 17+random(6); MFChance = 9; } // Bloodmaw else if (Monstertype == 3) { MonsterName = "Death Knight"; MonsterChallenge = "Difficult"; MonsterPower = 185; MonsterAttack = 125; MonsterDefense = 85; MonsterHP = 60; MonsterXP = 95; MonsterGold = 24+random(3); MFChance = 8; } // Death Knight else if (Monstertype == 4) { MonsterName = "Sand Howler"; MonsterChallenge = "Hard"; MonsterPower = 155; MonsterAttack = 100; MonsterDefense = 90; MonsterHP = 55; MonsterXP = 75; MonsterGold = 12+random(5); MFChance = 6; } // Sand Howler else if (Monstertype == 5) { MonsterName = "Troll"; MonsterChallenge = "Difficult"; MonsterPower = 170; MonsterAttack = 100; MonsterDefense = 85; MonsterHP = 70; MonsterXP = 85; MonsterGold = 18+random(7); MFChance = 7; } // Troll else if (Monstertype == 6) { MonsterName = "Trolog"; MonsterChallenge = "Difficult"; MonsterPower = 170; MonsterAttack = 110; MonsterDefense = 85; MonsterHP = 60; MonsterXP = 80; MonsterGold = 16+random(8); MFChance = 8; } // Trolog else if (Monstertype == 7) { MonsterName = "Voll"; MonsterChallenge = "Unknown"; MonsterAttack = 90+random(20); MonsterDefense = 80+random(15); MonsterHP = 60+random(10); MonsterPower = (MonsterAttack + MonsterHP); MonsterXP = 75+random(5); MonsterGold = 35; MFChance = 12; } // Voll } // Level 12 if ((Level == 13) || (Level == 14) || (Level == 15) || (Level == 16)) { Monstertype = 1+random(8); if (Monstertype == 1) { MonsterName = "Behemoth"; MonsterChallenge = "Very Difficult"; MonsterPower = 215; MonsterAttack = 125; MonsterDefense = 90; MonsterHP = 90; MonsterXP = 155; MonsterGold = 45+random(15); MFChance = 12; } // Behemoth else if (Monstertype == 2) { MonsterName = "Golem"; MonsterChallenge = "Very Difficult"; MonsterPower = 190; MonsterAttack = 110; MonsterDefense = 95; MonsterHP = 80; MonsterXP = 140; MonsterGold = 35+random(15); MFChance = 13; } // Golem else if (Monstertype == 3) { MonsterName = "Hal'kiir"; MonsterChallenge = "Unknown"; MonsterPower = 255; MonsterAttack = 130; MonsterDefense = 110; MonsterHP = 125; MonsterXP = 175; MonsterGold = 90+random(45); MFChance = 40; } // Hal'kiir else if (Monstertype == 4) { MonsterName = "Hydra"; MonsterChallenge = "Very Difficult"; MonsterPower = 185; MonsterAttack = 115; MonsterDefense = 90; MonsterHP = 70; MonsterXP = 95; MonsterGold = 21+random(7); MFChance = 10; } // Hydra else if (Monstertype == 5) { MonsterName = "Sinoko"; MonsterChallenge = "Unknown"; MonsterPower = 220; MonsterAttack = 105; MonsterDefense = 180; MonsterHP = 115; MonsterXP = 110; MonsterGold = 40+random(15); MFChance = 45; } // Sinoko else if (Monstertype == 6) { MonsterName = "Vampire"; MonsterChallenge = "Very Difficult"; MonsterPower = 165; MonsterAttack = 100; MonsterDefense = 95; MonsterHP = 65; MonsterXP = 90; MonsterGold = 20+random(20); MFChance = 14; } // Vampire else if (Monstertype == 7) { MonsterName = "Wraith"; MonsterChallenge = "Very Difficult"; MonsterPower = 160; MonsterAttack = 90; MonsterDefense = 120; MonsterHP = 70; MonsterXP = 85; MonsterGold = 15+random(16); MFChance = 13; } // Wraith else if (Monstertype == 8) { Wyvern: MonsterName = "Wyvern"; MonsterChallenge = "Very Difficult"; MonsterPower = 150; MonsterAttack = 85; MonsterDefense = 135; MonsterHP = 65; MonsterXP = 75; MonsterGold = 32+random(19); MFChance = 12; } // Wyvern } // Level 13 or 14 or 15 or 16 Level = OldLevel; if (Level >= 20) { MonsterHP = (MonsterHP + (Level / 5)); MonsterXP = (MonsterXP - (Level / 10)); MonsterGold = (MonsterGold + (Level / 20)); MonsterAttack = (MonsterAttack + (Level / 50)); MonsterDefense = (MonsterDefense + (Level / 50)); } // Increase monster strength for higher levels MonsterHP = (MonsterHP + (1+random(5))); MonsterXP = (MonsterXP + (1+random(5))); MonsterPower = (MonsterAttack + MonsterHP); } //ChooseMonster-------------------------------------------------------------= //**************************************************************************= // END: Freeware Programmed by Carlo. //**************************************************************************=