public void Calculate_WithPowerTransforms_ReturnsDamage() { // Arrange var random = new Mock <Random>(); random .Setup(m => m.Next(80, 101)) .Returns(100); var calculator = new BasePowerDamageCalculator(10, random.Object); var user = TestHelpers.CreateBasicCharacter(attack: 6); var damage = TestHelpers.CreateDamageAction(calculator); var target = TestHelpers.CreateBasicCharacter(defence: 5); var transforms = new PowerTransform[] { p => p + 10, p => p * 2, }; var item = TestHelpers.CreateItem( actionContainer: TestHelpers.CreateActionContainer( damagePowerTransforms: transforms ) ); _ = user.EquipItem(item); // Act var calculation = calculator.Calculate(user, damage, new[] { target }).Single(); // Assert Assert.Multiple(() => { Assert.That(calculation.Success, Is.True); Assert.That(calculation.Amount, Is.EqualTo(40)); }); }
/// <summary> /// Adds the given damage power transform to the action container. /// </summary> /// <param name="transform">The damage power transform for the action container.</param> public ActionContainerBuilder WithDamagePowerTransform(PowerTransform transform) { _container.AddDamagePowerTransform(transform); return(this); }
/// <summary> /// Adds an attack power transform function. /// </summary> /// <param name="transform">The attack power transform function to add.</param> public void AddDamagePowerTransform(PowerTransform transform) { DamagePowerTransforms.Add(transform); }