View Single Post
  #437  
Old 11-24-2024, 03:51 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,247
Default

Quote:
Originally Posted by Jimjam [You must be logged in to view images. Log in or Register.]
If anyone is interested, here is a link which produces some of Torcen’s work on eqemu regarding mitigation. Again I don’t know how well it aligns with p99, but for anyone interested in classic eq statistics / emulation / modelling they are pretty interesting reads.

https://www.eqemulator.org/forums/se...rchid=20679267
Thanks Jimjam. As I explained before, at the end of the day you have a final mitigation value that gets put into the damage roll formula, which adjusts the final outcome:

Quote:
function RollD20(offense, mitigation)
local diff, mult1, mult2;

mitigation = mitigation - (mitigation - offense) / 2;
diff = offense - mitigation;
if ( offense > 30 ) then
mult1 = offense / 200 + 25.75;
if ( mitigation / offense < 0.35 ) then
mult1 = mult1 + 1;
elseif ( mitigation / offense > 0.65 ) then
mult1 = mult1 - 1;
end
else
mult1 = 11.5 + offense / 2;
end
if ( offense > 30 ) then
mult2 = offense / 140 + 18.5;
else
mult2 = 14 + offense / 6;
end

local mean = 0;

if ( offense > mitigation ) then
mean = diff / offense * mult1;
elseif ( mitigation > offense ) then
mean = diff / mitigation * mult2;
end

local stddev = 8.8;
local theta = 2 * math.pi * math.random();
local rho = math.sqrt(-2 * math.log(1 - math.random()));
local d = mean + stddev * rho * math.cos(theta);

if ( d < -9.5 ) then
d = -9.5;
elseif ( d > 9.5 ) then
d = 9.5;
end
d = d + 11;
d = math.floor(d);
return d;
end
This may not be the precise formula used on P99, but the idea is the same. What Troxx and Jimjam call "Trivial" mobs are simply mobs that generally have a less impactful mitigation value after you account for variables like mob level and AC. To be clear, the mitigation variable is the final result of the previous function that is calling RollD20(). That previous function is doing the mitigation calculations.

The reason why I don't like categorizing mobs as "trivial" and "non-trivial" is because it obfuscates the simple fact that damage output is just a scaling formula. People might get the wrong idea and think mobs have some special property that flag them as such.

This is also why we can simplify the damage formula to something like this:

(Damage Roll * Mitigation Offset) + Damage Bonus = Damage Dealt, where Mitigation Offset is a float value from 0.0 to 1.0.

This formula uses the same concept as the formula above, it just combines all of the mitigation math into a final single float value for simplicity.

===============================

Going back to the data I gathered from my level 52 Monk https://www.project1999.com/forums/s...&postcount=430, https://www.project1999.com/forums/s...&postcount=402, https://www.project1999.com/forums/s...&postcount=113:

Quote:
IFS (Primary) Min Damage = 22
IFS (Primary) Max Damage = 171
IFS (Primary) Average Damage = (171 + 22) / 2 = 96.5

Epic Fist (Offhand) Min Damage = 1
Epic Fist (Offhand) Max Damage = 35
Epic Fist (Offhand) Average Damage = (1 + 35) / 2 = 18

207 (222 at 75% dual wield) punch swings / 297 crush swings over 552 seconds using 34% haste on a 40 delay weapon

75% chance to dual wield

------------------------

Epic Fist (Primary) Min Damage = 10
Epic Fist (Primary) Max Damage = 44
Epic Fist (Primary) Average Damage = (44 + 10) / 2 = 27

SoS (Offhand) Min Damage = 1
SoS (Offhand) Max Damage = 68
SoS (Offhand) Average Damage = (1 + 68) / 2 = 34.5

305 crush swings / 730 punch swings over 552 seconds using 34% haste on a 16 delay weapon

42% chance to dual wield
730 punches / 552 seconds = 1.32 primary swings per second, including double attacks.

305 crushes / 552 seconds = 0.55 secondary swings per second, including double attacks.

27 * 1.32 = 35.64 Average Damage at 1.0 Mitigation Offset

