Exemple #1
0
        public Enemy(EnemyClassType enemyClass)
        {
            _enemyClass = enemyClass;
            _isAlive    = true;

            switch (enemyClass)
            {
            case EnemyClassType.minion:
                minionType = new Minion("Minion", Alignment.evil);
                break;

            case EnemyClassType.creeper:
                creeperType = new Creeper("Creeper", Alignment.evil);
                break;

            case EnemyClassType.skeleton:
                skeletontype = new Skeleton("Skeleton", Alignment.evil);
                break;

            case EnemyClassType.orc:
                orcType = new Orc("Orc", Alignment.evil);
                break;

            default:
                break;
            }
        }
Exemple #2
0
        public void AttackPlayer1(HeroClassTypes heroClassTypes, Hero hero, EnemyClassType enemyClass)
        {
            int damage        = ReturnDamageDealt(enemyClass);
            int reducedDamage = EnemyDamageReductionFromDefence(damage, heroClassTypes, hero);

            PlayerHealthReduction1(hero, reducedDamage, heroClassTypes);
        }
Exemple #3
0
        public void AttackEnemy1(HeroClassTypes heroClassTypes, Enemy enemy, EnemyClassType enemyClass, int missFactor)
        {
            int damage        = ReturnDamageDealt(heroClassTypes, missFactor);
            int reducedDamage = EnemyDamageReductionFromDefence(damage, enemyClass, enemy);

            EnemyHealthReduction1(enemy, reducedDamage, enemyClass);
        }
