Exemplo n.º 1
0
        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);
 }
Exemplo n.º 3
0
 /// <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);
 }