34.5 * 0.55 = 18.975 Average Damage at 1.0 Mitigation Offset

35.64 + 18.975 = 54.61 Average Damage at 1.0 Mitigation Offset.

297 crushes / 552 seconds = 0.54 primary swings per second, including double attacks.

222 punches / 552 seconds = 0.4 primary secondary swings per second, including double attacks.

96.5 * 0.54 = 52.11 Average Damage at 1.0 Mitigation Offset

18 * 0.4 = 7.2 Average Damage at 1.0 Mitigation Offset.

52.11 + 7.2 = 59.31 Average Damage with perfect fistweaving at 1.0 Mitigation Offset

52.1 Average Damage without fistweaving at 1.0 Mitigation Offset

In summary, you end up with the following values:

Epic + SoS using 34% haste at level 52 with double attacks does:
Epic + SoS = 54.615 DPS at 1.0 Mitigation Offset at level 52.

IFS using 34% haste at level 52 with double attacks does:
IFS = 59.31 DPS with perfect fistweaving at 1.0 Mitigation Offset at level 52.
IFS = 52.1 DPS without fistweaving at 1.0 Mitigation Offset at level 52.

This math matches our DPS data, where Epic + SoS does more damage than IFS without Fistweaving, and IFS pulls ahead with perfect fistweaving.

This 54.61 DPS from Epic + SoS vs 59.31 DPS from IFS + Fistweaving is close to the 55.7 DPS vs 56.8 DPS numbers I got from Corudoth.

===============================

Looking at my DPS data, I did 55.7 DPS using Epic + SoS to Corudoth, and 56.8 DPS with IFS. This matches quite nicely with the data above. For simplicity, I will assume Corudoth has a 1.0 Mitigation Offset. Looking at the data above and his low level, he should be close to a 1.0 Mitigation Offset, but we don't have the precise value. This means the Mitigation Offset for FM Giants against my level 52 is 30.67 / 55.7 = 0.55 Mitigation Offset compared to Corudoth roughly speaking.

We go back to our formula using the 0.55 Mitigation Offset, using the weapon damage table https://lucy.allakhazam.com/dmgbonus.html . I am also going to strip out the Damage bonus from the rolls:

Quote:
IFS (Primary) Min Damage = 22 - 18 Damage Bonus = 4
IFS (Primary) Max Damage = 171 - 18 Damage Bonus = 153
IFS (Primary) Average Damage = (153 + 4) / 2 = 78.5

Epic Fist (Offhand) Min Damage = 1
Epic Fist (Offhand) Max Damage = 35
Epic Fist (Offhand) Average Damage = (1 + 35) / 2 = 18

--------------------------

Epic Fist (Primary) Min Damage = 10 - 9 Damage Bonus = 1
Epic Fist (Primary) Max Damage = 44 - 9 Damage Bonus = 35
Epic Fist (Primary) Average Damage = (1 + 35) / 2 = 18

SoS (Offhand) Min Damage = 1
SoS (Offhand) Max Damage = 68
SoS (Offhand) Average Damage = (1 + 68) / 2 = 34.5
(78.5 Average IFS Damage * 0.55 Mitigation Offset) + 18 Damage Bonus = 61.17
(18 Average Punch Damage * 0.55 Mitigation Offset) + 0 Damage Bonus = 9.9

(18 Average Punch Damage * 0.55 Mitigation Offset) + 10 Damage Bonus = 19.9
(34.5 Average SoS Damage * 0.55 Mitigation Offset) + 0 Damage Bonus = 18.97

Epic Fist got 1.32 swings per second, and IFS got 0.54 swings per second, so Epic Fist gets 2.44 swings for every 1 IFS swing at 34% haste.

19.9 Average Epic Fist Damage * 2.44 swings = 48.556 Average Damage
(18.97 Average * 0.42 Dual Wield Chance) * 2.44 swings = 19.4 Average Damage

48.556 Average Damage + 19.4 Average Damage = 68.0 Average Damage with Epic Fist + SoS at 0.55 Mitigation Offset at level 52.

