User:DarkFire/Condition Damage Optimization
Theoretical Optimization[edit]
Single Condition[edit]
Damage Formula[edit]
The damage done by a condition is defined by the equations:
Damage = (ConditionDamage * Factor + Base) * (1 + Expertise / 1500)
for
0 ≤ Expertise < 1500
and
Damage = 2 * (ConditionDamage * Factor + Base)
for
1500 ≤ Expertise
where
Damage
is the total damage dealt.ConditionDamage
is the Condition Damage attribute of the player.Expertise
is the Expertise attribute of the player.Factor
is the scaling factor of the condition.Base
is the base damage at level 80 of the condition.
The scaling factors and base damages for each condition can be found in the table below.
Condition | Scaling Factor | Base Damage |
---|---|---|
Bleeding | 0.06 | 22 |
Burning | 0.155 | 131 |
Poison | 0.06 | 33.5 |
Torment (Damage while stationary, in PvE only) | 0.06 | 22 |
Torment (Damage while stationary, in PvP and WvW) | 0.045 | 15.9 |
Torment (Damage while moving) | 0.09 | 31.8 |
Confusion (Damage over time)[1] | 0.0 | 10 |
Fear (Damage while using Terror, no other Conditions) | 0.4 | 296 |
Fear (Damage while using Terror, with other Conditions) | 0.4 | 444 |
- ^ Confusion damage on skill activation is not covered under this type of optimization.
Partial Derivatives[edit]
Using the partial derivatives of the damage formula, we can calculate the change in damage that we would expect from adding a single point of Condition Damage or Expertise. The partial derivatives with respect to Condition Damage, and Expertise are defined by the equations:
∂Damage/∂ConditionDamage = Factor * (1 + Expertise / 1500)
∂Damage/∂Expertise = (ConditionDamage * Factor + Base) / 1500
for
0 ≤ Expertise < 1500
and
∂Damage/∂ConditionDamage = 2 * Factor
∂Damage/∂Expertise = 0
for
1500 ≤ Expertise
where
∂Damage/∂ConditionDamage
is the partial derivative of Damage with respect to Condition Damage.∂Damage/∂Expertise
is the partial derivative of Damage with respect to Expertise.
Break-even Points[edit]
For each condition there exists a break-even point below which Condition Damage is strictly better than Expertise. We can calculate these break-even points by setting the partial derivatives equal to each other, setting Expertise equal to zero, and solving for Condition Damage. The generalized equation for these break-even points is given by:
ConditionDamage = 1500 - Base / Factor
The values of these break-even points are summarized in the table below.
Condition | Break-even Point |
---|---|
Bleeding | 1133.33 |
Burning | 654.84 |
Poison | 941.67 |
Torment (Damage while stationary, in PvE only) | 1133.33 |
Torment (Damage while moving, in PvE only) | 1146.67 |
Torment (Damage in PvP and WvW) | 1146.67 |
Confusion (Damage over time)[1] | 0.0 |
Fear (Damage while using Terror, no other Conditions) | 760 |
Fear (Damage while using Terror, with other Conditions) | 390 |
- ^ Confusion damage on skill activation is not covered under this type of optimization.
Above the Break-even Points[edit]
Once you reach enough Condition Damage to pass the break-even point, Expertise becomes on par with Condition Damage in terms of its overall damage increase. The relationship that needs to be maintained between Condition Damage and Expertise is defined by:
ConditionDamage = 1500 + Expertise - Base / Factor
for
0 ≤ Expertise < 1500
Specifically, the equation states that for every point of Condition Damage you add, you should add one point of Expertise. This one-to-one relationship continues until you reach 1500 Expertise, at which point Condition Damage becomes strictly better and you should no longer put any points into Expertise.
Multiple Conditions[edit]
Damage Contribution[edit]
An important concept when optimizing multiple conditions at once, is that not every condition contributes equally to overall damage. To account for this, we need to find the percentage of overall damage that each condition provides. These damage values will need to be pulled from benchmarks or spreadsheets, as they are highly dependent on traits, rotation, and attributes. Because these numbers are dependent on attributes, they are only valid for the exact attribute combination that were used to calculate them. We can avoid having to recalculate them every time we change attributes by calculating the percentage change between the old values and the new values using the equation:
%Damagenew = %Damageold * ((ConditionDamagenew * Factor + Base) * (1 + Expertisenew / 1500)) / ((ConditionDamageold * Factor + Base) * (1 + Expertiseold / 1500))
where
%Damage
is the percentage of overall damage that the condition contributes.new
denotes the attribute value after changes.old
denotes the original attribute value.
This change needs to be applied on a per condition basis.
Damage Formula[edit]
The damage formula for multiple conditions is equal to the weighted sum of the single condition damage formulas. In order to account for the single condition damage formula's change once a condition is duration capped, and the possibility that each condition may have a different condition duration, the multiple condition damage formula has two distinct parts: a weighted sum of non-duration capped conditions, and a weighted sum of duration capped conditions. The full equation is defined by:
Damage = Σnotcapped(%DamageN * ((ConditionDamage * FactorN + BaseN) * (1 + (Expertise + DurationN) / 1500))) + Σcapped(2 * %DamageN * ((ConditionDamage * FactorN + BaseN)
where
Σ
is the summation operator. This is used instead of writing out each of the individual damage formula.notcapped
denotes a part of the formula used for conditions that are not duration capped.capped
denotes a part of the formula used for conditions that are duration capped.N
denotes a variable that changes per condition.DurationN
is the Condition Duration attribute for that condition converted to an Expertise-like number. This can be done by multiplying the condition duration value by 15.
Partial Derivatives[edit]
Similar to the damage formula, the partial derivatives are a weighted sum of the single condition partial derivatives. The partial derivatives are also split into two parts to account for the duration cap. The partial derivatives with respect to Condition Damage, and Expertise are defined by the equations:
∂Damage/∂ConditionDamage = Σnotcapped(%DamageN * Factor * (1 + (Expertise + DurationN) / 1500)) + Σcapped(2 * %DamageN * FactorN)
∂Damage/∂Expertise = Σnotcapped(%DamageN * (ConditionDamage * Factor + Base) / 1500)
Note that duration capped conditions do not contribute to the partial derivative with respect to Expertise because the derivative of a constant is zero.
Break-even Point[edit]
There is a break-even point below which Condition Damage is strictly better than Expertise. We can find the break-even point by setting the partial derivatives equal to each other, Expertise to zero, and solving for Condition Damage. If none of the conditions are duration capped, the equation is defined by:
ConditionDamage = 1500 + Σnotcapped(%DamageN * (FactorN * DurationN - BaseN))) / Σnotcapped(%DamageN * FactorN)
If there are conditions that are duration capped, the equation is instead defined by:
ConditionDamage = 1500 + (3000 * Σcapped(%DamageN * FactorN) + Σnotcapped(%DamageN * (FactorN * DurationN - BaseN))) / Σnotcapped(%DamageN * FactorN)
Above the Break-even Point[edit]
Once you reach enough Condition Damage to pass the break-even point, Expertise becomes on par with Condition Damage in terms of its overall damage increase. The relationship that needs to be maintained between Condition Damage and Expertise is defined by:
ConditionDamage = 1500 + Expertise + (3000 * Σcapped(%DamageN * FactorN) + Σnotcapped(%DamageN * (FactorN * DurationN - BaseN))) / Σnotcapped(%DamageN * FactorN)
The equation states that for every point of Condition Damage you add, you should add one point of Expertise. This one-to-one relationship continues until any condition becomes duration capped, at which point a new break-even point is created. Below that new break-even point, Condition Damage is strictly better than Expertise. Once you reach the new break-even point, Condition Damage and Expertise are again on par with each other and you should add them in equal amounts. This process repeats itself every time any condition becomes duration capped. Once all of your conditions are duration capped, Condition Damage is strictly better than Expertise.