Exemplo n.º 1
0
        public static void CreateWarrior(string playerName, string typeOfWarrior)
        {
            List <Models.Action> actions = new List <Models.Action>();

            actions.Add(new Hit("HIT", Constants.BaseCooldown, Constants.BaseCost, Constants.WarriorDamage));
            if (typeOfWarrior == "SWORDMASTER")
            {
                actions.Add(new LevelUpCrit("LEVEL UP CRITICAL STRIKE", Constants.BaseCooldown, Constants.BaseCost));
                actions.Add(new MirrorImage("MIRROR IMAGE", Constants.BaseCooldown, 20, Constants.WarriorDamage));
                actions.Add(new WindFury("WINDFURY", Constants.BaseCooldown, 50, Constants.WarriorDamage * 4));
                Hero swordmaster = new SwordmasterWarrior(playerName, Constants.WarriorHealth, Constants.WarriorHealthRegen
                                                          , actions, Constants.HeroBaseArmor, Constants.WarriorStartingRage, Constants.WarriorDamage);
                players.Add(swordmaster);
            }
            else if (typeOfWarrior == "BERSERKER")
            {
                actions.Add(new GoBerserk("GO BERSERK", Constants.BaseCooldown, Constants.BaseCost, 100));
                actions.Add(new WildAxes("WILD AXES", Constants.BaseCooldown, 40, Constants.WarriorDamage * 3));
                actions.Add(new Execute("EXECUTE", Constants.BaseCooldown, 0, 700));
                Hero berserker = new BerserkerWarrior(playerName, Constants.WarriorHealth, Constants.WarriorHealthRegen
                                                      , actions, Constants.HeroBaseArmor, Constants.WarriorStartingRage, Constants.WarriorDamage);
                players.Add(berserker);
            }
            else
            {
                actions.Add(new ArmorUp("ARMOR UP", Constants.BaseCooldown, Constants.BaseCost, Constants.ProtectionWarriorArmor));
                actions.Add(new Hibernate("HIBERNATE", Constants.BaseCooldown, 40, Constants.WarriorHealthRegen * 4));
                actions.Add(new ShieldSlam("SHIELD SLAM", Constants.BaseCooldown, 30, Constants.WarriorDamage * 4));
                Hero protector = new ProtectionWarrior(playerName, Constants.WarriorHealth, Constants.WarriorHealthRegen
                                                       , actions, Constants.ProtectionWarriorArmor, Constants.WarriorStartingRage, Constants.WarriorDamage);
                players.Add(protector);
            }
        }
Exemplo n.º 2
0
        public void ActivatePassiveWithGoBerserk()
        {
            //Arrange
            BerserkerWarrior sut = new BerserkerWarrior("Avanger", health, healthRegeneration, new List <Action>()
            {
                new GoBerserk("GO BERSERK", 3, 3, 4)
            }, armor, rage, attackPower);

            //Act
            sut.ActivatePassive("GO BERSERK", sut);

            //Assert
            Assert.IsTrue(sut.IsBerserk);
            Assert.AreEqual(3, sut.PassiveDuration);
        }
Exemplo n.º 3
0
        public void ExecuteAgressiveAction(Hero player, Hero enemy)
        {
            var isCritical = CriticalChecker.CheckForCrit(player);

            if (isCritical)
            {
                CriticalPrinter.PrintCritical(player);
            }

            var isBerserk = HeroTypeChecker.CheckForPassive(player);

            if (isBerserk)
            {
                if (!isCritical)
                {
                    enemy.TakeDamage(this.Damage * 2);
                }
                else
                {
                    enemy.GainArmor(this.Damage * 3);
                }
                BerserkerWarrior warrior = (BerserkerWarrior)player;
                warrior.PassiveDuration--;
                if (warrior.PassiveDuration <= 0)
                {
                    warrior.IsBerserk = false;
                }
            }
            else
            {
                enemy.TakeDamage(this.Damage);
            }

            if (isCritical)
            {
                enemy.TakeDamage(this.Damage);
            }

            Warrior playerOnTurn = (Warrior)player;

            playerOnTurn.GetRageOnHit();
        }
Exemplo n.º 4
0
        private static bool GetClassTypePassive(Type typeOfHero, Hero player)
        {
            switch (typeOfHero.Name)
            {
            case "BerserkerWarrior":
                BerserkerWarrior berserker = (BerserkerWarrior)player;
                return(berserker.IsBerserk);

            case "FrostMage":
                FrostMage frost = (FrostMage)player;
                return(frost.IcyVeins);

            case "ArcaneMage":
                ArcaneMage arcane = (ArcaneMage)player;
                return(arcane.IsAmplified);

            case "ShadowPriest":
                ShadowPriest shadowPriest = (ShadowPriest)player;
                return(shadowPriest.S****t);

            default: return(false);
            }
        }
Exemplo n.º 5
0
        public void ExecuteAgressiveAction(Hero player, Hero enemy)
        {
            var isCrit = CriticalChecker.CheckForCrit(player);
            BerserkerWarrior playerOnTurn = (BerserkerWarrior)player;

            player.Actions.Where(a => a.Name == this.Name).First().SetCooldown(AbilityCooldownConstants.WildAxesCooldown);
            if (playerOnTurn.IsBerserk)
            {
                if (isCrit)
                {
                    enemy.TakeDamage(this.Damage * 4);
                    CriticalPrinter.PrintCritical(player);
                }
                else
                {
                    enemy.TakeDamage(this.Damage * 2);
                }

                playerOnTurn.PassiveDuration--;
                if (playerOnTurn.PassiveDuration <= 0)
                {
                    playerOnTurn.IsBerserk = false;
                }
            }
            else
            {
                if (isCrit)
                {
                    enemy.TakeDamage(this.Damage * 2);
                    CriticalPrinter.PrintCritical(player);
                }
                else
                {
                    enemy.TakeDamage(this.Damage);
                }
            }
        }