I´ve done a lot of researching today, I´m sure this will help your calc to be accurate:
elite bonus modifier = 1 + ((1 - (1 - bonus#1/100) * (1 - bonus#2/100) * (1 - bonus#3/100) ...)
demon bonus modifier = 1 + ((1 - (1 - bonus#1/100) * (1 - bonus#2/100) * (1 - bonus#3/100) ...)
elemental bonus modifier = 1 + (sum of "adds % to elemental damage" bonuses / 100)
The first two formulas mean that vs elite and vs demon damage bonuses have diminishing returns (example 10% sun keeper and 4% unity ring results in a 13.6% bonus).
So for you calc, you have to ask people to somehow add those bonuses each separately not add them up because that would result in inaccurate calcs (so 10+4+4 etc. not just as 18).
the "adds % to fire/cold/psn/arcane etc. damage bonuses are added together, they´re not multiplicative and also only affect physical damage not elemental
direct skill bonuses on gear like frenzy/bash belts are simply added to the "damage increased by skills" modifier (battle rage, maniac, insanity, brawler etc)
the "elemental skills deal x% more damage is a separate modifier (multiplier), note that the bonuses are added together, example 2xset tal rasha +3% with sankis +15% would be a 1.18 modifier (+18%)
here´s the damage formula
MIN DAMAGE = ((((A + B ) * (1 + C / 100) + D) * E) + J) * F * G * H * I * K * L * M
A: base minimum (physical) weapon damage
B: sum of +minimum (physical) damage
on the weapon itself, including ruby in weapon
C: +% (physical) damage on the weapon itself
- example: "+35% damage"
D: sum of +minimum (physical) damage on gear (jewelry)
E: adds % to elemental damage bonus = 1 + (sum of "adds % to elemental damage" bonuses / 100)
- yes this affix depends on the physical damage of the weapon ("A" to "D") not on the elemental damage of the weapon ("J")
--
F: primary attribute bonus = 1 + (primary stat / 100)
- primary attributes are strength (Barb), dexterity (DH, Monk) and intelligence (WD, Wiz)
G: elite bonus modifier = 1 + ((1 - (1 - bonus#1/100) * (1 - bonus#2/100) * (1 - bonus#3/100) ...)
- the weapon/gear affix "increases damage against elites by x%"
- diminishing returns
H: demon bonus modifier = 1 + ((1 - (1 - bonus#1/100) * (1 - bonus#2/100) * (1 - bonus#3/100) ...)
- this is the gear affix "+x% damage to demons"
- diminishing returns
I: "damage increased by skills" modifier = 1 + (sum of skill bonuses / 100)
- battle rage, insanity
- maniac, punish stacks
- brawler, berserker rage
- frenzy/bash/cleave belts and jewelry
---
J: +minimum elemental damage on the weapon itself
- example the "1" in "+1-3 fire damage")
K: skill damage modifier = (skill tick damage / 100)
- this means how much damage a skill does per hit (tick), for example normal bash = 165% (1.65 modifier), whirlwind = 145%/3
- important note: rune effects that boost damage of skills like WW Volcanic Eruption are calculated as base skill damage times their bonus, for example WW Volcanic Eruption does 30% more damage than the other runes, so 1.45*1.3/3, keep that in mind (don´t use the tooltip values)
L: "elemental skills deal x% more damage modifier" = 1 + (sum of affixes / 100)
- a separate modifier, not in the damage increased by skills group ("I")
- example 2 x tal rasha fire skill bonus (3%) and burning axe of sankis fire skill bonus (15%) result in a 1.18 (+18%) modifier
M: critical hit damage modifier = (1 + critical hit damage / 100)
Apply the formula accordingly to calculate max damage.
Note that ideally "J" elemental weapon damage would be calced separately as J * F * G * H * I * K * L and added on top of (((A + B ) * (1 + C / 100) + D) * E) * F * G * H * I * K * L
The reason for this lies in the +min damage affix on gear (jewelry) because if you get min damage that is higher than max weapon damage, min=max is applied and for example +1-3 fire is put on top of min=max and results in min+1 to max+3 damage.
If there´s any mistakes in my results, let me know.
EDIT: after retesting rubies, fixed the formula - rubies in weapons are in the "B" group not in the "D" group and also get boosted by the +% damage affix ("C").
Here´s the tests I made to confirm the above.
58-86 base +13% damage +31 min amulet, 1953 str, bash (165%)
a) (58-86 + 31-0) * 1.13 * 20.53 * 1.65 = 100.57-100.57 * 20.53 * 1.65893406.758465
b ) (58-86 * 1.13 + (31-0)) * 20.53 * 1.65 = 96.54-97.18 * 20.53 * 1.65 = 3270.24423-3291.92391
I got more that one different damage (in the calced damage range) so it´s option b ). If it was a), I would only get one damage each hit.
58-86 base, + 13% damage, +31 min amulet, +24 min ring +2-4 ruby, 1953 str, bash (165%)
a) 122.54-101.18 * 20.53 * 1.65 = 4150.98123
b ) 122.80 * 20.53 * 1.65 = 4159.7886
I got 4160 damage which meant base weapon -> rubies -> +% damage -> +min dmg jewelry.
Edited by Nubtro, 10 December 2012 - 04:02 PM.