public void ShouldReturn30HitlagWhenHitlagMoreThan30() { var hitlagData = new HitlagProblemData { Damage = 50, CrouchingModifier = CrouchingModifier.NotCrouching, ElectricModifier = ElectricModifier.NormalAttack, HitlagMultiplier = 2 }; var result = _calculator.Hitlag(hitlagData); Assert.That(result, Is.EqualTo(30)); }
public void ShouldGetExpectedHitlag_NotCrouching_ElectricAttack() { var hitlagData = new HitlagProblemData { Damage = 20, CrouchingModifier = CrouchingModifier.NotCrouching, ElectricModifier = ElectricModifier.ElectricAttack, HitlagMultiplier = 1 }; var result = _calculator.Hitlag(hitlagData); Assert.That(result, Is.EqualTo(18)); }
public void ShouldGetExpectedHitlag(double damage, CrouchingModifier crouchModifier, ElectricModifier elecModifier, double hitlagMultiplier, int expectedResult) { var hitlagData = new HitlagProblemData { Damage = damage, CrouchingModifier = crouchModifier, ElectricModifier = elecModifier, HitlagMultiplier = hitlagMultiplier }; var result = _calculator.Hitlag(hitlagData); Assert.That(result, Is.EqualTo(expectedResult)); }
/// <summary> /// Returns the calculated Hitlag. /// </summary> /// <param name="data"></param> /// <returns></returns> public int Hitlag(HitlagProblemData data) { var retVal = (int)Math.Floor((data.Damage / 2.6 + 5) * data.ElectricModifier.GetModifierValue() * data.HitlagMultiplier * data.CrouchingModifier.GetModifierValue()) - 1; if (retVal > 30) { retVal = 30; } return retVal; }