magey / tbc-warrior

10 stars 1 forks source link

Dodge chance when attacking mobs at level 60 is incorrect #56

Closed magey closed 3 years ago

magey commented 3 years ago

The formula for mob dodge chance in TBC should be 5% + (DefenseSkill - WeaponSkill) * 0.1%, unchanged from the vanilla/classic formula.

Dodge chance vs. +3 mob should be 5% + 15 * 0.1% = 6.5% but instead we're measuring ~6%:

Outcome Chance 95% CI Count
Miss 7.97% ±0.15% 9449
Dodge 5.93% ±0.13% 7036
Parry 14.06% ±0.20% 16676
Glance 23.81% ±0.24% 28237
Block 4.96% ±0.12% 5883
Crit 13.32% ±0.19% 15801
Hit 29.94% ±0.26% 35511

Dodge chance vs a same level mob should be 5% but instead we're measuring ~4%:

Outcome Chance 95% CI Count
Miss 23.80% ±0.37% 12017
Dodge 4.04% ±0.17% 2038
Parry 0.00% ±0.00% 0
Glance 6.07% ±0.21% 3064
Block 0.00% ±0.00% 0
Crit 18.38% ±0.34% 9281
Hit 47.72% ±0.44% 24101

See #1 for in-depth discussion and measurements.

watchyoursixx commented 3 years ago

https://github.com/magey/tbc-warrior/issues/1#issuecomment-824555356

It appears this dodge % being off is only for players, you can see in the comment for attack tables above that my pet had dodge % within the expected 6.5% against a +3 lvl target. However, in the same logs my melees were a good bit less dodges

Not sure what is causing this difference but there's clearly a difference here from what I can tell (between pets and players)

watchyoursixx commented 3 years ago

I did some more testing with pet and hunter at lvl 70. I believe magey mentioned in FC that there is some 50k~ data points that also point to this, but basically it appears that dodge vs 73 works as intended giving 6.5% dodge chance with 0 expertise (my previous test was actually with expertise so that's why player was lower dodge %)

From these logs I gathered the below data: https://classic.warcraftlogs.com/reports/Mg9zrKZhaHxWw7nT#boss=-3&difficulty=0&type=damage-done&source=1 https://classic.warcraftlogs.com/reports/nfBCvyRLVaDwXt2N#boss=-3&difficulty=0&source=1&type=damage-done https://classic.warcraftlogs.com/reports/JKkv4YHByjTC2n8a#boss=-3&difficulty=0&source=1&type=damage-done

Player - 70 vs 73, 11.26% sheet crit, no exp, no hit Result Chance 95% CI Count
Parry 14.58% 0.55% 2276
Miss 7.86% 0.42% 1226
Dodge 6.25% 0.38% 975
Glance 24.44% 0.67% 3814
Crit 6.64% 0.39% 1037
Blocked Hit 4.98% 0.34% 778
Hit 35.25% 0.75% 5501
Pet - 70 vs 73, 14.99% sheet crit, no hit Result Chance 95% CI Count
Parry 14.05% 0.50% 2610
Miss 8.07% 0.39% 1500
Dodge 6.68% 0.36% 1241
Glance 24.61% 0.62% 4572
Crit 10.08% 0.43% 1872
Blocked Hit 5.26% 0.32% 977
Hit 31.24% 0.67% 5804

Hope this helps.

magey commented 3 years ago

As can be seen here we did another round of tests, but this time 70 vs 73 (as opposed to 60 vs 63 the last time). Across 105K attacks we got:

Outcome Chance 95% CI Count
Miss 7.95% ±0.16% 8379
Dodge 6.48% ±0.15% 6826
Parry 14.12% ±0.21% 14887
Glance 24.22% ±0.26% 25528
Block 5.06% ±0.13% 5337
Crit 14.53% ±0.21% 15315
Hit 27.64% ±0.27% 29133

Which leads me to believe the dodge formula problem is specific to lower level mobs/players.

magey commented 3 years ago

And confirming that 70 vs 70 (350 vs 350) also has the correct dodge chance over 51K attacks:

Outcome Chance 95% CI Count
Miss 5.04% ±0.19% 2582
Dodge 4.96% ±0.19% 2540
Parry 5.09% ±0.19% 2604
Glance 6.01% ±0.21% 3075
Block 4.84% ±0.19% 2477
Crit 18.57% ±0.34% 9508
Hit 55.50% ±0.43% 28417
Aggrend commented 3 years ago

The combat table is different in 2.X at level 60 than it is at 70. It's unclear if this was actually intended or a quirk of how it was written, but the engineers confirmed this is correct and accurate in our reference and BCC clients. Dodge being slightly lower at 60 is Not A Bug.

Have fun in pre-patch!