Exemple #4
0
        private int EnemyDamageReductionFromDefence(int damage, EnemyClassType enemyClass, Enemy enemy)
        {
            int defence       = 0;
            int reducedDamage = 0;

            switch (enemyClass)
            {
            case EnemyClassType.minion:
                defence       = enemy.minionType.Defence();
                reducedDamage = DamageChecker(damage, defence);
                break;

            case EnemyClassType.creeper:
                defence       = enemy.creeperType.Defence();
                reducedDamage = DamageChecker(damage, defence);
                break;

            case EnemyClassType.skeleton:
                defence       = enemy.skeletontype.Defence();
                reducedDamage = DamageChecker(damage, defence);
                break;

            case EnemyClassType.orc:
                defence       = enemy.orcType.Defence();
                reducedDamage = DamageChecker(damage, defence);
                break;

            default:
                break;
            }

            DamageDealt = reducedDamage;

            return(reducedDamage);
        }
        public static void CharacterDisplay(HeroClassTypes heroClass, EnemyClassType enemyClass)
        {
            AnimationsData animationsData = new AnimationsData();
            int            playerIndex;
            int            enemyIndex;
            string         display;

            playerIndex = ReturnHeroAnimationListNumber(heroClass);
            enemyIndex  = ReturnEnemyAnimationListNumber(enemyClass);

            display = animationsData.DisplayCharacter(playerIndex, enemyIndex);
            Console.WriteLine(display);
        }
        public static void AnimationBattle(HeroClassTypes heroClass, EnemyClassType enemyClass, int playerCombatSelecter, int enemyCombatSelecter, Hero hero, Enemy enemy, bool homePage)
        {
            MenuQueries.ConsoleClearResetMenu();

            int heroAnimationListNumber;
            int enemyAnimationListNumber;
            int animationIndex;

            heroAnimationListNumber  = ReturnHeroAnimationListNumber(heroClass);
            enemyAnimationListNumber = ReturnEnemyAnimationListNumber(enemyClass);

            animationIndex = ReturnAnimationIndexNumber(playerCombatSelecter, enemyCombatSelecter);

            AnimationPlay(ReturnAnimationArray(heroAnimationListNumber, enemyAnimationListNumber, animationIndex), heroClass, enemyClass, hero, enemy, homePage);
        }
        public void Fighting(HeroClassTypes heroClassTypes, EnemyClassType enemyClassType, StateManager stateManager, int playerCombatSelecter, int enemyCombatSelecter, Hero playerHero, Enemy enemy)
        {
            {
                if (playerCombatSelecter == 1)
                {
                    if (enemyCombatSelecter == 1)
                    {
                        playerHero.AttackEnemy1(heroClassTypes, enemy, enemyClassType, stateManager.AttackMissFactor());
                        enemy.AttackPlayer1(heroClassTypes, playerHero, enemyClassType);

                        MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter);
                    }
                    else if (enemyCombatSelecter == 2)
                    {
                        enemy.EnemyDefend(enemyClassType, true);
                        playerHero.AttackEnemy1(heroClassTypes, enemy, enemyClassType, stateManager.AttackMissFactor());
                        enemy.EnemyDefend(enemyClassType, false);

                        MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter);
                    }
                }
                else if (playerCombatSelecter == 2)
                {
                    if (enemyCombatSelecter == 1)
                    {
                        playerHero.PlayerDefend(heroClassTypes, true);
                        enemy.AttackPlayer1(heroClassTypes, playerHero, enemyClassType);
                        playerHero.PlayerDefend(heroClassTypes, false);

                        MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter);
                    }
                    else if (enemyCombatSelecter == 2)
                    {
                        playerHero.PlayerDefend(heroClassTypes, true);
                        enemy.EnemyDefend(enemyClassType, true);
                        playerHero.PlayerDefend(heroClassTypes, false);
                        enemy.EnemyDefend(enemyClassType, false);

                        MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter);
                    }
                }
                else
                {
                    playerHero.UseItem(heroClassTypes);
                }
            }
        }
        private static string CharacterInformationEnemyNameSheet(Enemy enemy, EnemyClassType enemyClass)
        {
            switch (enemyClass)
            {
            case EnemyClassType.minion:
                return(enemy.minionType.Name.ToUpper());

            case EnemyClassType.creeper:
                return(enemy.creeperType.Name.ToUpper());

            case EnemyClassType.skeleton:
                return(enemy.skeletontype.Name.ToUpper());

            case EnemyClassType.orc:
                return(enemy.orcType.Name.ToUpper());

            default:
                return("No Name Available");
            }
        }
        private static int ReturnEnemyAnimationListNumber(EnemyClassType enemyClass)
        {
            switch (enemyClass)
            {
            case EnemyClassType.minion:
                return(0);

            case EnemyClassType.creeper:
                return(1);

            case EnemyClassType.skeleton:
                return(2);

            case EnemyClassType.orc:
                return(3);

            default:
                return(0);
            }
        }
        private static string CharacterInformationEnemyHealthSheet(Enemy enemy, EnemyClassType enemyClass)
        {
            switch (enemyClass)
            {
            case EnemyClassType.minion:
                return(enemy.minionType.Health.ToString());

            case EnemyClassType.creeper:
                return(enemy.creeperType.Health.ToString());

            case EnemyClassType.skeleton:
                return(enemy.skeletontype.Health.ToString());

            case EnemyClassType.orc:
                return(enemy.orcType.Health.ToString());

            default:
                return("No Health Available");
            }
        }
Exemple #11
0
        public int GettingHealth(EnemyClassType enemyClass)
        {
            switch (enemyClass)
            {
            case EnemyClassType.minion:
                return(minionType.Health);

            case EnemyClassType.creeper:
                return(creeperType.Health);

            case EnemyClassType.skeleton:
                return(skeletontype.Health);

            case EnemyClassType.orc:
                return(orcType.Health);

            default:
                return(1);
            }
        }
Exemple #12
0
        private void EnemyHealthReduction1(Enemy enemy, int damage, EnemyClassType enemyType)
        {
            int healthSetter = 0;
            int enemyHealth  = enemy.GettingHealth(enemyType);

            int currentHealth   = enemyHealth - damage;
            int healthReduction = enemyHealth - damage;

            if (currentHealth <= 0)
            {
                healthSetter = 0;
                enemy.SettingHealth(enemyType, healthSetter);
                enemy.IsAlive = false;
            }
            else
            {
                Console.WriteLine($"You attack for {damage}");

                enemy.SettingHealth(enemyType, healthReduction);
            }
        }
