How every skill's damage is worked out, step by step, with the formulas and interactions found in the game's code.
Each box is one step of the calculation, in the order the game does it. Click a box for the details: what it means, the exact rule, what feeds it and where it lives in the code. Colors show the stage:
Read top to bottom. Arrows run within a row; steps side by side in a row happen at the same point. Click a step to light up what feeds into it and what comes next.
Click a step to see what it does and which skills pass through it.
Uses the same formulas as the reference (resist, pierce, the half-strength rule for negative resist and immune monsters, the −100 floor, crit then deadly strike, crushing blow on current life, leech). Values are averages; the game rolls each hit.
Addresses are virtual addresses in the shipped DLLs: D2Game.dll at 0x6FC20000, D2Common.dll at 0x6FD50000, D2Client.dll at 0x6FAB0000, ProjectDiablo.dll (PD) at 0x10000000. VERIFIED = the real code ran natively in a 32-bit harness that loads the DLL images, and matched on random inputs (plus mutation tests that must fail); READ = read from the disassembly; DATA = PD2's .txt tables.