Legedi,Mar 23 2006, 11:20 AM Wrote:So for my warrior I have about 15% parry and dodge, 22% block rate, and 400 def (10% miss rate of 60 mobs). So what is first calculated is if I'm hit: .85*.85*.9= 65% chance to be hit. Then I block or take full damage on the rest.[right][snapback]105250[/snapback][/right]
Nitpick correction, only for the purpose of being thorough: ;)
"So what is first calculated is if I'm hit: .85*.85*.9= 65% chance to be hit. Then I block or take ((full damage) * (% damage mitigation)) on the rest."
I'm going to really go overboard and show how this works; someone's more than welcome to try and clean this mess up, since I know I've bounced all over the place down below. ;) We'll partially use Legedi's example here, and partially use some numbers I'll pull out of my ass. Remember that this only applies to melee damage!
parry: 15%
dodge: 15%
block: 22%
shield block value: 69
strength: 330
The block formula is (Shield block value) + (Strength / 22), which gives us:
Block mitigation: 84
Chance of being critted with 400 defense by a level 60 mob: 1% (5% - ((defense -300)*.04))
Chance of a crushing blow: 0; he's 60, mob's 60
Armor mitigation: We'll assume he's at 9000 Armor; that's 62% reduction.
If the mob hits (non-crit) for 1000, he's got a 65% chance of being hit; if he does, in fact, get hit he's got a 22% chance of taking 266 (350 - 84), and a 78% chance of taking 350. So he's got a 35% chance to take 0 damage, a 7.7% chance of taking 266, and a 27.3% chance of taking 350.
But we have to figure crits in here, too. There's a 1% chance that he'll get critted. That 1% chance comes out of the HIT chance, not the miss chance; therefore he's still got a 35% chance to take 0 damage. Thus, we get the following chances:
35.00% = 000
50.19% = 350
14.16% = 266
00.51% = 700
00.14% = 532
Another way of looking at this is the way the PRNG looks at it:
/random 0-9999
0000-3499 = 000
3500-8518 = 350
8519-9934 = 266
9935-9985 = 700
9986-9999 = 532
Over 10000 swings from that opponent, he'd take an average of 217.6 points of damage, or 21.76% of that mob's potential damage output.
So, overall, what you're looking at is a complex formula, all the variables of which (save one) we are given or can derive.
Static values:
STR
AGI
Armor
DEF
block value (BV)
character level (CL)
mob level (ML)
+%tohit bonuses from talents and items (TH)
Parry (P)
Dodge (D)
Block (B)
(Although Parry, Dodge, and Block are derived values, your character screen will accurately show your current values for those stats.)
Derived values:
Mob weapon skill vs. player defense modifier ($s): ((ML*5)-(CL*5))
- All mobs have a weapon skill of (ML * 5). If you were calclulating against another player, you'd substitite (Opponent's weapon skill) for (ML * 5) in all formulas calling for ML with the exception of the crushing blow calculations, which do not apply, and for Physical Mitigation, in which case "ML" = "opponent level".
Chance to receive a crit ($c): (.05 - ((DEF - ((ML*5)+$s)) * .04))
- this number cannot be zero; however, it can be below .001. Nobody's managed to stumble on the exact cutoff yet; I would guess that no matter what, there's one chance in 1000 you'll get hit with a critical, even if the calculation equals zero.
Modifier to crushing blow chance ($cm): if (DEF < (CL*5)) , (((CL * 5) - DEF) * 0.02) , else 0
- in other words, if your defense is below 300 at level 60, or 295 at 59, etc., you suffer a 2% penalty -- reflected in an increased chance of getting crushed -- per point of defense below your maximum unbuffed defense.
Chance for a crushing blow ($cb): if ML !> CL, 0, else (((ML-CL)*.05)+$cm)
Chance to be missed ($m): ((.04 - ((DEF - ((ML*5)+$s)) * .04)) + P + D - TH)
- unconfirmed cap at 60%, so assume that if $m > .6, $m = .6. $m MUST be at least .01. Also note: this means that "+tohit" items are actually "-tomiss" items.
Chance to be hit: we'll get to that in a moment.
Blocked damage ($j): ((BV) + (STR / 22))
Physical mitigation ($i): ((Armor / (Armor + 400 + 85 * ML)) * 100)
- Your level is irrelevant. This number cannot exceed 75%.
Base damage: This is the one variable we're in the dark about, as all mobs are different, but for a given mob base damage should be considered as consistent (or, at least, a consistent range). For the purposes of our chart below, "Damage" is merely going to be whatever number you think is appropriate given the mob; what you want to know is "how much am I truly mitigating over being naked?" The values given for damage below inherently assume (Base damage * (100-$i)).
What's all this mean?
So what you get is a table split into 7 rows, just like the chart with five rows I demonstrated in two different formats way up above. Why only five up above, but seven down here? There's two additional possible outcomes which were not possible in Legedi's original example, as a level 60 mob cannot land a crushing blow on a level 60 player (and players CANNOT land crushing blows, period). Some of the values (rows 1, 2, and 7) we directly derived above; the other four are further derived from those values plus the Block Value (which we know as a static number based on the shield and/or bonuses).
1. chance to take no damage ($m)
2. change to receive a crit ($c)
3. chance to receive a crit, but block ($v): = ($c * (100-B))
4. chance to receive a crushing blow ($cb)
5. chance to receive a crushing blow, but block ($x): = ($cb * (100-B)
6. chance to be hit, but block ($y): = ((100-($m + $c + $v + $cb + $x))
7. chance to be hit normally: = (100-$y)
Note that "chance to be hit normally" basically boils down to "whatever's left over."
The result of each row of that table is a damage calculation, as follows (where D = base damage - $i):
1: D*0
2: D*2
3: (D*2)-BV
4: D*4
5: (D*4)-BV
6: D-BV
7: D
Clear as mud? ;)
EDIT, 3/29: fixed the crushing blow conditional error GG pointed out.
Darian Redwin - just some dude now