Magic Damage Reduction Modification vs. Frame-Based Attacks
Diablo II Expansion, patch 1.09d
Compiled by Tommi Gustafsson
Basics
Resistance and absorption both effectively reduce damage.
The game first checks resistance, which is applied straight to the
damage (e.g. 25% resistance lowers damage by 25%). After it, percentage-based
absorption (absorb%) reduces damage and adds the same amount of life. There
are also other types of reduction, such as direct absorb (e.g. +20
Lightning Absorb) and (magic) damage reduced by X, but they are not
considered in this analysis.
Resistance
The basic rule for resistances is that one point of
resistance reduces damage taken by 1% relative to the original damage when
you have 0% absorb. That is, if you take 100 points of damage and you have 75%
resistance, the damage is reduced by 75 points. In the view of damage
reduction, the effect of resistances is linear, which means that, for example,
100% is twice as effective as 50%.
Effective Life Factor
However, people are not typically interested in damage
reduced but damage taken, which is calculated as 100% - resistance (shown
in Table 3). By comparing the amounts of
damage taken, one could say that 75% resistance is twice as effective as 50%,
because the former reduces your damage to one-fourth while the latter only to
one-half. This is illustrated by what I call effective life factor,
which tells how much damage you can sustain compared to a character with zero
resistance. For example, with 100% resistance you are naturally immune to
damage, and with 95% resistance you are 20 times (!) more sturdy than a
zero-resistance character. For a quick reference, check the lookup table of
effective life factor, which includes
the effects of both resistance and absorb.
Absorb%
As a rule of thumb, one point of absorption equals two
points of resistance when you have zero resistance. In fact, absorption becomes
the better the lower resistance you have. At -100% resistance, one point of
absorption equals four points of resistance. For example, if you have -100%
resistance and you wear Raven Frost (a unique ring with 20% absorb), it
is the same as getting 80% more resistance. The effect of absorption with
regard to resistance is shown in Table 1. The listed values indicate the
amount of damage (in percents of the original damage) each point of absorption
reduces damage. For instance, 2.00 means that each point of absorb would reduce
damage by 2% of the original damage. Only 50% or more absorb guarantees
immunity with any resistance.
I also calculated the effect of one point of
resistance with regard to absorption. This is shown in Table 2 (units are percents of the original
damage). For example, 25% absorption reduces the effect of resistances
effectively to half. This is not necessarily a bad thing but just interaction
dynamics; increasing resistance is not as important as with 0% absorb.
Effective Resistance
Effective resistance is the amount of resistance
(with 0% absorption) that has the same effect as resistance and absorption
combined. You may check the lookup table of effective resistance, or you may
calculate effective resistance in one of the following ways:
Way 1. Effective Resistance = Resistance +
Absorb Effect Factor * Absorb%
Way 2. Effective Resistance = 2 *
Absorb% + Resistance Effect Factor * Resistance
The absorption effect factor is listed in Table 1 and resistance effect factor
in Table 2.
Example
If you have 35% resistance and 20% absorption, your
effective resistance is 61%. That is, they have the same effect as 61%
resistance and 0% absorption. This result can be seen in the effective resistance lookup table. It may
be also calculated by first taking the resistance (35%) and then looking at
Table 1. The approptiate absorption effect
factor is 1.30, and thus the effective resistance is 35% + 1.30 * 20% = 61%.
Furthermore, you can check your effective life factor in the effective life factor lookup table. It is
2.56. It may be also calculated by 1 / (100% - 61%).
|
Tables
|
|
Table 1. The amount of damage reduced by one point
of absorb% (relative to the original damage) with different amounts of
resistance. Units are percents of the original damage.
|
Resistance
|
Absorb effect
|
|
-100
|
4.00
|
|
-95
|
3.90
|
|
-90
|
3.80
|
|
-85
|
3.70
|
|
-80
|
3.60
|
|
-75
|
3.50
|
|
-70
|
3.40
|
|
-65
|
3.30
|
|
-60
|
3.20
|
|
-55
|
3.10
|
|
-50
|
3.00
|
|
-45
|
2.90
|
|
-40
|
2.80
|
|
-35
|
2.70
|
|
-30
|
2.60
|
|
-25
|
2.50
|
|
-20
|
2.40
|
|
-15
|
2.30
|
|
-10
|
2.20
|
|
-5
|
2.10
|
|
0
|
2.00
|
|
5
|
1.90
|
|
10
|
1.80
|
|
15
|
1.70
|
|
20
|
1.60
|
|
25
|
1.50
|
|
30
|
1.40
|
|
35
|
1.30
|
|
40
|
1.20
|
|
45
|
1.10
|
|
50
|
1.00
|
|
55
|
0.90
|
|
60
|
0.80
|
|
65
|
0.70
|
|
70
|
0.60
|
|
75
|
0.50
|
|
80
|
0.40
|
|
85
|
0.30
|
|
90
|
0.20
|
|
95
|
0.10
|
|
100
|
0.00
|
|
|
Table 2. The amount of damage reduced by one point
of resistance (relative to the original damage) with different amounts of
absorb%. Units are percents of the original damage.
|
Absorb%
|
Resistance
effect
|
|
0
|
1.00
|
|
5
|
0.90
|
|
10
|
0.80
|
|
15
|
0.70
|
|
20
|
0.60
|
|
25
|
0.50
|
|
30
|
0.40
|
|
35
|
0.30
|
|
40
|
0.20
|
|
45
|
0.10
|
|
50
|
0.00
|
|
|
Table 3. Damage taken % with resistance known and
absorb 0% (i.e. effective resistance).
|
Resistance
|
Damage taken %
|
|
-100
|
200 %
|
|
-95
|
195 %
|
|
-90
|
190 %
|
|
-85
|
185 %
|
|
-80
|
180 %
|
|
-75
|
175 %
|
|
-70
|
170 %
|
|
-65
|
165 %
|
|
-60
|
160 %
|
|
-55
|
155 %
|
|
-50
|
150 %
|
|
-45
|
145 %
|
|
-40
|
140 %
|
|
-35
|
135 %
|
|
-30
|
130 %
|
|
-25
|
125 %
|
|
-20
|
120 %
|
|
-15
|
115 %
|
|
-10
|
110 %
|
|
-5
|
105 %
|
|
0
|
100 %
|
|
5
|
95 %
|
|
10
|
90 %
|
|
15
|
85 %
|
|
20
|
80 %
|
|
25
|
75 %
|
|
30
|
70 %
|
|
35
|
65 %
|
|
40
|
60 %
|
|
45
|
55 %
|
|
50
|
50 %
|
|
55
|
45 %
|
|
60
|
40 %
|
|
65
|
35 %
|
|
70
|
30 %
|
|
75
|
25 %
|
|
80
|
20 %
|
|
85
|
15 %
|
|
90
|
10 %
|
|
95
|
5 %
|
|
100
|
0 %
|
|
Mathematics - How were these figures
calculated?
According to the game mechanics, damage dealt and life
gained are calculated as follows.
(1) Damage Dealt = Damage * (100 %
- Resistance) * (100 % - Absorb%)
(2) Life Gained = Damage * (100 % - Resistance) * Absorb%
In these equations, it is assumed that the character has
only resistance and absorb%, not other types of reduction. Further assuming
that the life from absorb can be fully added to the character's life amount (it
does not exceed maximum), damage taken can be calculated as Damage Dealt -
Life Gained:
(3) Damage Taken = Damage Dealt -
Life Gained = Damage * (100 % - Resistance) * (100 % - 2 * Absorb%)
Because we are interested only in the relative amount of the
damage taken with regard to Damage. Therefore, we divide Equation (3) by
Damage and use a %-sign to denote that Damage Taken % is relative to the
original damage.
(4) Damage Taken % = (100 % -
Resistance) * (100 % - 2 * Absorb%)
It is straighforward to conclude that the amount of damage
done (the original damage) is split into damage taken and damage reduced.
(5)Damage = Damage Taken + Damage Reduced
(5a) Damage Taken = Damage - Damage Reduced
(5b)Damage Reduced = Damage - Damage Taken
Dividing the above equations by Damage, we get the
relative amounts (denoted by a %-sign):
(6)Damage Taken % + Damage Reduced
% = 100%
(6a)Damage Taken % = 100% - Damage Reduced %
(6b)Damage Reduced % = 100% - Damage Taken %
From Equations (6b) and (4), it follows that:
(7)Damage Reduced % = 100 % - (100
% - Resistance) * (100 % - 2 * Absorb%)
Equation (7) is also the same as effective resistance. This
is natural but not obvious. Think about how resistances work. They reduce
damage by percentage, which is the same as Damage Reduced %.
(8) Effective Resistance = Damage
Reduced % = 100 % - (100 % - Resistance) * (100 % - 2 * Absorb%) = 2 * Absorb%
+ Resistance - 2 * Resistance * Absorb%
Note that this is a third way to calculate effective
resistance. The formula is a bit more complicated than the two presented in the
effective resistance section, but you do not need to check any tables to get a
result.
To get the effect of one point of absorb, we
simply take a partial derivate of Equation (7)/(8) with regard to the
absorb variable (that's just what derivate does!). Similarly, we take a partial derivate with
regard to the resistance variable to get its effect.
(9)Absorb Effect Factor =
d(Effective Resistance) / d(Absorb%) = 2 - 2 * Resistance
(10)Resistance Effect Factor = d(Effective Resistance) / d(Resistance) = 1 - 2 *
Absorb%
By reordering the terms in Equation (8) and substituting
Equations (9) and (10), we arrive at the following equations:
(11a) Effective Resistance = (2 - 2 * Resistance) *
Absorb% + Resistance = Resistance + Absorb Effect * Absorb%
(11b) Effective Resistance = (1 - 2 * Absorb%) * Resistance + 2 * Absorb% =
2 * Absorb% + Resistance Effect * Resistance
Equation (11a) is Way 1 of calculating the effective
resistance and Equation (11b) is Way 2.
Effective life factor tells how much damage a
character can sustain compared to a one with zero resistance. It is calculated
as an inverse of Damage Taken %, which is calculated in Equation (4).
(12)Effective Life Factor = 1 /
Damage Taken % = 1 / ( (100 % - Resistance) * (100 % - 2 * Absorb%) )