Atlantiss / NetherwingBugtracker

Official bugtracker for the Netherwing and Karazhan (2.4.3) realms.
52 stars 36 forks source link

[Core][Rage] Rage should be truncated to a non-zero integer #7203

Open Easyfraggy opened 4 years ago

Easyfraggy commented 4 years ago

Description:

Current behaviour:

Rage is added as a float. So if you gain 0,55 rage, 0,58 and 0,62 rage from 3 hits you still only gain 1 rage untill you gain the remaining 0,25 rage to reach 2.

Expected behaviour:

Rage should be truncated to the closest non-zero integer. In the example above that would give you 1 whole rage per hit resulting in 3 rage. This is pretty important for both druid tanks and warriors in general.

image

Server Revision:

Zarant commented 4 years ago

Retail wow (all the way from vanilla wow to current) always used stochastic rounding for pretty much everything, meaning you have a random chance of rounding up or down that is proportional to the residual. I thought about doing a full write up about it but it's such a minor issue that I never bothered to do it.

Easyfraggy commented 4 years ago

It actually isn't minor in this case, for most mobs while leveling their dmg output is less than 1 rage worth, so with it always being atleast 1 rage this makes a huge difference for warriors when leveling and both druids and warriors when tanking mobs that don't hit for large amounts of damage. While at large numbers it makes very little difference indeed.

https://streamable.com/8pvchc

If you check the video it is from classic wow (thanks Elyne) above you can see very clearly that he gets 1 whole rage each time he gets hit, but 2 damage at level 2 (which he is) is only 0,48 rage:

c = 0,0091107836(2^2)+3,2255981332+4,2652911 = 10,75 for a level 2

fill in image

(5/2)*(2/10,75) = 0,46

So this means instead of getting 10 rage from 10 hits on NW that would result in 4 rage.

Another test at level 3 where the warrior is taking 7 and 8 damage repeatedly resulted in seemingly random amounts of 1 rage and 2 rage. So average 1,5 rage per hit. c @ lvl 3 = 14,02 resulting in a rage value of 7dmg = 1,25 8dmg = 1,43

Thus the video proves that it is a stochastic rounding - aka it is random wether its 1 rage or 2 rage you gain from the hit. As you can see him sometimes gaining 1 rage and sometimes 2 rage from each hit.

To sum up, rage should be rounded up or down randomly, but always atleast 1 rage per attack. The 1 rage minimum is the biggest factor in this issue as it makes a big difference for every warrior who is leveling or druid/warrior who is tanking

Godmatik commented 1 month ago

Rev 4022

Tested and confirmed still an issue