Damage calculation

Damage Types
There are several different types of damage in Guild Wars.
 * Elemental damage
 * Fire damage
 * Cold damage
 * Lightning damage
 * Earth damage
 * Physical damage
 * Blunt damage
 * Piercing damage
 * Slashing damage
 * Other damage:
 * Holy damage
 * Light damage
 * Shadow damage
 * Dark damage
 * Chaos damage

Health Degeneration also causes loss of hit points, but isn't considered damage by the game engine.

Damage Calculation
First of all, if the attack is blocked or evaded, then the target takes no damage.

Assuming the attack was not blocked or evaded, we first calculate the effective armor level (EAL) the target has against that attack. Note that this value can vary greatly depending on the attack. At one extreme, attacks that "ignore armor" have an EAL of 0; examples include any attack that deals shadow damage, or offensive spells such as Obsidian Flame. Most attacks, however, are resisted by some form of armor.

Every piece of armor worn by a character has a specific base armor level (BAL). The maximum BAL of spellcasters is generally 60 (Droknar's Armor or later), and rangers and warriors have armor with higher BAL. To the base AL we add any AL that is specific to the type of damage. Many warrior armors have armor bonus versus physical damage; all ranger armors have bonuses versus elemental damage; and elementalist armor sets have bonuses versus specific kinds of elemental damage. Weapons and shields can also yield AL bonuses. Finally, enchantments such as Weaken Armor and skills such as Healing Signet add AL penalties, which are treated as negative bonuses. We thus obtain the net armor level (NAL).


 * NAL = BAL + AL bonuses - AL penalties

Next, we have to account for any armor penetration present in the attack. Lightning damage and certain kinds of holy damage, for instance, have a set amount of penetration (usually 20%). The warrior attribute Strength increases armor penetration of melee attacks, as do weapon proficiency attributes such as Marksmanship or Hammer Mastery. Weapons can also give armor penetration bonuses. Finally, certain kinds of armor give armor penetration bonuses to certain kinds of damage (Necrotic armor and holy damage, for example). Add up all the various bits of armor penetration to obtain the net armor penetration (NAP). We can now calculate the effective armor level (EAL):


 * EAL = NAL &times; (1 - NAP/100)

The EAL is the amount of resistance that any particular attack receives. The game treats an EAL of 60 as "normal": all damage values indicated in skill descriptions assume an EAL of 60 versus that attack. This damage value is called the base damage (BD) of the attack. If the EAL is more than 60, then the actual damage dealt will be less than the BD; dually, an EAL of less than 60 gives an actual damage of more than the BD. Certain skills that add damage "before armor" add to this base damage; these are added together to give the damage bonus (DB).

We are now ready to calculate the net damage (ND):


 * ND = (BD + DB) &times; 2(60 - EAL)/40

Net damage is not always the effective damage dealt to the target, because of certain conditions that cause damage reduction. Weakness, for example, reduces all melee damage by 66%, and certain shields and warrior armors have further damage reduction. These reductions are not applied to the base damage, but rather to the net damage; with these taken into account, we finally get the effctive damage (ED) dealt to the target.

[examples and graphs to be added presently]

Damage Groups
It is useful to classify damage into damage groups (especially for PvP).
 * Spike Damage
 * Damage Over Time