TheoryCraft101 is here to introduce the more hardcore aspects of theorycrafting in a more casual approach. Have questions about attack speed? Do you know what PPM stands for? We have the answers right here.
Another week, another article dealing with the math behind the scenes of World of Warcraft. Last week, the discussion focused around caster haste; this week will be a continuation of that as we delve into the world of melee haste. Haste follows a pretty different system between spells and melee attacks. When it comes to casters, haste influences how fast a spell is cast as well as the GCD for all abilities, allowing for the standard 1.5-second GCD to be reduced to 1 second. Haste for melee attacks, however, only increases the swing timer of auto-attacks and does not reduce the GCD on physical abilities.
This has created a pretty big disparity between how melee value haste over casters, with casters generally favoring haste far more than melee classes. Blizzard has attempted to equalize this in some ways throughout Wrath of the Lich King by increasing the amount of haste that melee get per point of rating, yet that really hasn't made much of a difference. Cataclysm will attempt to address this disparity once again by increasing the resource gain of melee classes through haste. Obviously the finer points of this mechanic are not known to the community at large yet, and it is unlikely that Blizzard has the system fine tuned at this point anyway, so this article will not address that fact. It is something to remember for the future, though.
Haste does have some perks of a sort for several melee classes that are generally not applicable to many casters. More melee classes have proc effects that are based around landing attacks on opponents than casters do. Proc effects are a strange animal and will be discussed in detail later within the article. First, let's look into the basic mechanics of haste for melee in how it affects attack speed.
The basic premise of haste for melee is to increase the attack speed of all weapons. Just as with caster haste, when dealing with melee haste functions, you will predominately need to use the percentage of haste rather than flat values. Remember that some melee classes have a higher rate of conversion for haste than other classes. Normally, 32.79 haste rating is required in order to gain 1% haste; however, paladins, shaman, druids and death knights all have a melee haste conversion rate of 25.22 haste rating per 1%. Using the character sheet in game or the armory page for any given character is the easiest method for quickly determining a player's haste percentage over their current rating. Simply scroll over the haste rating line and a tooltip will pop out giving you an accurate conversion. Once you have that percentage, the formula for calculating attack speed is rather simple. To determine your current attack speed, use the following formula:
Also, as with caster haste effects, all melee haste effects are multiplicative instead of being additive. There are two possible ways that you can represent this when using the previous formula. One way is to merely reapply it for each individual haste effect, where your current attack speed is merely the result of the previous formula; if you have a large number of haste effects, this can become quite tedious. Another way is to simply add each new effect to the end of the formula to create a string of effects. Using this method, each effect would look like this:Attack Speed = Current Attack Speed / ((Haste Percentage / 100) + 1)
Anything that does not specifically state that it increases haste rating (essentially anything that isn't gear) will be considered a separate haste effect that needs to be calculated in this way. Such effects include, but are not limited to, Slice and Dice, Windfury Totem, and Swift Retribution. If you are a hunter, remember that any buff which specifically denotes melee haste will not effect the attack speed of your bow; ranged attacks are only effected by ranged attack speed buffs.Attack Speed = Current Attack Speed / ((Haste Percentage / 100) +1) / ((Haste Effect 1 / 100) +1) / ((Haste Effect 2 /100) +1)
A final note when doing attack speed calculations is that it is currently assumed that Blizzard rounds all attacks speeds to four significant digits. Although Blizzard has never officially confirmed this, testing has shown it to be highly accurate.
Procs are a common theme for a large portion of melee classes. Many melee classes have one form of proc-based talent or another, and proc-based enchants have long been the mainstay of most melee classes. Proc-based mechanics also happen to be one of the single most convoluted systems currently within the game. There are actually two completely independent proc-based systems within the game that operate on different rule sets. The two styles which procs can follow are either chance on hit or procs per minute.
Chance on hit, or COH, effects are generally those that are tied to either talents or equip effects on weapons and trinkets. The COH system isn't referenced as much within the theorycrafting community, despite the fact that it is highly prominent within the game. All COH procs have a specific chance to be procced each time an attack lands, which is sometimes stated within the tooltip. Examples of COH based talents are Omen of Clarity, Blood Caked Blade, Maelstrom Weapons and Hack and Slash. Nearly all weapon procs, such as those from Heartpierce and Black Bruise, and nearly all trinket proc effects also follow the COH system. The primary perk of effects which use the COH system is that increasing your attack speed will increase the amount of procs that you generate -- that is to say, the faster you attack, the more times you will proc Omen of Clarity or Maelstrom Weapons (assuming, of course, that the proc in question does not have an internal cooldown).
The formula used to determine how many procs you would gain from a COH effect within a given time frame is rather simple.
As an example, say you wanted to know how many times you would theoretically proc Blood Caked Blade within 60 seconds. Blood Caked Blade as a 30% chance to proc when maxed out, and you happen to be using a single weapon with a 1.54 attack speed after haste effects. Therefore you would set up the equation like this:Number of Procs = (Time Frame / Attack Speed) * (Chance to Proc / 100)
Procs per minute, or PPM, effects follow a completely different system. PPM effects are generally those which are tied to weapon enchants such as Berserking or Mongoose, although there are certain talents and items which also follow the PPM system. PPM effects differ from COH effects in that the speed at which you attack has no impact at all on the number of procs that you get.Number of Procs = (60 / 1.54) * (30 / 100) = 11.69
All PPM-based abilities are normalized against a standard proc amount, essentially being the per-minute part of the phrase. Nothing at all can increase the number of procs that you are going to see within a given time frame; do note, however, that PPM is merely an average number, so it is theoretically possible to see a slightly higher or slightly lower number of procs. In order to calculate your chance to proc any given effect with each swing, you must first know the PPM of the ability. There is no quick and easy way to find this out; all of it has to be found by repeatedly testing effect by swinging at a target dummy for hours on end. For the more casual theorycrafter, I advise you to merely look up the ability or effect on a site such as WoWhead.com. Even if no one has tested it yet, usually the proc rate is going to be noted in the ability's effect, though it may take a bit of digging around to find.
Once you have the PPM of the effect you wish to calculate, use the following formula in order to determine your chance to proc the effect which each swing.
If you do any in game testing of effects, you may notice that your number of procs is often significantly higher than what it theoretically should be. This is because all PPM effects are only normalized against the number of standard attacks that you are going to make within a given time frame. The normalization does not take into account special attacks, which usually can also proc the effect.Chance to Proc = Attack Speed * PPM / 60
To determine your total PPM when taking special attacks into account, you first need to find your normalized chance to proc. Once you have that, you also need to know the number of special attacks that you are capable of making within the given time frame. For some classes, this can be somewhat of a variable number due to certain talents or effects that they have. The best method of testing would be to merely practice for a while on a target dummy to get an average number of special attacks per minutes. You can also use an average gathered from old raid parses. Once you have both of those numbers, use the following formula to determine your real PPM.
Uptime((60 / Attack Speed) + Number of Special Attacks) * (Chance to Proc) = PPM
When speaking about proc effects, one of the most important components is the uptime. Every proc-based buff or debuff that is placed on the player or the player's target is going to have a specific uptime dictated based upon the duration of the effect, its chance to proc and any internal cooldown that might apply. In order to calculate out the uptime of a particular effect, use the following formula.
This formula is only relevant to those effects which have an internal cooldown, however. If the proc does not have an internal cooldown, then you must use the following formula instead.Uptime = Duration / (Internal Cooldown + (Proc Chance * Number of Attacks))
The reason that uptime is important is that it allows for us to configure the normalized benefit that any particular proc provides. Once you have determined a proc's uptime, you then use the following formula to determine the total impact of the effect.Uptime = 1 - (1 - Proc Chance)^(Duration * Number of Attacks)
As an example, say that you have a trinket which provides 1,000 attack power with an uptime of 50%. Using this trinket would provide a normalized increase of 500 attack power over the length of an encounter.Buff Effect * Uptime = Normalized Effect