[Theorycraft] Calculating frostbolt damage exactly
Posted: Mon Feb 08, 2016 3:22 am
This post is for those who are interested in calculating the theoretical average damage of their frostbolts, and also finding out exact stat weightings for frost mages. This is important because it allows us to accurately compare two pieces of gear to work out which is better. Stat weightings are not constant values, but rather vary according to the actual stats you have. Crit and hit in particular become more valuable the more spellpower you have.
If you don't want to read the rest of this post, just look at this spreadsheet:
https://docs.google.com/spreadsheets/d/ ... sp=sharing
The spreadsheet lets you:
To get a formula for average frostbolt damage, we first find the average frostbolt damage before stats are taken into account. Rank 10 frostbolt does between 429 and 464 damage according to db.vanillagaming.org. The average of this minimum and maximum is 446.5.
According to the Theorycraft addon, r10 frostbolt has a spellpower coefficient of 0.863. If you don't know what that means - all spells that scale with a spellpower have a specific value called their spellpower coefficient which is multiplied by your spellpower to obtain their actual damage.
So plugging in the values for r10 frostbolt, we have our first estimate for a formula for frostbolt damage:
Now we add in the possibility for critical strikes. Every 59.5 points of intellect gives 1% crit, meaning that your total crit chance is given by your bonus crit + your intellect / 5950. Since we have 5/5 Ice Shards our crits deal 200% damage, and so every percentage of crit increases your average damage by 1% (suppose you cast 100 frostbolts, if you have 1% extra crit then an extra 1 frostbolt would be expected to crit so you have increased your expected damage by the amount of 1 frostbolt i.e. 1%).
So with crit,
Against a level 63 enemy, you have 17% chance to miss with spells. Assuming that gaining 1% hit increases your average damage by 1%, we now have:
Then, using the presumption that every 10 spell penetration increases your average damage by 2.5%, we have:
And finally, with the 6% increased frost damage from Piercing Ice we have:
Using this formula it is now possible to work out your expected DPS simply by dividing by 2.5 (the cast time of frostbolt).
In order to get stat weightings, we just work out what our frostbolt damage would be if we increased a certain stat by a single unit (a unit being for example 10 spellpower, or 1% crit). This is what the Damage increased caused by stat increase column in the spreadsheet is showing. The stat weightings are all relative to the gain you get from 10 spellpower, which is fixed at 1.
I do not claim that any of the formulas here are the exact methods that Nostalrius uses to calculate damage. They are good estimates based on available information. If anyone notices mistakes or has queries, then I will be more than happy to update this post and the spreadsheet based on comments in this thread. Spell penetration is the mechanic which I am most unsure about, however the formulas used for hit and crit may also be slightly wrong so please do correct me if necessary.
Changelog
1.1
If you don't want to read the rest of this post, just look at this spreadsheet:
https://docs.google.com/spreadsheets/d/ ... sp=sharing
The spreadsheet lets you:
- Calculate the average damage of your frostbolt with your current gear
- Calculate your expected DPS with frostbolt
- Calculate stat weightings for spell power, intellect, crit, hit, and spell pen
- Work out how much a particular piece of gear improves your damage, allowing gear to be compared
- Make a copy of the spreadsheet in your Google Drive so that you can edit it
- Put in the stats box your current gear (for reference, example stats for certain sets of gear are given at the bottom of the spreadsheet)
- You will see that stat weightings based on your gear are calculated, as is your expected frostbolt damage and DPS
- If you want to compare two items in a certain slot, set your stats to be as they would be without any item in that slot. Then, put the stats for the item in the "Item Comparison" section and the spreadsheet will calculate which is better.
- You are level 60
- You are fighting a level 63 enemy (a boss)
- You are using rank 10 frostbolt and nothing else
- You have 2/2 Arcane subtlety, giving you a base of 10 spell pen
- You have 5/5 Ice Shards, making your crits deal 200% damage
- You have 3/3 Piercing ice, increasing the damage done by frost spells by 6%
To get a formula for average frostbolt damage, we first find the average frostbolt damage before stats are taken into account. Rank 10 frostbolt does between 429 and 464 damage according to db.vanillagaming.org. The average of this minimum and maximum is 446.5.
According to the Theorycraft addon, r10 frostbolt has a spellpower coefficient of 0.863. If you don't know what that means - all spells that scale with a spellpower have a specific value called their spellpower coefficient which is multiplied by your spellpower to obtain their actual damage.
- Code: Select all
actual damage = base damage + spellpower * spellpower coefficient
So plugging in the values for r10 frostbolt, we have our first estimate for a formula for frostbolt damage:
- Code: Select all
frostbolt damage = 446.5 + 0.863 * spellpower
Now we add in the possibility for critical strikes. Every 59.5 points of intellect gives 1% crit, meaning that your total crit chance is given by your bonus crit + your intellect / 5950. Since we have 5/5 Ice Shards our crits deal 200% damage, and so every percentage of crit increases your average damage by 1% (suppose you cast 100 frostbolts, if you have 1% extra crit then an extra 1 frostbolt would be expected to crit so you have increased your expected damage by the amount of 1 frostbolt i.e. 1%).
So with crit,
- Code: Select all
frostbolt damage = (446.5 + 0.863 * spellpower) * (1 + crit + int/5950)
Against a level 63 enemy, you have 17% chance to miss with spells. Assuming that gaining 1% hit increases your average damage by 1%, we now have:
- Code: Select all
frostbolt damage = (446.5 + 0.863 * spellpower) * (1 + crit + int/5950) * (0.83 + hit)
Then, using the presumption that every 10 spell penetration increases your average damage by 2.5%, we have:
- Code: Select all
frostbolt damage = (446.5 + 0.863 * spellpower) * (1 + crit + int/5950) * (0.83 + hit) * (1 - 0.0025*(resistance-penetration))
And finally, with the 6% increased frost damage from Piercing Ice we have:
- Code: Select all
frostbolt damage = (446.5 + 0.863 * spellpower) * (1 + crit + int/5950) * (0.83 + hit) * (1 - 0.0025*(resistance-penetration))
Using this formula it is now possible to work out your expected DPS simply by dividing by 2.5 (the cast time of frostbolt).
In order to get stat weightings, we just work out what our frostbolt damage would be if we increased a certain stat by a single unit (a unit being for example 10 spellpower, or 1% crit). This is what the Damage increased caused by stat increase column in the spreadsheet is showing. The stat weightings are all relative to the gain you get from 10 spellpower, which is fixed at 1.
I do not claim that any of the formulas here are the exact methods that Nostalrius uses to calculate damage. They are good estimates based on available information. If anyone notices mistakes or has queries, then I will be more than happy to update this post and the spreadsheet based on comments in this thread. Spell penetration is the mechanic which I am most unsure about, however the formulas used for hit and crit may also be slightly wrong so please do correct me if necessary.
Changelog
1.1
- Fixed typo in FrostboltDamage function which was causing bad results
- Changed weighting calculations to use deltas instead of differentials
- All decimals now display to 3 decimal places
- Changed frostbolt base average damage to 455 and spellpower coefficient to 0.814