static public bool Battle(Monster monster, CharacterClass character, int whatheading) { Console.Clear(); bool fightContinue = true; bool fightOutCome = false; while (fightContinue) { if (character.Health < 10) { Console.WriteLine("You cannot continue or start a fight with lower health than 10hp \nPlease visit The Tavern or vendor and buy potion"); fightContinue = false; fightOutCome = false; } while (fightContinue) { Console.Clear(); switch (whatheading) { case 1: AsciiArt.WoodsArt(); AsciiArt.WoodsTitle(); break; case 2: AsciiArt.PitsTitle(); break; case 3: AsciiArt.MountainHeading(); AsciiArt.BossTitle(); break; } if (monster is Creature) { Creature tempCreature = (Creature)monster; tempCreature.PrintMonsterInfo(); } else if (monster is Boss) { Boss tempBoss = (Boss)monster; tempBoss.PrintMonsterInfo(); } character.ClassBattlePrint(); //make method that returns 2 values Console.WriteLine("1. Standard Attack"); Console.WriteLine("2. Special Attack"); Console.WriteLine("3. Take Health Potion"); Console.WriteLine("4. Flee"); string battleInput = Console.ReadLine(); switch (battleInput) { case "1": monster.TakeDmg(character.DoDmg()); character.TakeDmg(monster.DoDmg()); break; case "2": character.SpecialAttackdmg(monster); break; case "3": character.TakePotion(); break; case "4": if (character.DmgUpperBound > monster.DmgHigherBound) { Console.WriteLine("You managed to flee the battle... you coward..."); fightContinue = false; fightOutCome = false; } else { Console.WriteLine("You cannot flee you must stay and face the consequences"); } break; default: Console.WriteLine("There is no such alternativ, try to focus.. \nIf your nervous you can always flee.."); break; } if (monster.Health <= 0) { monster.MonsterDied(monster, character); fightContinue = false; fightOutCome = true; } else if (character.Health <= 10) { Console.WriteLine("Your health is to low you cannot continue.."); fightContinue = false; fightOutCome = false; } Console.WriteLine("Press anykey.."); Console.ReadKey(); Console.Clear(); } ; } ; return(fightOutCome); }