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.

My Experiences with WoW Feedback

Back in 2013 there was a private feedback forum in the WoW forums, which is where a small group of players across PvE/PvP were able to give feedback directly to developers. This included current issues with the game, from bugs to spec design, as well as responding on topics that the wider community had yet to see like set bonuses.

Read more of this post

Elemental Disharmony – When a Rotation is Broken

Leaving utility spells/mechanics aside, the biggest problem for Elemental in terms of competitiveness is how single target damage output is (usually) lower than other specs. The core issue there is that there are four subsets of spells based on their secondary interactions:

  • Overload spells: Affected by Crit/Haste/Mastery in the same way (ie: Lighting Bolt)
  • Non-Overload spells: Affected by Crit/Haste in the same way, no Mastery interaction (ie: Earth Shock)
  • Lava Burst: Affected by Haste/Mastery, no Crit interaction
  • Double Haste Interaction: The DPET (damage per execute time) increases as the GCD decreases and the number of hits per cast increases as an additional haste interaction. Not modified by Mastery. Eg: Flame Shock, Fire Elemental
Read more of this post

Smart Simulations: Talent & Trait interactions

Last year I wrote a post on looking at talent interactions to look at how talents interact with each other. With the launch of Battle for Azeroth and my focus change towards more experimental theorycrafting ideas I’ve decided to revisit this subject. One issue I found mid-way through this is that just showing the interaction values, with 5 output related talent rows plus 3 different sources for Azerite Traits, doesn’t actually make it easy to answer the question of which combination is better. To answer that I’ve built a second process to combine the results.

This post is more of a reference document for people who want to replicate this process within their own systems or analysis tools. If others want to replicate this for their own specs I can help with some of the initial setup process. Read more of this post

Gearing Paths

My WoW project of late has been looking at secondary stats and better ways of eyeballing gear upgrades than using stat weights (read this post for more information on how stat weights are misused). The general idea is to produce a table where players can look up their total secondary ratings to find out how they should be distributed, but in a way that doesn’t result in drastically re-arranging gear & enchants every time they get an upgrade.

Read more of this post

WeakAura Reference Document

I’m putting a few of the frequent things I use into a post for future reference.

Read more of this post

An open letter from the Earthshrine Elemental Mods & MVPs to the Class Devs

An open letter from the Earthshrine Elemental Mods & MVPs to the Class Devs

Hello Class Developers,

This is a letter from the Elemental Shaman Mod & MVP team of the Earthshrine Discord Server regarding the current state of Elemental, and the current level of communication. As Battle for Azeroth has progressed through Alpha & Beta there have been a number of detailed forum posts from us that cover current problems, and while there have been some fairly amazing responses on other specs/classes the responses for Shaman have been few & far between.

Currently there are very few of the Earthshrine Mods or MVPs for either spec that currently plan to “main” their Shaman for Battle for Azeroth, and even then they have backup options.

Read more of this post

Re-roll tips for Elemental players

Are you considering re-rolling to another class for 8.0: Battle for Azeroth? Here are some tips based on my experience with other classes/specs if you’re not sure what class/spec to switch to. Note that hybrid classes only have one spec for ranged DPS

Read more of this post

Stat Distribution Analysis: Part 2

One week later and I think I’ve cracked this. Firstly, go back and read last weeks post if you haven’t already, and this old one on stat weights if you don’t understand why replacing stat weights is a good thing.

Read more of this post

Stat Distribution Analysis

One of the things I’ve wanted to do for a while is work out a decent way of estimating the ideal “stat ratio” based on some previously generated data vs a players current gear. My initial ideas were based around either building a grand “formula of everything” for a spec or using the stat scaling graphs to somehow build a model, but these were fairly complicated and required a lot of data.

I may have, by complete accident, worked out how to do this in a much easier way.

Read more of this post