All combat in WarGroove is determined by various factors of the attacking and defending unit, with some random variation in attacks. This page provides information on the exact calculation of a unit's attack damage.
An online community-made Damage Calculator by Matsuzen is available to help perform calculations.
Below is the full damage formula for every attack in WarGroove.
- Any outcome value is rounded to the nearest integer, with half-values rounded up (e.g. 46.5 ➜ 47).
- Any value at or above 0.1 will be raised to a minimum of 1 damage.
- Damage is given as an integer value (e.g. 20 damage removes 20% Health).
|Power||Refer to the Damage Matrix. The expected level of damage the attacking unit will deal.
e.g. if a soldier is attacking a dog, this value will be 50.
|Critical||The damage modification as a result of Critical Hit conditions.
|AtkHealth||The current Health of the attacking unit as a percentage, ranging from 1% (0.01) to 100% (1).
|Weather||A damage multiplier as a result of weather.
|Groove||Some Grooves use an additional multiplier proportional to a conventional attack.
|RandomMod||A random variable.
This will take any value from -5 to +5, inclusive. This includes non-integer values (e.g. 2.37235).
All possible values are equally likely.
The Median value will be 0.
|DefHealth||The current Health of the defending unit as a percentage, ranging from 1% (0.01) to 100% (1).
If the Defence value is negative (e.g. on River), this value will be ignored, therefore calcuates as 1.
|Defence||The current Defence value of the tile the defending unit is positioned on.
e.g. when the defender is on a Forest, this value is 3.
Assume the attacker is a 75% health Soldier attacking a 60% health Dog on Mountain, with a Critical Hit. Since the target is not an Air unit, we can ignore Weather effects.
Given these values we get:
Simplifying this down we get:
We can calculate the Minimum, Median, and Maximum values by adjusting RandomMod. For example, if we want the Minimum damage we can deal, we treat RandomMod as -5, giving us 39.9. As we round to the nearest value this means the lowest possible damage will be 40.
Minimum and Maximum Probabilities
Because the calculation of the random value is non-integer, and many calculations produce non-integer ranges where only the end result is rounded, the vast majority of the time the minimum and maximum values are not as likely outcomes as other values.
Take the situation given in the Example. The full range is 39.9 to 45.6 (a range of 5.7). To achieve 40 it must randomly select any value below 40.5, giving only a 0.6 margin where this is possible. Similarly, the maximum value has only a 0.1 margin. This means hitting a Minimum damage in this scenario is only a 10.5% probability, and a Maximum is only a 1.8% probability. Conversely, a Median value is anything from 42.5 to 43.5, a whole 17.5% probability.
For clarity, all values between the Minimum and Maximum values are of equal probability, only the minimum and maximum values will ever differ.
Within Puzzle mode, there is no random variance, the damage dealt will always be exactly the median value.
- Ryota's Blade Dash is the only Groove in the game capable of increasing the damage variance of an attack. For example on the 31st dash it will have ±10 damage.
- Because defence applies after damage variance, it is possible to achieve +6 or -6 damage from the median when fighting on River terrain.
- Because of Plains defence, it is common to see maximum damage ranges appear to be ±5 from the median, even if statistically it is virtually an impossibility that is unlikely to have (or will ever) occur.
- Internally, the game does not calculate random values as a subtraction from the median, instead it takes a random amount added to minimum base damage value, using calculations to ensure the Median value is always the expected amount.