internal static bool GetClass(Player player, CurrentSpell spell)
 {
     if (player.Hero == "mage")
     {
         return(CheckCooldownMage(player, spell));
     }
     else
     {
         return(CheckCoolDownWarr(player, spell));
     }
 }
        public static void GoToActionResultScreen(Player warr, Player mage, CurrentSpell spell)
        {
            var enter = new ConsoleKeyInfo();

            Console.Clear();
            while (enter.Key != ConsoleKey.Enter)
            {
                Console.WriteLine($"PLAYER {warr.Name} USED {spell.Name} ON {mage.Name} FOR {spell.Damage} DAMAGE {spell.CritHit}");
                Console.WriteLine();
                PrintCharacterStats.Print(mage, warr);
                enter = Console.ReadKey();
                Console.Clear();
            }
        }
Example #3
0
        public static bool SpellsExceptional(CurrentSpell spell)
        {
            List <string> spells = new List <string>()
            {
                "mirrorimage", "SHIELD SLAM", "polymorph", "frozenground"
                , "manaregeneration", "icyveins", "amplifier", "hibernate", "frostarmor", "firearmor", "critical", "berserk",
                "armorup"
            };

            if (spells.Contains(spell.Name))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static CurrentSpell ClassChecker(Player mage)
        {
            var currentSpell = new CurrentSpell();

            if (mage.Type == "frost")
            {
                currentSpell = FrostMageCommands(mage);
            }
            else if (mage.Type == "fire")
            {
                currentSpell = FireMageCommands(mage);
            }
            else
            {
                currentSpell = ArcaneMageCommands(mage);
            }

            return(currentSpell);
        }
        public static CurrentSpell ClassChecker(Player warrior)
        {
            var currentSpell = new CurrentSpell();

            if (warrior.Type == "berserker")
            {
                currentSpell = BerserkerCommands(warrior);
            }
            else if (warrior.Type == "swordmaster")
            {
                currentSpell = SwordMCommands(warrior);
            }
            else
            {
                currentSpell = ProtectorCommands(warrior);
            }

            return(currentSpell);
        }
 internal static void GoToActionResultScreenExceptions(Player warr, Player mage, CurrentSpell spell)
 {
     if (warr.Hero == "warrior")
     {
         if (spell.Name == "hibernate" || spell.Name == "armorup" || spell.Name == "SHIELD SLAM")
         {
             if (spell.Name == "armorup")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{warr.Name} USED ARMOR UP AND GAINED 200 ARMOR");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else if (spell.Name == "hibernate")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{warr.Name} USED HIBERNATE AND HEALED FOR {warr.HealthRegen *4}");
                     Console.WriteLine($"{warr.Name} GAINED 50% DAMAGE REDUCTION FOR OPPONENT'S TURN");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{warr.Name} USED {spell.Name} ON {mage.Name} FOR {spell.Damage} DAMAGE");
                     Console.WriteLine($"{mage.Name} LOSES HIS TURN");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
         }
         else if (spell.Name == "mirrorimage" || spell.Name == "berserk" || spell.Name == "critical")
         {
             if (spell.Name == "critical")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{warr.Name} LEVELED UP HIS CRITICAL STRIKE");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else if (spell.Name == "mirrorimage")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{warr.Name} USED MIRROR IMAGE ON {mage.Name} FOR {spell.Damage} DAMAGE {spell.CritHit}");
                     Console.WriteLine($"{mage.Name} LOSES 1 TURN");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{warr.Name} HAS GONE BERSERK LOSING 200 HP WHILE GAINING DOUBLE DAMAGE FOR 3 ROUNDS");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
         }
     }
     else
     {
         if (spell.Name == "frostarmor" || spell.Name == "firearmor")
         {
             if (spell.Name == "frostarmor")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{mage.Name} USED FROST ARMOR AND GAINED 150 ARMOR");
                     Console.WriteLine($"{mage.Name} GAINED 20% PHYSICAL DAMAGE REDUCTION FOR 2 ROUNDS");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"PLAYER {mage.Name} USED FIRE ARMOR AND GAINED 150 ARMOR AND 150 HEALTH");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
         }
         else if (spell.Name == "polymorph" || spell.Name == "frozenground")
         {
             if (spell.Name == "polymorph")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{mage.Name} USED POLYMORPH ON {warr.Name}");
                     Console.WriteLine($"{warr.Name} LOSES 2 TURNS...");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"PLAYER {mage.Name} USED FROZEN GROUND ON {warr.Name} FOR A TOTAL OF {spell.Damage * 2} DAMAGE");
                     Console.WriteLine($"PLAYER {warr.Name} LOSES 1 TURN");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
         }
         else if (spell.Name == "amplifier" || spell.Name == "icyveins" || spell.Name == "manaregeneration")
         {
             if (spell.Name == "amplifier")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{mage.Name} USED AMPLIFY MAGIC AND NOW HAS 2X SPELL POWER FOR 3 TURNS");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else if (spell.Name == "manaregeneration")
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{mage.Name} USED MANA REGENERATION AND GAINED 300 MANA");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
             else
             {
                 var enter = new ConsoleKeyInfo();
                 Console.Clear();
                 while (enter.Key != ConsoleKey.Enter)
                 {
                     Console.WriteLine($"{mage.Name} USED ICY VEINS AND NOW HAS 50% MORE SPELL POWER");
                     Console.WriteLine($"{mage.Name} LOSES 1 COOLDOWN POINT ON ALL OTHER SPELLS");
                     Console.WriteLine();
                     PrintCharacterStats.Print(mage, warr);
                     enter = Console.ReadKey();
                     Console.Clear();
                 }
             }
         }
     }
 }
        //Cooldown checker for warriors
        public static bool CheckCoolDownWarr(Player warrior, CurrentSpell spell)
        {
            if (warrior.Type == "swordmaster")
            {
                if (spell.Name == "WINDFURY")
                {
                    if (warrior.WindFuryCooldown <= 0)
                    {
                        warrior.MirrorImageCooldown--;
                        warrior.WindFuryCooldown = spell.Cooldown;
                        return(false);
                    }
                    else
                    {
                        return(true);
                    }
                }
                else if (spell.Name == "mirrorimage")
                {
                    if (warrior.MirrorImageCooldown <= 0)
                    {
                        warrior.WindFuryCooldown--;
                        warrior.MirrorImageCooldown = spell.Cooldown;
                        return(false);
                    }
                    else
                    {
                        return(true);
                    }
                }
                else if (spell.Name == "BLADE SLASH")
                {
                    warrior.WindFuryCooldown--;
                    warrior.MirrorImageCooldown--;
                    return(false);
                }
                else if (spell.Name == "critical")
                {
                    warrior.WindFuryCooldown--;
                    warrior.MirrorImageCooldown--;
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            else if (warrior.Type == "berserker")
            {
                if (spell.Name == "AXE CHOP")
                {
                    warrior.BerserkModeCooldown--;
                    warrior.WildAxesCooldown--;
                    return(false);
                }
                else if (spell.Name == "berserk")
                {
                    if (warrior.BerserkModeCooldown <= 0)
                    {
                        warrior.WildAxesCooldown--;
                        warrior.BerserkModeCooldown = spell.Cooldown;
                        return(false);
                    }
                    else
                    {
                        return(true);
                    }
                }
                else if (spell.Name == "WILD AXES")
                {
                    if (warrior.WildAxesCooldown <= 0)
                    {
                        warrior.BerserkModeCooldown--;
                        warrior.WildAxesCooldown = spell.Cooldown;
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                if (spell.Name == "armorup")
                {
                    warrior.HibernateCooldown--;
                    return(false);
                }
                else if (spell.Name == "MACE SWING")
                {
                    warrior.HibernateCooldown--;
                    return(false);
                }
                else if (spell.Name == "hibernate")
                {
                    if (warrior.HibernateCooldown <= 0)
                    {
                        warrior.HibernateCooldown = 3;
                        return(false);
                    }
                    else
                    {
                        return(true);
                    }
                }
                else
                {
                    warrior.HibernateCooldown--;
                    return(false);
                }
            }

            return(true);
        }
 //Cooldown checker for mages
 public static bool CheckCooldownMage(Player mage, CurrentSpell spell)
 {
     if (mage.Type == "fire")
     {
         if (spell.Name == "firearmor")
         {
             if (mage.FireArmorCoolDown <= 0)
             {
                 mage.PyroBlastCoolDown--;
                 mage.FireArmorCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else if (spell.Name == "FIRE BLAST")
         {
             mage.FireArmorCoolDown--;
             mage.PyroBlastCoolDown--;
             return(false);
         }
         else
         {
             if (mage.PyroBlastCoolDown <= 0)
             {
                 mage.FireArmorCoolDown--;
                 mage.PyroBlastCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
     }
     else if (mage.Type == "frost")
     {
         if (spell.Name == "icyveins")
         {
             if (mage.IcyVeinsCoolDown <= 0)
             {
                 mage.FrostArmorCoolDown--;
                 mage.FrostArmorCoolDown--;
                 mage.FrozenGroundCoolDown--;
                 mage.FrozenGroundCoolDown--;
                 mage.IcyVeinsCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else if (spell.Name == "frozenground")
         {
             if (mage.FrozenGroundCoolDown <= 0)
             {
                 mage.IcyVeinsCoolDown--;
                 mage.FrostArmorCoolDown--;
                 mage.FrozenGroundCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else if (spell.Name == "frostarmor")
         {
             if (mage.FrostArmorCoolDown <= 0)
             {
                 mage.IcyVeinsCoolDown--;
                 mage.FrozenGroundCoolDown--;
                 mage.FrostArmorCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else
         {
             mage.IcyVeinsCoolDown--;
             mage.FrozenGroundCoolDown--;
             mage.FrostArmorCoolDown--;
             return(false);
         }
     }
     else
     {
         if (spell.Name == "polymorph")
         {
             if (mage.PolymorphCoolDown <= 0)
             {
                 mage.ManaRegCoolDown--;
                 mage.AmplifierCoolDown--;
                 mage.PolymorphCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else if (spell.Name == "amplifier")
         {
             if (mage.AmplifierCoolDown <= 0)
             {
                 mage.ManaRegCoolDown--;
                 mage.PolymorphCoolDown--;
                 mage.AmplifierCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else if (spell.Name == "manaregeneration")
         {
             if (mage.ManaRegCoolDown <= 0)
             {
                 mage.PolymorphCoolDown--;
                 mage.AmplifierCoolDown--;
                 mage.ManaRegCoolDown = spell.Cooldown;
                 return(false);
             }
             else
             {
                 return(true);
             }
         }
         else
         {
             mage.PolymorphCoolDown--;
             mage.AmplifierCoolDown--;
             mage.ManaRegCoolDown--;
             return(false);
         }
     }
 }
        private static CurrentSpell ArcaneMageCommands(Player mage)
        {
            ConsoleKeyInfo enter = new ConsoleKeyInfo();

            Console.Clear();

            var counter = 1;

            while (enter.Key != ConsoleKey.Enter)
            {
                if (enter.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                }
                else if (enter.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                }

                GameTitle.GetTitle();
                string actionSelect = $"SELECT ACTION FOR {mage.Name}";
                string polymorph    = $"POLYMORPH-- DISABLE TARGET FOR 2 TURNS, COST: 200 MANA, COOLDOWN: 4";
                string arcaneBlast  = $"ARCANE BLAST-- DAMAGE:{mage.Spellpower * 3}, COST: 90 MANA, , NO COOLDOWN";
                string amplifier    = $"AMPLIFY MAGIC-- DOUBLE SPELL DAMAGE FOR NEXT 2 TURNS, COST: 250 MANA, COOLDOWN: 4";
                string manaRegen    = $"MANA REGENERATION-- GET 300 MANA, COOLDOWN: 3";
                Console.WriteLine("{0}", actionSelect);
                switch (counter)
                {
                case 1:
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.WriteLine("{0,2}", "-> " + polymorph);
                    Console.WriteLine("{0,2}", arcaneBlast);
                    Console.WriteLine("{0,2}", amplifier);
                    Console.WriteLine("{0,2}", manaRegen); break;

                case 2:
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.WriteLine("{0,2}", polymorph);
                    Console.WriteLine("{0,2}", "-> " + arcaneBlast);
                    Console.WriteLine("{0,2}", amplifier);
                    Console.WriteLine("{0,2}", manaRegen); break;

                case 3:
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.WriteLine("{0,2}", polymorph);
                    Console.WriteLine("{0,2}", arcaneBlast);
                    Console.WriteLine("{0,2}", "-> " + amplifier);
                    Console.WriteLine("{0,2}", manaRegen); break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.WriteLine("{0,2}", polymorph);
                    Console.WriteLine("{0,2}", arcaneBlast);
                    Console.WriteLine("{0,2}", amplifier);
                    Console.WriteLine("{0,2}", "-> " + manaRegen); break;

                default:
                    if (counter == 5)
                    {
                        counter = 1;
                        Console.ForegroundColor = ConsoleColor.Magenta;
                        Console.WriteLine("{0,2}", "-> " + polymorph);
                        Console.WriteLine("{0,2}", arcaneBlast);
                        Console.WriteLine("{0,2}", amplifier);
                        Console.WriteLine("{0,2}", manaRegen); break;
                    }
                    else if (counter == 0)
                    {
                        counter = 4;
                        Console.ForegroundColor = ConsoleColor.Magenta;
                        Console.WriteLine("{0,2}", polymorph);
                        Console.WriteLine("{0,2}", arcaneBlast);
                        Console.WriteLine("{0,2}", amplifier);
                        Console.WriteLine("{0,2}", "-> " + manaRegen); break;
                    }
                    break;
                }
                enter = Console.ReadKey();
                Console.Clear();
            }
            var currentSpell = new CurrentSpell();

            switch (counter)
            {
            case 1:
                var polymorph = new Polymorph();
                currentSpell = polymorph.GetPolymorph(mage);
                break;

            case 2:
                var arcaneBlast = new ArcaneBlast();
                currentSpell = arcaneBlast.GetArcaneBlast(mage);
                break;

            case 3:
                var amplifier = new Amplifier();
                currentSpell = amplifier.GetAmplifier(mage);
                break;

            default:
                var manaReg = new ManaRegeneration();
                currentSpell = manaReg.GetManaReg(mage);
                break;
            }

            return(currentSpell);
        }
Example #10
0
        private static CurrentSpell FrostMageCommands(Player mage)
        {
            ConsoleKeyInfo enter = new ConsoleKeyInfo();

            Console.Clear();

            var counter = 1;

            while (enter.Key != ConsoleKey.Enter)
            {
                if (enter.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                }
                else if (enter.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                }

                GameTitle.GetTitle();
                string actionSelect = $"SELECT ACTION FOR {mage.Name}";
                string frostArmor   = $"FROST ARMOR-- GET 150 ARMOR, LOWER PHYSICAL DAMAGE BY 20% FOR 2 TURNS, COST: 100 MANA, COOLDOWN: 3";
                string frostBolt    = $"FROST BOLT-- DAMAGE ENEMY FOR {mage.Spellpower * 2}, LOWER ENEMY PHYSICAL DAMAGE DONE BY 20% FOR 2 TURNS, COST: 90 MANA, NO COOLDOWN";
                string icyVeins     = $"ICY VEINS-- LOWER COOLDOWN ON ALL SPELLS BY 1 TURN, GET 50% MORE SPELLPOWER FOR NEXT 3 TURNS, COST: 250 MANA, COOLDOWN: 4";
                string frozenGround = $"FROZEN GROUND-- STUN ENEMY FOR 1 TURN AND DAMAGE HIM FOR 2 TURNS BY {mage.Spellpower}, COST: 150 MANA, COOLDOWN: 4";
                Console.WriteLine("{0}", actionSelect);
                switch (counter)
                {
                case 1:
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine("{0,2}", "-> " + frostArmor);
                    Console.WriteLine("{0,2}", frostBolt);
                    Console.WriteLine("{0,2}", icyVeins);
                    Console.WriteLine("{0,2}", frozenGround); break;

                case 2:
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine("{0,2}", frostArmor);
                    Console.WriteLine("{0,2}", "-> " + frostBolt);
                    Console.WriteLine("{0,2}", icyVeins);
                    Console.WriteLine("{0,2}", frozenGround); break;

                case 3:
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine("{0,2}", frostArmor);
                    Console.WriteLine("{0,2}", frostBolt);
                    Console.WriteLine("{0,2}", "-> " + icyVeins);
                    Console.WriteLine("{0,2}", frozenGround); break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine("{0,2}", frostArmor);
                    Console.WriteLine("{0,2}", frostBolt);
                    Console.WriteLine("{0,2}", icyVeins);
                    Console.WriteLine("{0,2}", "-> " + frozenGround); break;

                default:
                    if (counter == 5)
                    {
                        counter = 1;
                        Console.ForegroundColor = ConsoleColor.Blue;
                        Console.WriteLine("{0,2}", "-> " + frostArmor);
                        Console.WriteLine("{0,2}", frostBolt);
                        Console.WriteLine("{0,2}", icyVeins);
                        Console.WriteLine("{0,2}", frozenGround); break;
                    }
                    else if (counter == 0)
                    {
                        counter = 4;
                        Console.ForegroundColor = ConsoleColor.Blue;
                        Console.WriteLine("{0,2}", frostArmor);
                        Console.WriteLine("{0,2}", frostBolt);
                        Console.WriteLine("{0,2}", icyVeins);
                        Console.WriteLine("{0,2}", "-> " + frozenGround); break;
                    }
                    break;
                }
                enter = Console.ReadKey();
                Console.Clear();
            }
            var currentSpell = new CurrentSpell();

            switch (counter)
            {
            case 1:
                var frostArmor = new FrostArmor();
                currentSpell = frostArmor.GetFrostArmor(mage);
                break;

            case 2:
                var frostBolt = new FrostBolt();
                currentSpell = frostBolt.GetFrostBolt(mage);
                break;

            case 3:
                var icyVeins = new IcyVeins();
                currentSpell = icyVeins.GetIcyVeins(mage);
                break;

            default:
                var frozenGround = new FrozenGround();
                currentSpell = frozenGround.GetFrozenGround(mage);
                break;
            }

            return(currentSpell);
        }
Example #11
0
        private static CurrentSpell FireMageCommands(Player mage)
        {
            ConsoleKeyInfo enter = new ConsoleKeyInfo();

            Console.Clear();

            var counter = 1;

            while (enter.Key != ConsoleKey.Enter)
            {
                if (enter.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                }
                else if (enter.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                }

                GameTitle.GetTitle();
                string actionSelect = $"SELECT ACTION FOR {mage.Name}";
                string fireBlast    = $"FIRE BLAST-- DAMAGE:{mage.Spellpower * 2} COST: 120 MANA, NO COOLDOWN";
                string fireArmor    = $"FIRE ARMOR-- GET 150 ARMOR AND 150 HEALTH, COST: 80 MANA, COOLDOWN: 3";
                string pyroBlast    = $"PYRO BLAST-- DAMAGE:{mage.Spellpower * 5} COST: 250 MANA, COOLDOWN: 4";
                string incinerate   = $"INCINERATE-- KILL ENEMY IF ENEMY HP IS BELOW 900";
                Console.WriteLine("{0}", actionSelect);
                switch (counter)
                {
                case 1:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", "-> " + fireBlast);
                    Console.WriteLine("{0,2}", fireArmor);
                    Console.WriteLine("{0,2}", pyroBlast);
                    Console.WriteLine("{0,2}", incinerate); break;

                case 2:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", fireBlast);
                    Console.WriteLine("{0,2}", "-> " + fireArmor);
                    Console.WriteLine("{0,2}", pyroBlast);
                    Console.WriteLine("{0,2}", incinerate); break;

                case 3:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", fireBlast);
                    Console.WriteLine("{0,2}", fireArmor);
                    Console.WriteLine("{0,2}", "-> " + pyroBlast);
                    Console.WriteLine("{0,2}", incinerate); break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", fireBlast);
                    Console.WriteLine("{0,2}", fireArmor);
                    Console.WriteLine("{0,2}", pyroBlast);
                    Console.WriteLine("{0,2}", "-> " + incinerate); break;

                default:
                    if (counter == 5)
                    {
                        counter = 1;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("{0,2}", "-> " + fireBlast);
                        Console.WriteLine("{0,2}", fireArmor);
                        Console.WriteLine("{0,2}", pyroBlast);
                        Console.WriteLine("{0,2}", incinerate); break;
                    }
                    else if (counter == 0)
                    {
                        counter = 4;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("{0,2}", fireBlast);
                        Console.WriteLine("{0,2}", fireArmor);
                        Console.WriteLine("{0,2}", pyroBlast);
                        Console.WriteLine("{0,2}", "-> " + incinerate); break;
                    }
                    break;
                }
                enter = Console.ReadKey();
                Console.Clear();
            }
            var currentSpell = new CurrentSpell();

            switch (counter)
            {
            case 1:
                var fireBlast = new FireBlast();
                currentSpell = fireBlast.GetFireBlast(mage);
                break;

            case 2:
                var fireArmor = new FireArmor();
                currentSpell = fireArmor.GetFireArmor(mage);
                break;

            case 3:
                var pyroBlast = new PyroBlast();
                currentSpell = pyroBlast.GetPyroBlast(mage);
                break;

            default:
                var incinerate = new Incinerate();
                currentSpell = incinerate.Incineration(mage);
                break;
            }

            return(currentSpell);
        }
        private static CurrentSpell ProtectorCommands(Player warrior)
        {
            ConsoleKeyInfo enter = new ConsoleKeyInfo();

            Console.Clear();
            var counter = 1;

            while (enter.Key != ConsoleKey.Enter)
            {
                if (enter.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                }
                else if (enter.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                }

                GameTitle.GetTitle();
                string actionSelect = $"SELECT ACTION FOR {warrior.Name}";
                string shieldSlam   = $"SHIELD SLAM-- DEAL {warrior.Armor} DAMAGE, STUN OPPONENT FOR HIS TURN, COOLDOWN: 2";
                string maceSwing    = $"MACE SWING-- DAMAGE:{warrior.Damage * 1.5}, NO COOLDOWN";
                string armorUp      = $"ARMOR UP-- GAIN 200 ARMOR, NO COOLDOWN";
                string hibernate    = $"HIBERNATE-- HEAL FOR {warrior.HealthRegen*4}, TAKE 50% DAMAGE REDUCTION FOR OPPONENT'S TURN, COOLDOWN: 3";
                Console.WriteLine("{0}", actionSelect);
                switch (counter)
                {
                case 1:
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("{0,2}", "-> " + shieldSlam);
                    Console.WriteLine("{0,2}", maceSwing);
                    Console.WriteLine("{0,2}", armorUp);
                    Console.WriteLine("{0,2}", hibernate);
                    break;

                case 2:
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("{0,2}", shieldSlam);
                    Console.WriteLine("{0,2}", "-> " + maceSwing);
                    Console.WriteLine("{0,2}", armorUp);
                    Console.WriteLine("{0,2}", hibernate);
                    break;

                case 3:
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("{0,2}", shieldSlam);
                    Console.WriteLine("{0,2}", maceSwing);
                    Console.WriteLine("{0,2}", "-> " + armorUp);
                    Console.WriteLine("{0,2}", hibernate);
                    break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("{0,2}", shieldSlam);
                    Console.WriteLine("{0,2}", maceSwing);
                    Console.WriteLine("{0,2}", armorUp);
                    Console.WriteLine("{0,2}", "-> " + hibernate);
                    break;

                default:
                    if (counter == 5)
                    {
                        counter = 1;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.WriteLine("{0,2}", "-> " + shieldSlam);
                        Console.WriteLine("{0,2}", maceSwing);
                        Console.WriteLine("{0,2}", armorUp);
                        Console.WriteLine("{0,2}", hibernate); break;
                    }
                    else if (counter == 0)
                    {
                        counter = 4;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.WriteLine("{0,2}", shieldSlam);
                        Console.WriteLine("{0,2}", maceSwing);
                        Console.WriteLine("{0,2}", armorUp);
                        Console.WriteLine("{0,2}", "-> " + hibernate); break;
                    }
                    break;
                }
                enter = Console.ReadKey();
                Console.Clear();
            }
            var currentSpell = new CurrentSpell();

            switch (counter)
            {
            case 1:
                var shieldSlam = new ShieldSlam();
                currentSpell = shieldSlam.GetShieldSlam(warrior);
                break;

            case 2:
                var maceSwing = new MaceSwing();
                currentSpell = maceSwing.GetMaceSwing(warrior);
                break;

            case 3:
                var armorUpSpell = new ArmorUp();
                currentSpell = armorUpSpell.GetArmorUp(warrior);
                break;

            default:
                var hibernate = new Hibernate();
                currentSpell = hibernate.GetHibernate(warrior);
                break;
            }

            return(currentSpell);
        }
        private static CurrentSpell BerserkerCommands(Player warrior)
        {
            ConsoleKeyInfo enter = new ConsoleKeyInfo();

            Console.Clear();
            var counter = 1;

            while (enter.Key != ConsoleKey.Enter)
            {
                if (enter.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                }
                else if (enter.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                }
                GameTitle.GetTitle();
                string actionSelect = $"SELECT ACTION FOR {warrior.Name}";
                string goBerserk    = $"BERSERK MODE-- DO DOUBLE DAMAGE FOR NEXT 3 ROUNDS, COST: 200HP, COOLDOWN: 5";
                string axeChop      = $"AXE CHOP-- DAMAGE:{warrior.Damage * 2}, NO COOLDOWN";
                string wildAxes     = $"WILD AXES-- DAMAGE:{warrior.Damage * 4}, COOLDOWN: 3";
                string execute      = $"EXECUTE-- KILL ENEMY IF HIS HP IS BELOW 700";
                Console.WriteLine("{0}", actionSelect);
                switch (counter)
                {
                case 1:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", "-> " + goBerserk);
                    Console.WriteLine("{0,2}", axeChop);
                    Console.WriteLine("{0,2}", wildAxes);
                    Console.WriteLine("{0,2}", execute); break;

                case 2:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", goBerserk);
                    Console.WriteLine("{0,2}", "-> " + axeChop);
                    Console.WriteLine("{0,2}", wildAxes);
                    Console.WriteLine("{0,2}", execute); break;

                case 3:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", goBerserk);
                    Console.WriteLine("{0,2}", axeChop);
                    Console.WriteLine("{0,2}", "-> " + wildAxes);
                    Console.WriteLine("{0,2}", execute); break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0,2}", goBerserk);
                    Console.WriteLine("{0,2}", axeChop);
                    Console.WriteLine("{0,2}", wildAxes);
                    Console.WriteLine("{0,2}", "-> " + execute); break;

                default:
                    if (counter == 5)
                    {
                        counter = 1;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("{0,2}", "-> " + goBerserk);
                        Console.WriteLine("{0,2}", axeChop);
                        Console.WriteLine("{0,2}", wildAxes);
                        Console.WriteLine("{0,2}", execute); break;
                    }
                    else if (counter == 0)
                    {
                        counter = 4;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("{0,2}", goBerserk);
                        Console.WriteLine("{0,2}", axeChop);
                        Console.WriteLine("{0,2}", wildAxes);
                        Console.WriteLine("{0,2}", "-> " + execute); break;
                    }
                    break;
                }
                enter = Console.ReadKey();
                Console.Clear();
            }
            var currentSpell = new CurrentSpell();

            switch (counter)
            {
            case 1:
                var berserk = new Berserk();
                currentSpell = berserk.GoBerserk(warrior);
                break;

            case 2:
                var axeHit = new AxeChop();
                currentSpell = axeHit.GetHit(warrior);
                break;

            case 3:
                var wildAxe = new WildAxes();
                currentSpell = wildAxe.GetWildAxes(warrior);
                break;

            default:
                var execution = new Execute();
                currentSpell = execution.GetExecution(warrior);
                break;
            }
            return(currentSpell);
        }
        private static CurrentSpell SwordMCommands(Player warrior)
        {
            ConsoleKeyInfo enter = new ConsoleKeyInfo();

            Console.Clear();
            var counter = 1;

            while (enter.Key != ConsoleKey.Enter)
            {
                if (enter.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                }
                else if (enter.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                }
                GameTitle.GetTitle();
                string actionSelect = $"SELECT ACTION FOR {warrior.Name}";
                string levelUpCrit  = $"CRITICAL STRIKE-- LOSE THIS TURN AND HAVE 30% CHANCE FOR 2X CRITICAL STRIKE FOR EACH ACTION YOUR SWORDMASTER DOES UNTIL END OF GAME";
                string mirrorImage  = $"MIRROR IMAGE-- YOUR OPONENT LOSES 1 TURN, YOU DEAL {warrior.Damage} TO HIM, COOLDOWN: 3";
                string bladeSlash   = $"BLADESLASH-- DAMAGE:{warrior.Damage * 2} NO COOLDOWN";
                string windFury     = $"WINDFURY-- DAMAGE:{warrior.Damage * 5} COOLDOWN: 4";
                Console.WriteLine("{0}", actionSelect);
                switch (counter)
                {
                case 1:
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("{0,2}", "-> " + levelUpCrit);
                    Console.WriteLine("{0,2}", mirrorImage);
                    Console.WriteLine("{0,2}", bladeSlash);
                    Console.WriteLine("{0,2}", windFury); break;

                case 2:
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("{0,2}", levelUpCrit);
                    Console.WriteLine("{0,2}", "-> " + mirrorImage);
                    Console.WriteLine("{0,2}", bladeSlash);
                    Console.WriteLine("{0,2}", windFury); break;

                case 3:
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("{0,2}", levelUpCrit);
                    Console.WriteLine("{0,2}", mirrorImage);
                    Console.WriteLine("{0,2}", "-> " + bladeSlash);
                    Console.WriteLine("{0,2}", windFury); break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("{0,2}", levelUpCrit);
                    Console.WriteLine("{0,2}", mirrorImage);
                    Console.WriteLine("{0,2}", bladeSlash);
                    Console.WriteLine("{0,2}", "-> " + windFury); break;

                default:
                    if (counter == 5)
                    {
                        counter = 1;
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("{0,2}", "-> " + levelUpCrit);
                        Console.WriteLine("{0,2}", mirrorImage);
                        Console.WriteLine("{0,2}", bladeSlash);
                        Console.WriteLine("{0,2}", windFury); break;
                    }
                    else if (counter == 0)
                    {
                        counter = 4;
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("{0,2}", levelUpCrit);
                        Console.WriteLine("{0,2}", mirrorImage);
                        Console.WriteLine("{0,2}", bladeSlash);
                        Console.WriteLine("{0,2}", "-> " + windFury); break;
                    }
                    break;
                }
                enter = Console.ReadKey();
                Console.Clear();
            }
            var currentSpell = new CurrentSpell();

            switch (counter)
            {
            case 1:
                var criticalStrike = new CriticalStrike();
                currentSpell = criticalStrike.TurnOnCrit(warrior);
                break;

            case 2:
                var mirrorImage = new MirrorImage();
                currentSpell = mirrorImage.GetMirrorImage(warrior);
                break;

            case 3:
                var slash = new BladeSlash();
                currentSpell = slash.GetSlash(warrior);
                break;

            default:
                var windfury = new Windfury();
                currentSpell = windfury.GetWindFury(warrior);
                break;
            }
            return(currentSpell);
        }