How do armor, resistances and missile/melee damage reduction interact?
Solution 1:
In general, ItsColby nailed the basics of how it works. Damage reduction is multiplied rather than added. So 70% Armor and 30% Physical Resist doesn't mean you're a god who blocks all damage... you're actually blocking 79% of the damage. But read on for a closer look.
Armor is good against all damage types
I just want to mention that before I even get started, because a lot of people don't seem to realize it. Armor DR blocks all damage. Fire Damage, Physical Damage, Arcane Damage, etc. It's good against all of them. For any given attack, you'll always be getting your Armor DR as well as one of your resistance DRs. You'll possibly get other special bonuses, such as the special DR against missile attacks in your example of 2% Missile Reduction, but you'll always have at least Armor and Resistance.
Resistance is good against a single damage type
If a monster is hitting you with a sword, you're probably looking at Physical Resistance. If you're standing on some fire a molten elite just left behind, you're probably looking at Fire Resistance.
While it's possible multiple resistances might come into play for an attack (such a Diablo's Lightning-Fire breath), the conventional wisdom is that such attacks have their damage broken into components (though I haven't seen any Blizzard confirmation of that), and DRs are factored in separately for those. You can pretty much just think of it as two separate attacks hitting you at once.
What about Dodge?
Dodge doesn't really interact with damage reduction directly. Dodge is whether or not you flat out avoid all damage from an attack. If you dodge successfully, damage reduction doesn't occur because you avoided the attack and took no damage. If you fail to dodge, you get hit with the full attack and damage reduction is applied normally. There's no "partial" dodging.
How do I figure out how much damage I'm resisting?
The general equation to figure out your damage reduction is:
Total Damage Reduction % = (1 - Armor DR) * (1 - Specific Resist DR ) * (1 - Special DR) * (etc)
Damage Received = (Damage Taken) * (Damage Reduction %)
What about shields?
As you can see, shields have an Armor Value, a Chance to Block, and a Block Amount.
- The Armor is added in just like any other piece of gear, which means the Armor value of the shield is working for you whether you block something with it or not.
- The Chance to Block is the % chance that you'll get to reduce the incoming damage or a melee or ranged attack by the Block Amount.
- The Block Amount is the amount of damage that will be subtracted from the attack after other DR is applied.
So the formula for damage received when a block is successful becomes:
Damage Received = (Damage Taken * Damage Reduction %) - Amount Blocked
What about damage absorption from skills like Diamond Skin?
You can think of this pretty much like you might think of a shield that has a 100% block rate. The damage absorption from skills such as Diamond Skin have their absorption applied after standard damage reduction from things such as armor, resistances and block amount.
How do classes differ?
The two original melee classes, the Barbarian and Monk, seem to have a hidden DR bonus of 30%. This multiplies into the damage reduction just like any other special DR modifier, such as 2% Missile Damage Reduction would. The new class, Crusader, has a 15% damage reduction bonus.
A specific example:
So in your example above, Thog the Dual-Wielding Barbarian has been neglecting his resistances but is wearing some very shiny armor. He's got 10% Fire Resistance and 70% DR from Armor. He's also got some boots of 2% Missile Damage Reduction. He gets shot with a fire arrow that does 100 damage. And don't forget he's got that 30% for being a Barbarian!
- Damage Reduction = (1 - .70) * (1 - .10) * (1 - .30) * (1 - .02) = .18522
- Damage Taken = 100 * .18522 = 18.522
Zoltan the Wizard doesn't have much in the way of armor, and is only at 40%, but his intelligence gives him decent fire resistance of 60%. Sadly, he doesn't have those nice boots that Thog has, but he is using a shield which has a 20% block chance and blocks an average of, say, 25 damage. As a wizard, he doesn't have Thog's innate damage reduction of 30%.
- Damage Reduction = (1 - .4) * (1 - .6) = .24
- Damage Taken (when his shield fails to block) = 100 * .24 = 24
- Damage Taken (when his shield blocks) = (100 * .24) - 25 = 0
Zoltan actually does okay! Thog had great armor, but his low resistance really brought him down. Without that innate 30% for being a Barbarian, he actually would have fared worse than Zoltan, taking 26.46 damage on a hit. And if you factor in the fact that 20% of the time Zoltan will block the entire attack, in the long run it's as if he's taking about 19.2 damage per hit. Not bad for a dude in dress!
So do I want more Armor, or more Resistance?
This Blizzard forum post has a good discussion on how Armor and Resistance linearly scale up your effective health, so your first 100 points of Armor is just as good as your next 100 points of Armor in terms of your overall effective health, when looking at just the armor stat. So while armor and resistances have diminishing returns in terms of the % of damage that they reduce, they don't have diminishing returns in terms of your effective health.
That said, as your Armor and Resistance levels change, their value relative to each other will shift. You can look at this matrix to see what 1 point of Resistance is worth in terms of Armor to you at your current gearing levels. So let's say you've got 7000 armor and 200 resistance. You can see that 1 point of resistance is worth about 20 armor. If you're looking at some gear which would increase all of your resistances by 5 but lower your armor by 70, it's a good trade. If it would raise your resistances by 5 but lower your armor by 130, it's a bad trade.
Credit where it's due:
- Rhaloz's post "The Art of War: Barbarian"
- TBD's post "Diminishing Returns on Armor = Myth (graphs)"
Solution 2:
All damage reduction stacks multiplicatively, so it does not matter in which order these reductions are applied.
For example:
- 100 Damage - 15% Armor Reduction - 10% Fire Reduction - 2% Missile Reduction =
- 74.97 Damage
- 100 Damage - 10% Fire Reduction - 15% Armor reduction - 2% Missile Reduction =
- 74.97 Damage
- Etc.
However, there could be a possible hidden "maximum" cap of percentage damage reduction similar to Diablo II (50%), in which case the economics of which damage reduction is the most effective per gold spent can come into play.