diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java index 344ff6a78..1045e889a 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java @@ -488,6 +488,7 @@ public final class CombatController implements VisualEffectCompletedCallback { } // see this post for explenations about the calculation: https://andorstrail.com/viewtopic.php?f=3&t=6661 + // if you change code here make sure to run the tests in CombatControllerTest.java public static float getAverageDamagePerHit(final Actor attacker, final Actor target) { final int numPossibleOutcomes = attacker.getDamagePotential().max - attacker.getDamagePotential().current + 1; float avgNonCriticalDamage = 0; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatControllerTest.java.txt b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatControllerTest.java.txt new file mode 100644 index 000000000..6c47080f3 --- /dev/null +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatControllerTest.java.txt @@ -0,0 +1,30 @@ +package com.gpl.rpg.AndorsTrail.controller; + +import com.gpl.rpg.AndorsTrail.model.actor.Actor; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class CombatControllerTest { + @Test + public void getAverageDamagePerHit() throws Exception { + Actor attacker = new Actor(null, false, false); + attacker.attackChance = 100; + attacker.damagePotential.set(5, 3); + + Actor target = new Actor(null, false, false); + target.damageResistance = 3; + target.blockChance = 50; + + float averageDamagePerHit = CombatController.getAverageDamagePerHit(attacker, target); + assertEquals(0.5, averageDamagePerHit, 0.01); + + attacker.criticalSkill = 30; + attacker.criticalMultiplier = 2.5f; + + averageDamagePerHit = CombatController.getAverageDamagePerHit(attacker, target); + assertEquals(1.038, averageDamagePerHit, 0.01); + } + +} \ No newline at end of file