# [MECHANICS] The Big "Attack Speed" Conundrum

## Recommended Posts

How much +speed I need in 3.2 to reach 0 recovery in plate? Durgan sabres, durgan armor, talent, frezy and potion will be enough ?

##### Share on other sites

^ The potion will suppress frenzy.

Dw durgan sabres + talent that's: (1.5 - 1) + (1.15 - 1) + (1.2 - 1) = 0.85

Dw durgan sabres + talent + frenzy: (1.5 - 1) + (1.15*1.33 - 1) + (1.2 - 1) = 1.23

Dw durgan sabres + talent + potion: (1.5 - 1) + (1.15*1.5 - 1) + (1.2 - 1) = 1.42

So: the setup with potion is enough to compensate for the -0.35 recovery penalty from armor.

The setup with frenzy would be enough too, if you will add gloves of swift action.

Edited by MaxQuest
##### Share on other sites

I tried to use one of the formulas in the thread to calculate attacks speed for a two hander but it didn't quite work.

For a durganized tidefall with gloves of swift action and potion I thought it would be:

(1.5-1) + (1.15 * 1.15 * 1.5) = 1.48

Also is there anything else a non dual wielding character can do to speed up their attack?

##### Share on other sites

I tried to use one of the formulas in the thread to calculate attacks speed for a two hander but it didn't quite work.

For a durganized tidefall with gloves of swift action and potion I thought it would be:

(1.5-1) + (1.15 * 1.15 * 1.5) = 1.48

Also is there anything else a non dual wielding character can do to speed up their attack?

Where is the first 1.5-1 coming from?

I think the 3 you listed are your only options though. Well there are other abilities/talents/consumables but they'll all be suppressed by DAoM.

You can get a (1.15*1.15*1.5 - 1) = 98% reduction from durgan weapon, gloves of swift action and a DAoM potion. In no armour (or durganized robes) that's practically 0 recovery. Or a fighter can wear durganized scale with almost no recovery.

Edited by dainbramage
##### Share on other sites

The first 1.5 would be dual wielding - which is kind of impossible with a two handed weapon.

##### Share on other sites

The first 1.5 would be dual wielding - which is kind of impossible with a two handed weapon.

In my defense I said I was having trouble trying to work through MaxQuest's formula.

So to summarize with a two handed weapon zero recovery is only really possible in clothes (which matches up with my quick gameplay test), unless the weapon has an inherent attack speed bonus.

##### Share on other sites

In my defense I said I was having trouble trying to work through MaxQuest's formula.

Hm... could be possible with a barb who has Bloodlust I guess..?

##### Share on other sites

Where is the first 1.5-1 coming from?

It came from dual-wielding. Boeroer was absolutely right about it.

In my defense I said I was having trouble trying to work through MaxQuest's formula.

Yeah, it can be quite confusing.

Until I have finished the [recovery] section, you can refer to this post.

And remember the following rule of thumb:

- all effects that affect recovery can be classified in several categories.

- effects from the same category that contains 'Multiplier' in it's inner name stack multiplicativery. (e.g. AttackSpeedMultiplier)

- effects from the same category that doesn't contains 'Multiplier' in it's inner name stack additively. (e.g. ArmorSpeedFactor)

- after that, category coefficients are added one by one to the final coefficient in the += (coef - 1) manner

- if final_coef value is greater than 1, you will have zero recovery.

So to summarize with a two handed weapon zero recovery is only really possible in clothes (which matches up with my quick gameplay test), unless the weapon has an inherent attack speed bonus.

With a durganized melee two-handed weapon, potion and gloves of swift action, the AttackSpeedMultiplier is 1.98. So zero-recovery is possible with:

- unenchanted clothing (1.98 - 1 = 0.98) (almost 1, you will have 1 maximum 2 frames of recovery)

- durganized robe (0.98 - (0.15 - 0.15) = 0.98) (same)

- durganized scale armor (with armored grace) (0.98 -  (0.35 - 0.2 - 0.15))

