Hello.
I finally plugged all into Excel.
I could not do this without the massive help from ChthonVII @ blizzard forums.
I like to share this info here as well.
I also would like to explain good how it works.
I will not cover biting attacks now, as i dont know if they now are just the same as standard attack now after this patch. They used to have baseframe of 10 for both wolves and bears, and NU frame of 9 for bear and 10 for wolves. However this used to have extreamly different formulas contra what attacks as now for shapers.
Changes and Patch notes:Druids:
Code
Werewolf
Werewolf now only uses the new attack speed calculation that was originally introduced in the PTR
Raised Werewolf attack speed cap from +75% to +150%
Fury
Increased speed between attacks by 40%
Werebear
Werebear now only uses the new attack speed calculation that was originally introduced in the PTR
Raised Werebear attack speed cap from +75% to +150%
Damage bonus per level increased from 8% to 15%
Base defense value increased from 25% to 40%
Defense bonus per level increased from 6% to 10%
Cannot be interrupted while performing attacks or skills
Maul
Now grants +3% attack speed per charge
I will write all formulas in english excel format.
;1 means that we round the into a full number without digits behind comma. ","
However i have seen some excel versions use ,1 instead of ;1.
First we need to find our EIAS:EIAS = Effective Increased Attack Speed.
This is the one used in the FPA(FramesPerAttack) formula to decide your attack speed.
For Werewolf and Werebear this is now capped at 150, instead of the regular 75.
EIAS is a result of ur combined WSM, SIAS and IAS:
* WSM (Wepon Speed Modifer) which is the base speed of the wepon. The lower number the faster the base is. This goes from -60 to +20.
Its propotional decreasing with EIAS raising, (works inverted).
0WSM = 0EIAS
-10WSM = 10 EIAS.
* SIAS (Skill Increased Attack Speed) This is given by skills such as: Werewolf, Fanatiscm, Burst of Speed, Maul.
Its propotionally increasing with EIAS.
1 SIAS = 1 EIAS
10 SIAS = 10 EIAS
* IAS (Increased Attack Speed) This is given by item ias. It does not matter if its from wep or other gear anymore.
Its NOT scaling propotionally with EIAS, but uses the equation to have dimmishing returns:
Floor(120*IAS/(120-IAS);1)
* SLOW directly subtracts to EIAS:
1% slow = -1% EIAS
10% slow = -10% EIAS
So to find out EIAS, and make sure it does not go above 150 CAP we use this equation:
EIAS FORMULA:=IF(Floor(120*IAS/(120+IAS)+SIAS-WSM-SLOW;1)>150;150;Floor(120*IAS/(120+IAS)+SIAS-WSM;1))
Which basicly means, if answere of the first part is above 150, the answere is 150, else its a result of the formula.
I also think EIAS has floor cap of 0.
Frames Per Attack(FPA) :Now that we know the EIAS we can start calculing FPA (Frames Per Attack). However different wepon classes has different baseframes and actionframes from animdata.d2 file.
Baseframe is the base full frame of any attack.
Its sorted like this:
DZ = Druid
A1 = Attack1
DZA1 = Druid Attack1
Those are the only one we need now.
The next 3 letters will be the wepon class.
If a barbarian or sorc or assassin or any other character shapeshange i assume they use that chars baseframe for calculating FPA, in which case assassin can pr now max reach 5 FPA attack as a bear.
Actionframe is when the attack is actually striking, character needs to withdraw his paw or wepon prior to launching next attack.
Wepon classes are sorted like this and has the following base frames and action frames, i will list them from fast to slow baseframe order:
HTH = Hands/Fists -- BaseFrame: 16 -- Actionframe: Unknown.
BOW = Bow -- Baseframe: 16 - Actionframe: 8
STF = 2handed poleaxes, 2handed Axes, 2handed mauls, 2handed staffs -- Baseframe: 17 -- Actionframe: 9
1HT = 1handed javelins, daggers and knives. -- Baseframe: 19 -- Actionframe: 8
1HS = All other 1 handed wepons. -- Baseframe: 19 -- Actionframe: 9
XBW = Crossbows. -- Baseframe: 20 -- Actionframe: 10
2HS = 2handed swords. Baseframe: 21 -- Actionframe: 10
2HT = 2handed Spears. Baseframe: 23 -- Actionframe: 9
FPA formula for:Standard Attack (both druid human, werewolf and werebear, however remember druid human has 75EIAS break)
Maul
Fireclaw
Feral Rage
(maby biting now)
=Ceiling(BaseFrame*256/Floor(Animspeed*(Animrate+EIAS)/100;1);1)-1* Baseframe is according to Animdata.d2. Listed just above.
* Animspeed is 256 for most all attacks, but assa A1 with claws has 208, trang ouls vampire has custom animspeed, bone fetish(delerium) also has custom animspeed.
For now, you only need to put 256 here..
* Animrate is always 100, unless your chilled(blue character from cold dmg) then it will be 50.
* EIAS is explained above.
* Ceiling and floor function to keep frames clean, and ergo u get EIAS breakpoints.
* -1 is to smoothen out the animation by cutting 1 frame in the beginning or the end of the attack.
So to simplify this we can just use this formula unless ur plan on getting chilled or use assasin with standard claw attack or a bone fetish or a vampire or a wirlwind barb:
=Ceiling(BaseFrame*256/Floor(256*(100+EIAS)/100;1);1)-1FPA formula for Werewolf FURY:Fury now have 70% rollback, instead of 100%. (which is what blizzard ment with 40% faster between attacks in patchnotes)
Fury is a serial or sequence attack and use actionframe instead of baseframe, it also dont use -1 in the end to smoothen out animation as well as it has a rollback function.
Last hit uses the baseframe.
Chilling ofc works the same as explained above.
Hit1 =Ceiling((ActionFrame-0)*256/Floor(256*(100+EIAS)/100;1);1)
StartframeHit2 =Floor(Floor(0+((Hit1*Floor(((100+EIAS)*256)/100;1))/256);1)*((100-70)/100);1)
Hit2 =Ceiling((Actionframe-StartFrameHit2)*256/Floor(256*(100+EIAS)/100;1);1)
StartframeHit3 =Floor(Floor(StartFrameHit2+((Hit2*Floor(((100+EIAS)*256)/100;1))/256);1)*((100-70)/100);1)
Hit3=Ceiling((ActionFrame-StartFrameHit3)*256/Floor(256*(100+EIAS)/100;1);1)
StartframeHit4 =Floor(Floor(StartframeHit3+((Hit3*Floor(((100+EIAS)*256)/100;1))/256);1)*((100-70)/100);1)
Hit4 =Ceiling((ActionFrame-StartframeHit4)*256/Floor(256*(100+EIAS)/100;1);1)
StartframeHit5=Floor(Floor(StartframeHit4+((Hit4*Floor(((100+EIAS)*256)/100;1))/256);1)*((100-70)/100);1)
=Ceiling((BaseFrame-StartframeHit5)*256/Floor(256*(100+EIAS)/100;1);1)-1
When it comes to slow im not 100% sure of the total slow.
I know chilling subtract 50 to Animrate.
I know slow% from items subtract same ammount to WSM or EIAS
I know the cap for itemslow% is 50, but i dno if it share this cap with skill slow like holyfreeze, decreap, golem and now impale.
So either max ammount of slow if we count chilling is either 100 or 150.
EIAS tables, and how to use them:So to not having to try ur way with itembase, skillias, wsm and baseframe/action frame every time we use EIAS table.
EIAS is the same breakpoint per wepon type always, the EIAS breakpoint will not change nomather of type of wepon or skill lvl to werewolf etc you have.
Which is why we prefer EIAS tables.
EIAS ammount will ofc always change based on IAS, SIAS, WSM and SLOW, but breakpoint stays the same within the same wepon class.
Which is why you can fill in SIAS, WSM and then use tables to get how much IAS needed via this formula:
Formula to find needed IAS to reach a certain EIAS breakpoint:=Ceiling(120*(EIASbreak-SIAS+WSM+SLOW)/(120-(EIASbreak-SIAS+WSM+SLOW));1)
Here are the EIAS table for standard attack:I put 75 SIAS as this has a wide specter of werewolf levels who gives this ammount, its also reacheble on most builds.
Attack per second and IAS is on this excact table based on 75 SIAS and 0 WSM.
Diablo run on 25 fps.
So to find attack speed based on FPA you do this formula:
25/FPA = Attack Per Seconds
ON THEESE EIAS TABLES ONLY FPA, EIAS AND ATTACKSPEED IS WRITTEN IN STONE.
IAS REQUIREMENTS ARE DIFFERENT DEPENDING ON UR SKILL IAS AND SIAS AND SLOW AND IF UR CHILLED OR NOT.Here are the EIAS table for Fury Attack:
Currently Attack per second and IAS is on this excact table based on 75 SIAS and 0 WSM.
25/((SumAllFPAFury)/5) = Attacks Per Second
Here are my previous IAS topic, where WERWOLF AND WEREBEAR IS OUTDATED.
https://forums.d2jsp.org/topic.php?t=89662420&f=148Werewolf skill formula:Duration: =IF(Slvl<1;0;40+Slvl)
Max life%: =IF(Slvl<1;0;25)
Attackrating%: =IF(Slvl<1;0;15*Slvl+35)
SIAS%: =IF(Slvl<1;0;10+Floor(70*(((110*Slvl)/(Slvl+6))/100);0))
Delay: 1 (uncertain if they changed this)
Just to cover all shapeshifting:Form ----------- AnimLength ------ AnimSpeed
Vampire ----------14 ---------------- 176
Undead Fetish -- 12 ---------------- 256
Theese guys uses character baseframe to calc attack by the standard attack speed formula.
This post was edited by gel87 on Mar 7 2022 03:11pm