Diablo IV Math Reference

Just a holding space for things until a better resource is put together.

Abilities/Procs that use “Base” damage
example: Toxic Claws (Druid Wrath Passive)
When “Base damage” is referenced this relates to the base damage value of an ability with 1 skill point, and ignores any +damage bonuses.
Using Toxic Claws as an example, rank 1 gives 8% of the base damage as a dot (damage over time) for 4 seconds, with 1 tick every second. Claw has a base damage value of 20%, increasing to 28% with 5 skill points. If we assume a total of 100% damage bonus modifiers, and a weapon that deals 1000 damage, this would return (1000 * 0.28 * 2.00) = 560 damage per hit.
Toxic Claws only considers the base 20% value and ignores damage multipliers, so if Claw crits it would generate (1000 * 0.2 * 0.08) = 16 total damage for the dot, or 4 per tick.
If additional skill ranks & damage modifiers were included the total would be 8% of 560, or 44.8, for 11.2 damage per tick.

Overpower with Crit damage
Reference video: https://www.youtube.com/watch?v=Py6G2clLxsU
TL;DR summary: Overpower uses “Base damage” as per above example, and is an extra block of damage on top of an existing attack.
Crit Damage = Damage * (1 + Crit Damage Bonus)
Overpowered Crit Damage = Damage * (1 + Crit Damage Bonus) + Base Damage * Overpowered Damage Bonus
Sticking with Claw as an example, with 250% crit damage and a 100% Overpower bonus:
Claw Crit = 1000 * 0.28 * (1 + 1) * (1 + 0.5) = 1960 crit
Claw Crit + Overpower = 1000 * (0.28 * (1 + 1) * (1 + 2.5) + 0.2 * (1 +1)) = 1000 * (1.96 + 0.4) = 2360 overpower crit

Non DoT damage over time effects vs attack speed
For those that have knowledge of how DoTs work with Haste in World of Warcraft then this will sound familiar.
Base tick speed appears to be 0.5 seconds for both DoTs like Rabies, or duration based area effects like Hurricane, however proper DoTs like Rabies do not scale with attack speed. This only applies for abilities with durations that can crit.

  1. Damage calculates as normal with bonuses
  2. Divide damage by base number of ticks to get per tick damage
  3. Divide tick duration by attacks per second (weapon attacks/sec with attack speed bonuses factored in) to get actual tick speed – need to recheck dot speed vs weapon attack speed, as this theory suggests slow weapon speeds reduce damage
  4. Divide base duration by actual tick speed to get actual tick count
  5. Multiply actual tick count by per tick damage (from 2) to get overall spell damage

Calculating Uptime for Vulnerable debuffs
I think this works
( ( C * N * D ) – (( C^2 )*( D / (T-2) ))*(( D / T )*(( D / T )+1)) / 2 ) / O
C = Chance to proc vuln debuff
N = Number of events
D = buff duration
T = time between events
O = Overall duration

Calculation explanation:
1. ( C * N * D ) works out the maximum uptime based on the chance to proc, the number of proc events within the timeframe, and the duration of the buff. Using Hurricane as an example (15% chance to trigger, 8 sec duration & 0.5 sec ticks for 17 total, 3 second debuff duration) 0.15 * 17 * 3 = 7.65 seconds.
2. To account for the reduction in uptime from refreshes we need to work out the chance that any given debuff will be reset to the full duration. To calculate this we check for the square of the proc chance (C^2 or 0.15 * 0.15 = 0.0225 or 2.25%) and multiply this by the debuff duration divided by the number of dot ticks that can refresh the debuff ( ( D / T ) – 1 or ( 3 / 0.5 ) – 1 = 5). The – 1 bit here is because if a refresh happens on the final tick no debuff uptime is lost. 2.25% * 5 gives a 11.25% chance that a proc will get refreshed early.
3. The next part works out how many dot ticks of time will be lost on average. The formula ( X * (X + 1))/2 gives the same result as adding 1+2+3+4+5+etc, where X is the highest number in the set. To get X in this case we take the duration & divide it by the tick time again ( 3/0.5 = 6) and get (6*(6+1))/2 = (6 * 7) /2 = 42/2 = 21. Multiply that by 11.25% to get 2.36 seconds of lost time.
4. Add that all together to get 7.65 – 2.36 = 5.29 seconds of uptime, and divide it by the overall duration of 8 seconds to get a 66.13% uptime.