Breakpoints & Animations

Breakpoints

Content of this article:

  1. Introduction
  2. Cast Rate
  3. Hit Recovery
  4. Block Rate
  5. Summary

Introduction

The Diablo 2 engine runs at 25 Frames per Second (FPS). Every action a character performs requires a specific number of frames to complete. Frames can't be broken down into fractions, therefore you have to reduce the count by a complete Frame to shorten the animation length, leading to the Breakpoints of the animation. We can improve the Cast Rate, Hit Recovery, Block Rate and Attack Rate through their corresponding Affixes on gear or Skill effects. Each of these animations has their own calculation on how to reduce its Frame count, which we go into detail in their respective sections. This leads to a table of numeric values that can be reached for each of them, the so-called "Breakpoints". Due to the complexity of Attack Speed, it is covered in our Attack Speed article.


Cast Rate

Mechanics
  • Cast Rate determines how fast the animation for a casting based Skill is.
  • Your cast animation can be interrupted by...
    • ... hits that put you into Hit Recovery (see below).
    • ... stuns.
    • ... you blocking.
  • The animation is split into 3 sections.
    • Frames before the Skill activation
    • The "Action Flag" - The Frame when the Skill occurs
    • The remaining Frames of the animation, before another action can be taken
  • You can speed up the animation by using gear with +xx% Faster Cast Rate (FCR).
    • Effective Faster Cast Rate is capped to 75%. As a result, having more than +200% FCR equipped has no effect at all.
Calculations

Note for the calculations:

  • ceil = round up the term that follows
  • floor = round down the term that follows
Cast Frames

To calculate the Cast Frame of a Character, we need the following values:

  • The total +xx% Faster Cast Rate (FCR) from our gear.
  • The "Casting base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Cast Rate (EFCR):
Note: EFCR has a hard-coded cap of 75%. This means that FCR values past 200% have no effect.
EFCR = floor(FCR * 120 / (FCR + 120))

Cast Frames:
Cast Frames = ceil(256 * Casting Base / floor(Animation Speed * (100 + EFCR) / 100) - 1)

Cast Frame Exception:
The Skills Lightning and Chain Lightning of the Sorceress use a slightly modified version of this formula.
Cast Frames = ceil(256 * Casting Base / floor(Animation Speed * (100 + EFCR) / 100))

CharacterCasting BaseAnimation Speed
Amazon20256
Assassin17256
Barbarian14256
Druid16208
Werewolf16229
Werebear16228
Necromancer15256
Vampire form15160
Paladin16256
Sorceress14256
Lightning / Chain Lightning19256
Act 3 Mercenary18256

Practical Example

Practical example with 50 FCR on a Sorceress:

Effective Faster Cast Rate (EFCR):
EFCR = floor(50 * 120 / (50 + 120))
EFCR = floor(6,000 / 170)
EFCR = floor(35.294...)
EFCR = 35

Cast Frames:
Cast Frames = ceil(256 * 14 / floor(256 * (100 + 35) / 100) - 1)
Cast Frames = ceil(3,584 / floor(256 * 135 / 100) -1)
Cast Frames = ceil(3,584/ 345 - 1)
Cast Frames = ceil(9.388...)
Cast Frames = 10

This means the Sorceress with 50 FCR on gear will use 9 Frames for the Cast animation.

Practical example with 50 FCR on a Sorceress using Lightning:

Effective Faster Cast Rate (EFCR):
EFCR = floor(50 * 120 / (50 + 120))
EFCR = floor(6,000 / 170)
EFCR = floor(35.294...)
EFCR = 35

Cast Frames:
Cast Frames = ceil(256 * 19 / floor(256 * (100 + 35) / 100))
Cast Frames = ceil(4,864 / floor(256 * 135 / 100))
Cast Frames = ceil(4,864/ 345)
Cast Frames = ceil(14.098...)
Cast Frames = 15

This means a Sorceress with 50 FCR on gear will use 15 Frames to cast Lightning.

Action Flags

To calculate the Action Flag of a Character, we need the following values:

  • The total +xx% Faster Cast Rate from our gear.
  • The "Action Flag Base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Cast Rate (EFCR):
