Damage Formula

From Wargroove Wiki
Jump to navigation Jump to search

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.

Wargroove 1 Formula[edit]

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).

<img src="https://latex.codecogs.com/png.latex?\inline&space;\dpi{200}&space;\tiny&space;((Power*Critical*Weather)+RandomMod)*AtkHealth*Groove*(1-\frac{DefHealth*Defence}{10})" title="Full Damage Formula" style="max-width: 100%;"/>

Variables[edit]

Variable Description
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.
  • If Critical Hit condition is met, this value will match the attacking unit's Critical Hit ratio.
    • For most units, this ratio is 1.5, but can vary from 1.35 to 2.5.
  • If Critical Hit condition is not met, this value will be 1
AtkHealth The current Health of the attacking unit as a percentage, ranging from 1% (0.01) to 100% (1).
  • Damaging Grooves deal damage calculating the attacker's health as 100%.
  • A Sparrow Bomb's Detonate is not a standard attack, and calculates as 100%.
Weather A damage multiplier as a result of weather.
  • If the target is an Air unit during Windy weather, this is 1.2
  • If the target is an Air unit during Severe weather, this is 0.8
  • Otherwise, this is 1.0
Groove Some Grooves use an additional multiplier proportional to a conventional attack.
  • For all standard attacks, this value will be 1
  • Koji Sparrow Bombs' Detonate use the value 50% (0.5)
  • Refer to Groove information on the proportional value of each Groove ability.
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.

  • During Puzzle Mode this will always 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.

Example[edit]

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:

<img src="https://latex.codecogs.com/png.latex?\dpi{120}&space;\large&space;((50*1.5)+RandomMod)*0.75*1*(1-\frac{0.60*4}{10})" title="\large (50 * 1.5) + RandomMod)*(1-\frac{0.65 * 4}{10})" style="max-width: 100%;"/>

Simplifying this down we get:

<img src="https://latex.codecogs.com/png.latex?\dpi{120}&space;\large&space;(75+RandomMod)*0.57" title="\large (75 + RandomMod)*0.6142" style="max-width: 100%;"/>

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[edit]

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.

Puzzle Mode[edit]

Within Puzzle mode, there is no random variance, the damage dealt will always be exactly the median value.

Wargroove 2 Formula[edit]

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).

<img src="https://latex.codecogs.com/png.latex?%5Cdpi%7B120%7D%20%5Clarge%20Power%20%5Ctimes%20Critical%20%5Ctimes%20AtkHealth%20%5Ctimes%20Multiplier%20%5Ctimes%20%281%20-%20%5Cfrac%7BDefHealth%20%5Ctimes%20Defence%7D%7B10%7D%29" title="Full Damage Formula" style="max-width: 100%;"/>

Variables[edit]

Variable Description
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.
  • If Critical Hit condition is met, this value will match the attacking unit's Critical Hit ratio.
    • For most units, this ratio is 1.5, but can vary from 1.35 to 2.5.
  • If Critical Hit condition is not met, this value will be 1
AtkHealth The current Health of the attacking unit as a percentage, ranging from 1% (0.01) to 100% (1).
  • Damaging Grooves deal damage calculating the attacker's health as 100%.
  • A Sparrow Bomb's Detonate is not a standard attack, and calculates as 100%.
Multiplier Some Grooves use an additional multiplier proportional to a conventional attack.
  • For all standard attacks, this value will be 1
  • Koji Tier 1 Sparrow Bombs' Detonate use the value 50% (0.5)
  • Refer to Groove information on the proportional value of each Groove ability.
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.

Example[edit]

Assume the attacker is a 75% health Soldier attacking a 60% health Dog on Mountain, with a Critical Hit.

Given these values we get:

<img src="https://latex.codecogs.com/png.latex?%5Cdpi%7B120%7D%20%5Clarge%2050%20%5Ctimes%201.5%20%5Ctimes%200.75%20%5Ctimes%201%20%5Ctimes%20%281-%5Cfrac%7B0.60%20%5Ctimes%204%7D%7B10%7D%29" title="\large (50 * 1.5) + RandomMod)*(1-\frac{0.65 * 4}{10})" style="max-width: 100%;"/>

Simplifying this down we get:

<img src="https://latex.codecogs.com/png.latex?%5Cdpi%7B120%7D%20%5Clarge%2050%20%5Ctimes%201.5%20%5Ctimes%200.75%20%5Ctimes%201%20%5Ctimes%200.76%20%3D%2042.75" style="max-width: 100%;"/>

We round the final answer to the nearest integer giving us 43 as the result.

Trivia[edit]

  • 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.