Exemple #13
0
        private int ReturnDamageDealt(EnemyClassType enemyClass)
        {
            int damage = 0;

            ISAttacking = true;

            switch (enemyClass)
            {
            case EnemyClassType.minion:
                damage = minionType.Attack();
                break;

            case EnemyClassType.creeper:
                damage = creeperType.Attack();
                break;

            case EnemyClassType.skeleton:
                damage = skeletontype.Attack();
                break;

            case EnemyClassType.orc:
                damage = orcType.Attack();
                break;

            default:
                break;
            }

            if (damage == 0)
            {
                Console.WriteLine("No damage done!");
                ISMissing = true;
                return(0);
            }
            else
            {
                ISMissing = false;
                return(damage);
            }
        }
Exemple #14
0
        public void SettingHealth(EnemyClassType enemyClass, int healthNewHealthValue)
        {
            switch (enemyClass)
            {
            case EnemyClassType.minion:
                minionType.Health = healthNewHealthValue;
                break;

            case EnemyClassType.creeper:
                creeperType.Health = healthNewHealthValue;
                break;

            case EnemyClassType.skeleton:
                skeletontype.Health = healthNewHealthValue;
                break;

            case EnemyClassType.orc:
                orcType.Health = healthNewHealthValue;
                break;

            default:
                break;
            }
        }