- durganized scale armor (with bloodlust; if it doesn't get suppressed, and goes into MeleeAttackSpeedMultiplier category)

- durganized plate armor (with bloodlust; if it doesn't get suppressed, and goes into AttackSpeedMultiplier category)

With a durganized melee two-handed weapon, with speed enchant, potion and gloves of swift action, the AttackSpeedMultiplier is 2.38. So zero-recovery is possible with:

- unenchanted scale armor (1.38 - 0.35 >= 1)

- durganized plate armor (1.38 - (0.5 - 0.15) >= 1)

For ranged weapons it would be the same. But there is also Sure-Handed chant that sets RateOfFireMultipler to 1.2. So:

With a durganized ranged two-handed weapon, chant, potion and gloves of swift action, the AttackSpeedMultiplier is 1.98. So zero-recovery is possible with:

- durganized scale armor (0.98 + 0.2 + (0.35 - 0.15) = 0.98) (almost zero recovery)

- durganized plate armor (with armored grace) (0.98 + 0.2 + (0.5 - 0.2 - 0.15) = 1.03 >= 1)

With a durganized ranged two-handed weapon, chant, speed enchant, potion and gloves of swift action, the AttackSpeedMultiplier is 2.38. So zero-recovery is possible with:

- durganized plate armor (1.38 + 0.2 + (0.5 - 0.15) = 1.23 >= 1)

Edited by MaxQuest
##### Share on other sites

MaxQuest thanks for that very informative post.

##### Share on other sites

Last time I used it Bloodlust was not suppressed by Frenzy. So I guess it stacks. Another thing is Bloodthirst. THis gives you 0 recovery after each kill. It's not really 0 recovery all the time - but with Firebrand and Scion of Flame you will get close.

##### Share on other sites

• 1 month later...

@MaxQuest This post is awesome. I haven't even read through the entire original post yet but I know this is what I have been looking for. You have a talent in explaining complicated things in an organized manner. Most of the crap I found out there was just a hodge podge of explanations within walls of text and bad examples. I want to make my own DPS calculator based on this knowledge. If you know of a legit one out there that actually has it right, let me know!

##### Share on other sites

Thanks)

As for DPS calculator I am not aware of any with up-to-date data. Although you might want to take a look at this one and inspire in a way.

##### Share on other sites

• 6 months later...

I've been receiving few requests about full list of speed categories (since my list was incomplete), plus if it is possible to explain recovery duration calculation formula in a simpler way. So:

Updated tables (17th January 2017):

Btw, big thanks to Loren Tyr for this post.

Now, the formulas: (tried to simplify as much as I could ^^)

Note: the referenced image with weapon attack and reload durations, is this one: http://i.imgur.com/QqMIkII.png

Note to self: check dual-wielding.

Edited by MaxQuest
##### Share on other sites

Great !

Isn't penetrating shot 0.80 instead of 1.20 ?

##### Share on other sites

Isn't dual wielding recovery recently changed ?

I thought it was a big 0.5 added to speed coeff ?

(or if you prefer, a separate coef of blue category valued to 1.5)

If changed, it means that reached 0 recovery is almost as complicated with dual wielding (apart for style talent bonus) as with single weapons...

##### Share on other sites

Yes, Pen. Shot is wrong.

Do you mean dual wielding or two weapon style?

Dual wielding (using two weapons) still is 1.5 (it's not in the list), but Two Weapon Style is "only" 1.2 and comes on top.

##### Share on other sites

Yes, Pen. Shot is wrong.

Do you mean dual wielding or two weapon style?

Dual wielding (using two weapons) still is 1.5 (it's not in the list), but Two Weapon Style is "only" 1.2 and comes on top.

I meant dual wielding itself. The talent is in the table, exactly where I expected it to be.

Dual wielding is somehow in the table because it affects what MaxQuest call "recovery factor".

My understanding was the same as yours, Boeroer, but apparently MaxQuest has a new formula, different from what we both thought to be right.

##### Share on other sites

Indeed, it looks like Max's formulas suggest that the effect of dual wielding is to half recovery after all other recovery modifiers have been applied rather than to add a 0.5 to the recovery modifier.

For example, previously I thought dual wielding and drinking a DAoM potion would result in 0 recovery, but according to Max's formula, it actually results in a recovery of 0.25*attack speed.

Out of interest Max, how did you get the formulas? Were they obtained through testing or did you find them in the game code?

##### Share on other sites

Great !

Isn't penetrating shot 0.80 instead of 1.20 ?

Thanks! I knew I had to triple check before posting...

Updated the list.

Isn't dual wielding recovery recently changed ?

I thought it was a big 0.5 added to speed coeff ?

(or if you prefer, a separate coef of blue category valued to 1.5)

I understand what you mean. And from end-results this is correct for auto-attacking.

But it's a bit more complicated than that. It's not that dual-wielding provides a bonus. Rather having having only 1 weapon provides a penalty. I will have to check the recovery of spells (with DaoM) to be sure, and also check the deal with recovery_factor. Will try to test these once I get home.

but apparently MaxQuest has a new formula, different from what we both thought to be right.

It's more likely I've got an error when trying to simplify things. I will dig this.

Out of interest Max, how did you get the formulas? Were they obtained through testing or did you find them in the game code?

First approach was frapsing and counting the frames.

Second approach involved checking the decompiled source code. (I'm probably not allowed to post it as it's considered intellectual property, but the way recovery duration is calculated can be found in AttackBase.cs NotifyAttackComplete() function) (the problem is, it's a bit complex and I've struggled with reducing it to a simple and elegant formula/explanation)

Third approach involved injecting a function into Pillars' dll, that would print in log base (attack, recovery, reload) durations of currently equipped weapon.

Edited by MaxQuest
##### Share on other sites

It's more likely I've got an error when trying to simplify things. I will dig this.

At the moment, if I'm reading it correctly, your formula seems to work like this for recovery (BaseRecovery and ModifiedRecovery introduced by me):

• BaseRecovery = 5/3 * AttackPhaseDuration,
• ModifiedRecovery = (1 - speed_coeff) * BaseRecovery [with a floor of 0],
• RecoveryPhaseDuration = 1/2 * ModifiedRecovery if dual wielding or ModifiedRecovery otherwise.

This implies that the bonus from dual wielding is multipicative rather than additive, going against what the current understanding is i.e. that dual wielding is a 0.5 contribution to the speed_coeff. That's not to say that you're wrong, it's quite possible (even likely) that the current understanding has been wrong. As I understand it, the current (possibly wrong) formula works as follows:

• BaseRecovery = 2 * AttackPhaseDuration,
• RecoveryPhaseDuration = (0.5 - speed_coeff) * BaseRecovery if dual wielding or (1 - speed_coeff) * BaseRecovery otherwise.

The 2 instead of the 5/3 comes from the (possibly wrong) fact that wielding a single fast weapon with no Dexterity of attack speed bonuses resulted in a 20/40 frames attack/recovery animation, and for a normal or two-handed weapon it's 30/60 frames. This might be wrong though, I've no idea if these values were ever tested carefully.

The main difference is that the bonus for dual wielding (or penalty for not dual wielding) is applied additively to the speed multiplier rather than separately multiplicatively. Actually, given what you've said about dual wielding not providing a bonus but rather non-dual wielding being a penalty, perhaps that formula is better written as:

• BaseRecovery = AttackPhaseDuration,
• RecoveryPhaseDuration = (1 - 2 * speed_coeff) * BaseRecovery if dual wielding or (2 - 2 * speed_coeff) * BaseRecovery otherwise.

To compare the two formulae take a Dex 10 naked character with no abilities, talents or items that give +attack speed. Have him drink a potion of DAoM and attack a companion using first a single sword, then dual swords. Under Max's formula you would expect a recovery of 0.83s and 0.42s respectively, whilst under the current formula you would expect recoveries of 1s and 0 respectively, so it should be fairly easy to rule one or the other out.

First approach was frapsing and counting the frames.

Second approach involved checking the decompiled source code. (I'm probably not allowed to post it as it's considered intellectual property, but the way recovery duration is calculated can be found in AttackBase.cs NotifyAttackComplete() function) (the problem is, it's a bit complex and I've struggled with reducing it to a simple and elegant formula/explanation)

Third approach involved injecting a function into Pillars' dll, that would print in log base (attack, recovery, reload) durations of currently equipped weapon.

Kudos on the amount of work put into this. What software would someone need to decompile the code?

##### Share on other sites

By the way, at the moment I think the way you've written the speed multipliers is wrong. You've written them all as 1.x, but in your speed_coeff calculation you sum them up and only subtract 1 once. This means, for example, for Zahua with his anitlei bonus, a single durganised sword and a DAoM potion, the speed_coeff formula is

speed_coeff = (1.1 + 1.5 + 1.15) - 1 = 2.75,

which results in 0 recovery, but it should be 1.75. I think either you'd want to change all the speed multipliers to 0.x, or you'd want to change your ORANGE and BLUE coef formulae to something like

((coef_1 - 1) + (coef_2 - 1) + ... + (coef_n - 1))

and

((coef_1 - 1) * (coef_2 - 1) * ... * (coef_n - 1))

respectively.

Edited by JerekKruger
##### Share on other sites

Kudos on the amount of work put into this. What software would someone need to decompile the code?

Thanks

As for software I have used ILSpy to inspect Assembly-CSharp.dll.

That's not to say that you're wrong, it's quite possible (even likely) that the current understanding has been wrong.

No, no, no. I have indeed made a mistake in the simplified recovery formula.

I have re-checked:

- recovery_factor is not changing if you dw or not. It's a constant 1.2

- when not using an ability, and having 1h or wielding a shield incurs a 0.5 penalty

- naked and with just DaoM, you have zero recovery on spells

- naked and with just DAoM, you have zero recovery when dual-wielding (I already knew this; dunno how I could make this mistake)

I have reflected this, in the updated table:

Note:

But I need a little more time, to verify the signs and also test durgan enchant (shield).

And triple-check everything.

By the way, at the moment I think the way you've written the speed multipliers is wrong. You've written them all as 1.x, but in your speed_coeff calculation you sum them up and only subtract 1 once. This means, for example, for Zahua with his anitlei bonus, a single durganised sword and a DAoM potion, the speed_coeff formula is

speed_coeff = (1.1 + 1.5 + 1.15) - 1 = 2.75

Blue category uses multiplication. It would be: (1.1*1.5*1.15) - 1 = 0.89

But yes, those multpliers are increased by 1. That was done to skip an extra step later.

Consider you have swift aim, swift gloves and cautious attack.

AttackSpeedMult should be: [(1 + 0.2) * (1 + 0.15) * (1 - 0.2)] - 1 = 0.104

Instead, it can be presented as:

AttackSpeedMult should be: [1.2 * 1.15 * 0.8] - 1 = 0.104 (that's why I wrote those multiplers that way)

Edited by MaxQuest
##### Share on other sites

"- when not using an ability, and having 1h or wielding a shield incurs a 0.5 penalty"

If I understand well, you should re-write it :

"- when not using an ability, and having single weapon (1-handed or 2-handed) or wielding a shield incurs a 0.5 penalty"

"1h" seems to exclude 2-handed, and I don't think this was your intention.

Good to know that spells are so fast.

I think DAoM should be greyed out.

If you could also add Nature's bounty too

##### Share on other sites

I never tested how spells work and I'm not sure I understand how recovery works for them. Having 2 weapons gives 50% recovery for spells too, or you can have 50% recovery only with fists? That means 15% attack speed from gloves and 50% from DAoM would allow wearing up to durgan enchanted scale and be able to cast spells with 0% recovery?

##### Share on other sites

I never tested how spells work and I'm not sure I understand how recovery works for them. Having 2 weapons gives 50% recovery for spells too, or you can have 50% recovery only with fists? That means 15% attack speed from gloves and 50% from DAoM would allow wearing up to durgan enchanted scale and be able to cast spells with 0% recovery?

I don't think equipped weapons have anything to do with spell/ability recovery duration. Only the armor matters.

Weapons/shield/armor  will affect recovery for weapon swings.

The gray area are the spells that create "virtual spell weapons"  those direct damage spells that benefit from all sorts of weapon related stuff because of that . (those are actually weapon attacks "disguised" as spells and still wouldn't care about your equipped weapons - they use the "virtual spell weapon" for recovery speed calculations)

TLDR nothing equipped in the weapon and shield slots should influence spell recovery speed directly (spelltongue's buff probably does).

Edited by peddroelm

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.