Diablo 3 Weapon Damage Range
I am building a Diablo III calculator that will have API importing & also user data entry with validation. My issue lies with the latter part since I'm having a lot of trouble reassembling items with physical damage affixes.
Here's data for a problematic item: http://us.battle.net/api/d3/data/item/skorn
The goal I've set is to recalculate the maximum possible damage value using the attributes. The value we want to see is 1762.5 as it is given in the API, and I've verified through looking in-game that items can roll a damage value that high (see: http://i.imgur.com/WQ9k9.jpg).
What I know:
The damage range is only affected by these attribute types:
Where #Element is the type of bonus damage (Physical, Fire, Cold, Lightning, Arcane, Holy)
My calculations work perfectly if the bonus damage type is anything other than physical. The 2 types (physical and elemental) also display differently like so:
+200-450 Fire Damage
+200 Minimum Damage +250 Maximum Damage
If we were to calculate the Skorn example as elemental, we'd do it like so:
((507 + 106) * 1.5) + 381 + 286 = 1586.5
Which looks like this with attributes instead:
((Damage_Weapon_Min#Physical + Damage_Weapon_Delta#Physical) * (1 + Damage_Weapon_Percent_Bonus#Physical) + Damage_Weapon_Bonus_Delta#Physical + Damage_Weapon_Bonus_Min#Physical
Unfortunately, this just doesn't work since it's way off of what the actual maximum value should be. I just don't know where to go from here, so any assistance would be greatly appreciated.
carriann last edited by
I think you have your order of operations wrong. The 50% bonus should be applied last. Take a look at the image you linked. The base damage possible for the axe is 507. If you multiply that by 1.5 and then add 282, you're still well short of the minimum damage displayed on the weapon. But if you instead take 507 and add 282, then multiply by 1.5, you end up at 1183.5, rounded up to the 1184 displayed on the weapon. 1185 + (373 * 1.5) gives you the 1744 top end.
So (507 + 286) * 1.5 = 1189.5 as the min damage. That gets rounded up to 1190, and the max damage has to be higher, so it starts at 1191. 1191 + (381 * 1.5) = 1762.5. Note that the delta is meaningless here, because it is lower than the min damage boost anyway.