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); } }
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); }
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(); }
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); } }
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); } } }