61.17 Average Damage + (9.9 Average Damage * 0.75 Dual Wield Chance) = 68.6 Average Damage with IFS at 0.55 Mitigation Offset at level 52.

68.0 Average Damage * 0.5 Hit Rate = 34 DPS
68.7 Average Damage * 0.5 Hit Rate = 34.34 DPS

This 34 DPS from Epic + SoS vs 34.34 DPS from IFS + Fistweaving is close to the 30.67 DPS vs 31.5 DPS numbers I got from the FM Giants.

===============================

Lets do the same thing above, but with a more extreme Mitigation Offset of 0.25:

(78.5 Average IFS Damage * 0.25 Mitigation Offset) + 18 Damage Bonus = 37.63
(18 Average Punch Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 4.5

(18 Average Punch Damage * 0.25 Mitigation Offset) + 10 Damage Bonus = 14.5
(34.5 Average SoS Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 8.63

Epic Fist got 1.32 swings per second, and IFS got 0.54 swings per second, so Epic Fist gets 2.44 swings for every 1 IFS swing at 34% haste.

14.5 Average Epic Fist Damage * 2.44 swings = 35.38 Average Damage
(8.63 Average * 0.42 Dual Wield Chance) * 2.44 swings = 8.84 Average Damage

35.38 Average Damage + 8.84 Average Damage = 44.2 Average Damage with Epic Fist + SoS at 0.25 Mitigation Offset at level 52.

37.63 Average Damage + (4.5 Average Damage * 0.75 Dual Wield Chance) = 41 Average Damage with IFS at 0.25 Mitigation Offset at level 52.

44.2 Average Damage * 0.5 Hit Rate = 22.1 DPS
41 Average Damage * 0.5 Hit Rate = 20.5 DPS

Epic + SoS does 22.1 DPS compared to 20.5 DPS from IFS + Fistweaving in this scenario. You can see how Damage Bonus starts to play a bigger factor as the Mitigation Offset becomes more extreme. At level 52, Epic + SoS becomes better than IFS, even after fistweaving.

===============================

Lets do the same thing above with 0.25 Mitigation Offset, using level 60 Damage Bonuses:

(78.5 Average IFS Damage * 0.25 Mitigation Offset) + 34 Damage Bonus = 53.63
(18 Average Punch Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 4.5

(18 Average Punch Damage * 0.25 Mitigation Offset) + 11 Damage Bonus = 15.5
(34.5 Average SoS Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 8.63

Epic Fist got 1.32 swings per second, and IFS got 0.54 swings per second, so Epic Fist gets 2.44 swings for every 1 IFS swing at 34% haste.

15.5 Average Epic Fist Damage * 2.44 swings = 37.82 Average Damage
(8.63 Average * 0.42 Dual Wield Chance) * 2.44 swings = 8.84 Average Damage

37.82 Average Damage + 8.84 Average Damage = 46.66 Average Damage with Epic Fist + SoS at 0.25 Mitigation Offset at level 60.

53.63 Average Damage + (4.5 Average Damage * 0.75 Dual Wield Chance) = 57 Average Damage with IFS at 0.25 Mitigation Offset at level 60.

46.66 Average Damage * 0.5 Hit Rate = 23.33 DPS
57.0 Average Damage * 0.5 Hit rate = 28.5 DPS

Epic + SoS does 23.33 DPS compared to 28.5 DPS from IFS + Fistweaving in this scenario. This shows how Damage Bonus plays a bigger role at level 60, and why people prefer using 2h weapons at level 60 when fighting mobs with an extreme Mitigation offset. However, this doesn't mean that 2h is always better than 1h at level 60. You can do the same calculations I've done above to see at which point one weapon set overtakes the other based on the Mitigation Offset. If you want to know how much Mitigation Offset a mob has compared to another, that will need to be parsed. You may be surprised at what you find when looking at some weapons. Sometimes the Mitigation Offset is not as bad as you think compared to the DPS a weapon can offer. Also, do not believe people who claim you can't math this stuff out. I just did it. This game uses math formulas for all of these calculations.
Last edited by DeathsSilkyMist; 11-24-2024 at 04:19 PM..
Reply With Quote