Technical explanation from Ghostcrawler Edit
Quote from: Ghostcrawler
Okay, here is a fairly technical explanation we put together for how armor pen works.
We didn’t want Armor Penetration Rating to be too powerful against low armor targets, like it had been in BC. We also didn’t want Armor Penetration Rating to be too powerful against high armor targets.
So, we decided on a system where there is a cap on how much armor the Armor Penetration Rating can be applied to. So, the first X armor on the target is reduced by the percentage listed in the Armor Penetration Rating tooltip, and all armor past that X is unaffected. Another way of understanding that is we multiply the percentage in the tooltip times the minimum of the two values: the cap, and the amount of armor on the target after all other modifiers.
Computing the cap is a little tricky unless you are already familiar with how World of Warcraft armor works. There is an armor constant we’ll call C. C is derived as follows (in some pseudocode):
Код:
If (targetlevel<60)
C=400+85*targetlevel
Else
C=400+85*targetlevel+4.5*85*(targetlevel-59);
For a level 80 target, C=15232.5. For a level 83, C=16635.
The cap for Armor Penetration then is: (armor + C)/3.
A level 80 warrior creature has 9729 armor. C=15232.5. So, the cap is (9729+15232.5)/3=8320.5. Let’s say a player has 30% armor penetration from armor penetration rating and no other modifiers that complicate the calculation (talents, Battle Stance, Sunder Armor, etc.). The game chooses the minimum of 8320.5 and 9729, so 8320.5. That is multiplied by 30% = 2496.15, and so that much armor is ignored. The effective armor on the target is 7232.85 (9729-2496.15). From a player point of view, the armor penetration rating didn’t ignore the full 30%, but instead ignored 25.66%. (85.5% as effective as expected).
These equations should help you be able to test and verify that Armor Penetration Rating is working correctly and as we designed. The tooltip is not actually inaccurate, as it states: “Enemy armor reduced by up to 30.00%.” That "up to" is key.
Please be sure to test without any other effects which modify the armor calculation (Battle Stance, Sunder Armor, Mace Specialization, etc.) as they may involve other systems that add additional complexity to the calculation.
The formula for the Armor Penetration cap can be simplified to ArPcap = (935/6)*x + y/3 -44335/6, where x is the target level and y the target armor. Then effArmor = targetArmor - ArP * min{ targetArmor, ArPcap} as explained above, with the Armor Penetration ArP of your character. ArP is given, lately changed in 3.1.2,[2] by the formula ArP = min{ 1,(Sum ArPcontributions)%}.
Calculating Edit
Calculating the ARP it's done in 2 parts:
First up - the debuffs. These reduce your target's initial armor. For example, if your target has 10k armor and it gets 20% sunder, its armor would be 8k. The debuffs stack additively, so Faerie Fire will stack with sunder, totaling a 25% reduction on the target, taking it to 7.5k armor.
Second, comes the formula GC provided, you grab the armor after the debuff calculation and to that armor you apply the formula (armor + C)/3. Using the same example as before, lets say the target is level 80, so C=15232.5, now calculate (7500 + 15232.5)/3 = 7577.5. This makes the target's armor lower than the result, meaning that each 1% removes 75 armor and you are hitting a 0 armor target on the 100% ARP get. The ArP "buffs" (items, stances and such) stack additively too, meaning that 90% ARP on battle stance for a warrior would mean a 100% ARP final.[свернуть]