User:DarkFire/Condition Damage Optimization

From Guild Wars 2 Wiki
Jump to navigationJump to search

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.png Bleeding 0.06 22
Burning.png Burning 0.155 131
Poisoned.png Poison 0.06 33.5
Torment.png Torment (Damage while stationary, in PvE only) 0.06 22
Torment.png Torment (Damage while stationary, in PvP and WvW) 0.045 15.9
Torment.png Torment (Damage while moving) 0.09 31.8
Confusion.png Confusion (Damage over time)[1] 0.0 10
Fear.png Fear (Damage while using Terror, no other Conditions) 0.4 296
Fear.png Fear (Damage while using Terror, with other Conditions) 0.4 444
  1. ^ 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.png Bleeding 1133.33
Burning.png Burning 654.84
Poisoned.png Poison 941.67
Torment.png Torment (Damage while stationary, in PvE only) 1133.33
Torment.png Torment (Damage while moving, in PvE only) 1146.67
Torment.png Torment (Damage in PvP and WvW) 1146.67
Confusion.png Confusion (Damage over time)[1] 0.0
Fear.png Fear (Damage while using Terror, no other Conditions) 760
Fear.png Fear (Damage while using Terror, with other Conditions) 390
  1. ^ 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.