Exemple #15
0
        public void PlayerLevelManager(Enemy enemy, EnemyClassType enemyClass, HeroClassTypes heroClass, StateManager stateManager)
        {
            if (enemy.IsAlive == false)
            {
                switch (enemyClass)
                {
                case EnemyClassType.minion:
                    PlayerExperience += 40;
                    break;

                case EnemyClassType.creeper:
                    PlayerExperience += 60;
                    break;

                case EnemyClassType.skeleton:
                    PlayerExperience += 100;
                    break;

                case EnemyClassType.orc:
                    PlayerExperience += 150;
                    break;

                default:
                    break;
                }
            }

            if (PlayerExperience >= _expForLevelUp)
            {
                stateManager.StoreLevelUpDataOLD(_currentLevel);
                PlayerLevel++;
                stateManager.StoreLevelUpDataNEW(_currentLevel);

                _expForLevelUp = _expForLevelUp + Convert.ToInt32(_expForLevelUp * 2);

                switch (heroClass)
                {
                case HeroClassTypes.spearman:
                    stateManager.StoreLevelUpDataOLD(heroSpear.Health, heroSpear.Strength, heroSpear.Dexterity);
                    heroSpear.LevelUp();
                    stateManager.StoreLevelUpDataNEW(heroSpear.Health, heroSpear.Strength, heroSpear.Dexterity);
                    break;

                case HeroClassTypes.swordsman:
                    stateManager.StoreLevelUpDataOLD(heroSword.Health, heroSword.Strength, heroSword.Dexterity);
                    heroSword.LevelUp();
                    stateManager.StoreLevelUpDataNEW(heroSword.Health, heroSword.Strength, heroSword.Dexterity);
                    break;

                case HeroClassTypes.ranger:
                    stateManager.StoreLevelUpDataOLD(heroRanger.Health, heroRanger.Strength, heroRanger.Dexterity);
                    heroRanger.LevelUp();
                    stateManager.StoreLevelUpDataNEW(heroRanger.Health, heroRanger.Strength, heroRanger.Dexterity);
                    break;

                default:
                    break;
                }
                MenuQueries.CharacterLevelUp(stateManager);
                Console.ReadKey();
            }
        }
        private static void AnimationPlay(string[] animationClip, HeroClassTypes heroClass, EnemyClassType enemyClass, Hero hero, Enemy enemy, bool homePage)
        {
            int delayBetweenAnimationCycles = 250;

            for (int i = 0; i < animationClip.Length; i++)
            {
                MenuQueries.CharacterInformationSheet(heroClass, hero, enemy, enemyClass);
                Utilities.ColorWriteLines(animationClip[i], ConsoleColor.Gray);
                MenuQueries.CharacterInformationBattleSheet(hero, enemy, homePage);
                Thread.Sleep(delayBetweenAnimationCycles);
                MenuQueries.ConsoleClearResetMenu();
            }

            for (int i = animationClip.Length - 1; i >= 0; i--)
            {
                MenuQueries.CharacterInformationSheet(heroClass, hero, enemy, enemyClass);
                Utilities.ColorWriteLines(animationClip[i], ConsoleColor.Gray);
                MenuQueries.CharacterInformationBattleSheet(hero, enemy, homePage);
                Thread.Sleep(delayBetweenAnimationCycles);

                if (i != 0)
                {
                    MenuQueries.ConsoleClearResetMenu();
                }
            }
        }
        public static void CharacterInformationSheet(HeroClassTypes heroClass, Hero hero, Enemy enemy, EnemyClassType enemyClass)
        {
            string health     = "Health";
            string weapons    = "Weapon";
            string armour     = "Armour";
            string item       = "Item";
            string spacer     = "--";
            char   lineSpacer = '-';
            string blank      = " ";

            Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1));
            Console.WriteLine($"{spacer} {CharacterInformationPlayerNameSheet(hero, heroClass),-50}{spacer} {CharacterInformationEnemyNameSheet(enemy, enemyClass),-50} {spacer}");
            Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1));

            Console.WriteLine(string.Format($"{spacer} {health,-10} : {CharacterInformationPlayerHealthSheet(hero, heroClass),-37}{spacer} {health,-10} : {CharacterInformationEnemyHealthSheet(enemy, enemyClass),-37} {spacer}"));
            Console.WriteLine(string.Format($"{spacer} {weapons,-10} : {hero.Weapon.Name,-37}{spacer} {weapons,-10} : {blank,-37} {spacer}"));
            Console.WriteLine(string.Format($"{spacer} {armour,-10} : {hero.Armor.Name,-37}{spacer} {armour,-10} : {blank,-37} {spacer}"));
            Console.WriteLine(string.Format($"{spacer} {item,-10} : {CharacterInformationEnemyPotionTypeheet(hero),-37}{spacer} {item,-10} : {blank,-37} {spacer}"));

            Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1));
            Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1));
        }
 public static void BattleDisplayPage(HeroClassTypes heroClass, Hero hero, Enemy enemy, EnemyClassType enemyClass, bool homePage, int playerCombatSelecter, int enemyCombatSelecter)
 {
     Animation.AnimationBattle(heroClass, enemyClass, playerCombatSelecter, enemyCombatSelecter, hero, enemy, homePage);
 }
 public static void BattleDisplayPage(HeroClassTypes heroClass, Hero hero, Enemy enemy, EnemyClassType enemyClass, bool homePage)
 {
     CharacterInformationSheet(heroClass, hero, enemy, enemyClass);
     Animation.CharacterDisplay(heroClass, enemyClass);
     CharacterInformationBattleSheet(hero, enemy, homePage);
 }
Exemple #20
0
        public void EnemyDefend(EnemyClassType enemyClass, bool defending)
        {
            DamageDealt = 0;

            if (defending == true)
            {
                ISAttacking = false;
            }

            switch (enemyClass)
            {
            case EnemyClassType.minion:
                if (defending == true)
                {
                    Console.WriteLine("The enemy is defending!");
                    minionType.IsDefending = true;
                }
                else
                {
                    minionType.IsDefending = false;
                }
                break;

            case EnemyClassType.creeper:
                if (defending == true)
                {
                    Console.WriteLine("The enemy is defending!");
                    creeperType.IsDefending = true;
                }
                else
                {
                    creeperType.IsDefending = false;
                }
                break;

            case EnemyClassType.skeleton:
                if (defending == true)
                {
                    Console.WriteLine("The enemy is defending!");
                    skeletontype.IsDefending = true;
                }
                else
                {
                    skeletontype.IsDefending = false;
                }
                break;

            case EnemyClassType.orc:
                if (defending == true)
                {
                    Console.WriteLine("The enemy is defending!");
                    orcType.IsDefending = true;
                }
                else
                {
                    orcType.IsDefending = false;
                }
                break;

            default:
                break;
            }
        }