Note: EFCR has a hard-coded cap of 75%. This means that FCR values past 200% have no effect.
EFCR = floor(FCR * 120 / (FCR + 120))

Action Flag:
Action Flag = ceil(Base Action Flag * 256 / floor(Animation Speed x (100 + EFCR) / 100))

CharacterVariableAnimation SpeedBase Action Flag
AmazonUsing Bow25610
No Weapon25611
Using Crossbow / Two-Handed Sword25612
Using Two-handed Staves, Hammers, Axes,
Polearms, Knives, Javelins, or Spears
25613
Assassin------2569
Barbarian------2569
DruidNormal Form20810
Werewolf2298
Werebear2289
NecromancerNormal Form2568
Vampire Form1605
Paladin------2569
Sorceress------2567
Act 3 Mercenary------2567

Practical Example

Practical Example with 70 FCR on am Amazon using a Bow:

Effective Faster Cast Rate (EFCR):
EFCR = floor(FCR * 120 / (FCR + 120))
EFCR = floor(70 * 120 / (70 + 120))
EFCR = floor(8,400 / 190)
EFCR = floor(44.210...)
EFCR = 44

Action Flag:
Action Flag = ceil(Base Action Flag * 256 / floor(256 * (100 + EFCR) / 100))
Action Flag = ceil(10 * 256 / floor(256 * (100 + 44) / 100))
Action Flag = ceil(2,560 / floor(256 * 144 / 100))
Action Flag = ceil(2,560 / floor(368.64)
Action Flag = ceil(2,560 / 368)
Action Flag = ceil(6.9565...)
Action Flag = 7

This means any casting Skill of the Amazon using a Bow at 70 FCR will trigger 7 Frames into the animation.

Breakpoints

The tables below show the Breakpoints for casting on each Character:

Amazon

Using a Bow:

Faster Cast Rate07142232486899152
Cast Frames191817161514131211
Action Flags109876

Using a Crossbow or Two-Handed-Swords:

Faster Cast Rate07111422263248688699152180
Cast Frames191817161514131211
Action Flags121110987

Using no Weapon:

Faster Cast Rate07131422293248566899113152
Cast Frames191817161514131211
Action Flags1110987

Using a Two-Handed Staves, Hammers, Axes, Polearms, Spears, One-Handed Knives, or Javelins:

Faster Cast Rate0710142223324248687299133152
Cast 191817161514131211
Action Flags1312111098

Assassin

Faster Cast Rate0815162739426586102174
Cast Frames161514131211109
Action Flags9876

Barbarian

Faster Cast Rate09152037396386105200
Cast Frames13121110987
Action Flags9876

Druid

Normal:

Faster Cast Rate041011193046636899142163
Cast Frames181716151413121110
Action Flags109876

Werewolf:

Faster Cast Rate0610142637406095157
Cast Frames161514131211109
Action Flags8765

Werebear:

Faster Cast Rate071526406399163
Cast Frames161514131211109
Action Flags98765

Necromancer

Normal:

Faster Cast Rate0918304875125
Cast Frames1514131211109
Action Flags8765

Vampire Form:

Faster Cast Rate0611182435486586120180
Cast Frames2322212019181716151413
Action Flags543

Paladin

Faster Cast Rate0915183039487586125
Cast Frames1514131211109
Action Flags9876

Sorceress

Normal:

Faster Cast Rate09203763105200
Cast Frames13121110987
Action Flags7654

Lightning / Chain Lightning:

Faster Cast Rate0715202335526378117194200
Cast Frames191817161514131211
Action Flags7654

Mercenaries

Act 1 Mercenary:
This Mercenary uses the Skill Inner Sight, however, she uses her Attack Speed Frame Breakpoints for it.

Act 3 Mercenary:

Faster Cast Rate0815202639586386138200
Cast Frames1716151413121110
Action Flags7654
Cast Delay

Cast Delay (CD), usually referred to as Cooldown, is applied when a Skill is used, causing an inability to use that Skill or other Skills effected by CD for a period of time, starting at the Action Flag. Skills, not listed in the table below, can be used while CD is active.
The CD itself can't be reduced by any means, however, due to the interaction with the Action Flag, you can reduce the interval (Action Flag + Delay) by hitting Breakpoints for the Action Flag.

Amazon:

SkillDelay (seconds)
Poison Javelin0.6
Plague Javelin4
Immolation Arrow1
Valkyrie6


Druid:

SkillsDelay (seconds)
Werewolf1
Firestorm0.6
Werebear1
Molten Boulder2
Fissure2
Volcano4
Armageddon6
Hurricane6

Assassin:

SkillDelay (seconds)
Shock Web0.6
Blade Sentinel2
Shadow Warrior6
Dragon Flight1
Shadow Master6

Paladin:

SkillDelay (seconds)
Fist of the Heavens1

Sorceress:

SkillDelay (seconds)
Fire Wall1.4
Meteor1.2
Blizzard1.8
Hydra1.6
Frozen Orb1

Hit Recovery

Mechanics
  • Hit Recovery will interrupt other animations like, cast animation, attack animation, run/walk animation, or your idle animation (standing around).
  • While in Hit Recovery, you are unable to perform any actions.
  • You can be put into Hit Recovery repeatedly without cooldown, potentially leading to a full "stun lock".
  • You can improve the animation by using gear with +xx% Faster Hit Recovery (FHR).
Calculations
Breakpoint Calculations

Note for the calculations:

  • ceil = round up the term that follows
  • floor = round down the term that follows

Before we can use the formulas for Hit Recovery, we need the following values:

  • The total +xx% Faster Hit Recovery from our gear.
  • The "Hit base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Hit Recovery (EFHR):
EFHR = floor(FHR * 120 / (FHR + 120))

Hit Recovery Frames:
Hit Recovery Frames = ceil(256 * Hit Base / floor(Animation Speed * (50 + EFHR) / 100) - 1)

CharacterHit BaseAnimation Speed
Amazon6256
Assassin5256
Barbarian5256
Druid (1-handed swinging Weapons) (*)7248
Druid (Other Weapons)7256
Werewolf4256
Werebear5184
Necromancer7256
Vampire Form4136
Paladin (Spears and Staves)5192
Paladin (Other Weapons)5256
Sorceress8256
Act 1 Mercenary6256
Act 2 Mercenary8256
Act 3 Mercenary9256
Act 5 Mercenary5256

(*) This only means: 1-handed Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands.

Practical Example

Practical example with 50 FHR on a Sorceress:

Effective Faster Hit Recovery (EFHR):
EFHR = floor(50 * 120 / (50 + 120))
EFHR = floor(6,000 / 170)
EFHR = floor(35.294...)
EFHR = 35

Hit Recovery Frames:
Hit Recovery Frames = ceil(256 * 8 / floor(256 * (50 + 35) / 100) - 1)
Hit Recovery Frames = ceil(2,048 / floor(256 * 85 / 100) -1)
Hit Recovery Frames = ceil(2,048 / 217 - 1)
Hit Recovery Frames = ceil(8.437...)
Hit Recovery Frames = 9

This means the Sorceress with 50 FHR on gear will use 9 Frames for the Hit Recovery animation.

How is Hit Recovery determined?

The engine goes through a number of steps to determine whether a target is put into Hit Recovery:

  • Damage is calculated and applied. The target isn't put into Hit Recovery if
    • the calculated damage is enough to kill the target.
    • the target is Frozen.
    • the applied damage is Poison Damage only.
    • the applied damage is less than 1.
  • Check the maximum Life of the target.
  • Get the "divisor" value which is needed in the next step. This value is determined by the "hitclass" of the attack, which can be found in the Missile.txt game file. Each attack in the game has a hitclass value attached to it, which translates to a certain divisor. This correlation is hard coded in the engine.
HitclassesDivisor
2, 6, 10 and 118
Default16
4 and 832
564
  • Use formula: TriggerNumber = maximum Life / divisor
  • Now we actually determine whether the target will be put into Hit Recovery. To do so, the engine goes through the following checks:
    • Compare the value of applied damage with the calculated value for TriggerNumber
      • Damage < TriggerNumber -> No Hit Recovery occurs
      • Damage >= TriggerNumber -> continue with the next check.
    • If Damage is < 2 * TriggerNumber, there is a 50% chance for the target to be put into Hit Recovery. The game rolls a number (rnd{0, 1}).
      • 0 = No Hit Recovery occurs
      • 1 = continue with the next check.
    • If the last check was successful and damage < 4 * TriggerNumber there is a 75% chance for Hit Recovery to occur. The game rolls a number (rnd{0, 1, 2, 3})
      • 0 = No Hit Recovery occurs
      • 1, 2, 3 = Hit Recovery occurs
    • If the applied damage > 4 * TriggerNumber, Hit Recovery occurs guaranteed.
  • The final step of the game is to check whether a target can be put into Hit Recovery in the first place. There are a number of targets that are "immune" to Hit Recovery. Your poor CPU might have wasted its time...

Practical Example

Alright... after that mind bender of theory... Let's apply our knowledge to a practical example:
Our Character has 1600 Life and gets hit for 200 damage by an attack with the default divisor of 16.

The first step after knowing these values is:
TriggerNumber = maximum Life / divisor
TriggerNumber = 1600 / 16 = 100

Let's see if we will be put into Hit Recovery:

  • 100 < 200 -> Our TriggerNumber is smaller than the inflicted damage. -> go to the next step.
  • 100 * 2 = 200 -> The damage is equal to 2 times TriggerNumber. -> Time to roll a random number (rnd{0, 1}), meaning we have a 50% chance to get out of the Hit Recovery check.
    • 0 = No Hit Recovery
    • 1 = Go to next check
  • Assuming we got unlucky and rolled a 1 we now have a 75% chance to be put into Hit Recovery. Time to roll another random number to determine that: (rnd{0, 1, 2, 3})
    • 0 = No Hit Recovery occurs
    • 1, 2, 3 = Hit Recovery occurs
  • Since the damage is not >= 4x TriggerNumber there is no guarantee to be put into Hit Recovery.
  • Finally, let's check whether we can be put into Hit Recovery in the first place. The Characters you play can always be put into Hit Recovery, so if we rolled a 1-3 in the earlier check, we are out of luck and will be put into Hit Recovery.
Breakpoints

+594% Faster Hit Recovery is the maximum you can achieve. The tables below show the Breakpoints with achievable Faster Hit Recovery values.

Amazon

Faster Hit Recovery061320325286174
Hit Recovery Frames1110987654

Assassin

Faster Hit Recovery0715274886200
Hit Recovery Frames9876543

Barbarian

Faster Hit Recovery0715274886200
Hit Recovery Frames9876543

Druid

1-Handed Swinging Weapons (Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands):

Faster Hit Recovery037131929426399174456
Hit Recovery Frames1413121110987654

Other Weapons:

Faster Hit Recovery05101626395686152377
Hit Recovery Frames13121110987654

Werewolf:

Faster Hit Recovery09204286280
Hit Recovery Frames765432

Werebear:

Faster Hit Recovery05101624375486152360
Hit Recovery Frames13121110987654

Necromancer

Normal:

Faster Hit Recovery05101626395686152377
Hit Recovery Frames13121110987654

Vampire Form:

Faster Hit Recovery026101624344872117208
Hit Recovery Frames15141312111098765

Paladin

Spears and Staves:

Faster Hit Recovery0371320324875129280
Hit Recovery Frames13121110987654

Other Weapons:

Faster Hit Recovery0715274886200
Hit Recovery Frames9876543

Sorceress

Faster Hit Recovery059142030426086142280
Hit Recovery Frames15141312111098765

Mercenaries

Act 1 Mercenary:

Faster Hit Recovery061320325286174
Hit Recovery Frames1110987654

Act 2 Mercenary:

Faster Hit Recovery059142030426086142
Hit Recovery Frames1514131211109876

Act 3 Mercenary:

Faster Hit Recovery05813182432466386133232
Hit Recovery Frames17161514131211109876

Act 5 Mercenary:

Faster Hit Recovery0715274886200
Hit Recovery Frames9876543

Block Rate

Mechanics
  • Blocking is an animation that is performed when you successfully block a physical attack. This includes the Assassins' Weapon Block.
  • While blocking, you are unable to perform any actions.
  • You can block repeatedly without cooldown, potentially leading to a full "block lock".
  • You can speed up the animation by using gear with +xx% Faster Block Rate (FBR).
    • This Affix is exclusive to Shields, making it very hard to come by. The only exception to this rule is Guardian Angel.
Calculations

Note for the calculations:

  • ceil = round up the term that follows
  • floor = round down the term that follows

Before we can use the formulas for Block Rate, we need the following values:

  • The total +xx% Faster Block Rate from our gear.
  • The "Block Base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Block Rate (EFBR):
EFBR = floor(FBR * 120 / (FBR + 120))

With Holy Shield:
EFBR = floor(FBR * 120 / (FBR + 120)) + 50

Block Frames:
Block Frames = ceil(256 * Block Base / floor(Animation Speed * (50 + EFBR) / 100) - 1)

CharacterBlock BaseAnimation Speed
Amazon3256
Amazon (1-handed Weapons) (*)388
Assassin3256
Barbarian4256
Druid6256
Werewolf5256
Werebear5200
Necromancer6256
Paladin3256
Sorceress5256

(*) This only means: 1-handed Axes, Clubs, Maces, Hammers, Scepters, Swords, Throwing Axes.

Practical Example

Practical example with 50 FBR on a Paladin without Holy Shield:

Effective Faster Block Rate (EFBR):
EFHR = floor(50 * 120 / (50 + 120))
EFHR = floor(6,000 / 170)
EFHR = floor(35.294...)
EFHR = 35

Block Frames:
Block Frames = ceil(256 * 3 / floor(256 * (50 + 35) / 100) - 1)
Block Frames = ceil(768 / floor(256 * 85 / 100) -1)
Block Frames = ceil(768 / 217 - 1)
Block Frames = ceil(2.539...)
Block Frames = 3

This means the Paladin with 50 FBR and without Holy Shield will use 3 Frames for the Block animation.

Practical example with 50 FHR on a Paladin with Holy Shield:

Effective Faster Block Rate (EFBR):
EFHR = floor(50 * 120 / (50 + 120)) + 50
EFHR = floor(6,000 / 170) + 50
EFHR = floor(35.294...) + 50
EFHR = 85

Block Frames:
Block Frames = ceil(256 * 3 / floor(256 * (50 + 85) / 100) - 1)
Block Frames = ceil(768 / floor(256 * 135 / 100) -1)
Block Frames = ceil(768 / 345 - 1)
Block Frames = ceil(1.226...)
Block Frames = 2

This means the Paladin with 50 FBR and with Holy Shield will use 2 Frames for the Block animation.

Breakpoints

+140% Faster Block Rate (155% on Paladin) is the maximum you can achieve. The tables below show the Breakpoints with achievable Faster Block Rate values.

Amazon

1-Handed Swinging Weapons (Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands):

Faster Block Rate04611152329405680120
Block Frames1716151413121110987

Other Weapons:

Faster Block Rate0133286
Block Frames5432

Assassin

Faster Block Rate0133286
Block Frames5432

Barbarian

Faster Block Rate09204286
Block Frames76543

Druid

Human form:

Faster Block Rate061320325286
Block Frames111098765

Werewolf:

Faster Block Rate0715274886
Block Frames987654

Werebear:

Faster Block Rate051016274065109
Block Frames12111098765

Necromancer

Faster Block Rate061320325286
Block Frames111098765

Paladin

Without Holy Shield:

Faster Block Rate0133286
Block Frames5432

With Holy Shield:

Faster Block Rate086
Block Frames21

Sorceress

Faster Block Rate0715274886
Block Frames987654

Summary
  • Animations are an integral part of your Character's power and survival.
  • The information accessible in-game is limited to summing up the animation improving Affixes without telling you whether you actually hit a Breakpoint.
  • With every Breakpoint, you reduce the corresponding animation by 1 Frame or 0.04 seconds.

Post by Teo1904