Ejemplo n.º 1
0
 /// <summary>
 /// Sets the built damage action to use percentage-of-last-received-move damage.
 /// </summary>
 /// <param name="builder">The damage action builder.</param>
 /// <param name="percentage">The percentage of damage to deal.</param>
 /// <param name="actionHistory">The action history.</param>
 public static DamageActionBuilder PercentageOfLastReceivedMoveDamage(
     this DamageActionBuilder builder,
     int percentage,
     IActionHistory actionHistory)
 {
     return(builder.WithDamageCalculator(new PercentageOfLastReceivedMoveDamageCalculator(percentage, actionHistory)));
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Sets the built damage action to target the user of the move
 /// containing the action that last affected the user.
 /// </summary>
 /// <param name="builder">The damage action builder.</param>
 /// <param name="actionHistory">The action history.</param>
 public static DamageActionBuilder Retaliates(
     this DamageActionBuilder builder,
     IActionHistory actionHistory)
 {
     return(builder.WithActionTargetCalculator(new RetaliationActionTargetCalculator(actionHistory))
            .WithTag(DamageTags.Retaliation));
 }
Ejemplo n.º 3
0
        public void WithActionTargetCalculator_NullArgument_Throws()
        {
            // Arrange
            var builder = new DamageActionBuilder();

            // Act and Assert
            Assert.Throws <ArgumentNullException>(() => _ = builder.WithActionTargetCalculator(null));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Sets the built damage action to use percentage-of-last-received-move damage.
 /// </summary>
 /// <param name="builder">The damage action builder.</param>
 /// <param name="startingBasePower">The starting base power.</param>
 /// <param name="linearFactor">The linear factor.</param>
 /// <param name="random">The random number generator.</param>
 /// <param name="actionHistory">The action history.</param>
 public static DamageActionBuilder BasePowerIncreasesLinearlyWithUses(
     this DamageActionBuilder builder,
     int startingBasePower,
     int linearFactor,
     IRandom random,
     IActionHistory actionHistory)
 {
     return(builder.WithDamageCalculator(new BasePowerIncreasesLinearlyWithUsesDamageCalculator(startingBasePower, linearFactor, random, actionHistory)));
 }
Ejemplo n.º 5
0
        public void Build_MissingActionTargetCalculator_Throws()
        {
            // Arrange
            var builder = new DamageActionBuilder()
                          .WithBasePower(20, Mock.Of <Random>());

            // Act and Assert
            Assert.Throws <InvalidOperationException>(() => _ = builder.Build());
        }
Ejemplo n.º 6
0
        public void Build_MissingDamageCalculator_Throws()
        {
            // Arrange
            var builder = new DamageActionBuilder()
                          .TargetsOthers();

            // Act and Assert
            Assert.Throws <InvalidOperationException>(() => _ = builder.Build());
        }
Ejemplo n.º 7
0
        public void Build_CallsPresent_Succeeds()
        {
            // Arrange
            var builder = new DamageActionBuilder()
                          .AbsoluteDamage(20)
                          .TargetsAll();

            // Act
            var damage = builder.Build();

            // Assert
            Assert.That(damage, Is.Not.Null);
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Sets the built damage action to target a single enemy chosen by the user.
 /// </summary>
 /// <param name="builder">The damage action builder.</param>
 /// <param name="userInput">The user input.</param>
 /// <param name="gameOutput">The game output.</param>
 public static DamageActionBuilder UserSelectsSingleEnemy(this DamageActionBuilder builder, IUserInput userInput)
 {
     return(builder.WithActionTargetCalculator(new SingleEnemyActionTargetCalculator(userInput)));
 }