Unless stated otherwise, everything here is Diablo II: Resurrected build 3.3.93847, Reign of the Warlock.
Unless stated otherwise, everything here is Diablo II: Resurrected build 3.3.93847, Reign of the Warlock.

A weapon hit is one number built in a fixed order, and the order is why "+% Enhanced Damage" on the weapon is worth several times the same number on a ring. The DPS Simulator runs exactly this chain; this page is the chain written out, with Crushing Blow and Open Wounds, which are not part of it, beside it.
The Amazon Basin's attacker list, as the game applies it:
hit = ⌊base × (1 + weapon ED) + flat⌋ × (1 + stat bonus + off-weapon ED + vs-type) × (2 if critical) × skill %
Deadly Strike, Critical Strike and the weapon masteries' critical all double the physical part; the game checks them one after the other and the first success ends it, so the chance of a double hit with two sources is 1 − (1 − DS)(1 − CS). The Basin lists what Deadly Strike does not double: elemental damage, Crushing Blow, and the damage of Impale, Dragon Talon, Dragon Tail, Dragon Flight, Sacrifice and Smite. See Deadly Strike.
Crushing Blow is not a damage bonus: it removes a fraction of the target's current life before the hit's own damage is applied — 1/4 from a melee hit, 1/8 from a ranged one, half that against bosses and champions, 1/10 and 1/20 against players and mercenaries — divided by the players setting in the game and reduced by the target's physical resistance. Open Wounds is a bleed: for 8 seconds after the hit the target loses life every frame on your level's bracket (the Basin's table), no resistance applies, monster regeneration stops, and a second hit only restarts the clock. Both need the attack to hit (Chance to Hit), both ignore Deadly Strike, and neither is absorbed by Energy Shield.
The target's physical resistance (Physical Damage Reduction on a player, the monster's ResDm) takes its percentage, Amplify Damage and Decrepify lower it, and a physical immune takes nothing until the immunity is broken. Against a player the whole chain's result is multiplied by 17% first (Player versus Player).
Written from the game's tables (build 3.3.93847) and the cited pages; a per-level table is computed from skills.txt and skilldesc.txt by the same evaluator the skill pages use. A “legacy rule” is a published engine rule no table proves; a “game table” is read from the table named. · Report incorrect data