View Issue Details

IDProjectCategoryView StatusLast Update
0015894Legion CoreClasses - Monk - Монахpublic2021-09-25 03:16
ReporterEzoteriuszAssigned ToGhost 
PriorityurgentSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWindowsOS10OS Versionx64
Summary0015894: Gift of the ox - incorrect proc formula
DescriptionOrbs proc is totally random even though it should not be.
Gift of the Ox should ALWAYS spawn an orb when you take 100% of your health as damage.
Video proof : 591k is my base health. I took over 885k dmg. That's more than 149% of baseline health and there is no orb proc. https://youtu.be/gKFnQ_PNoP0
Steps To ReproduceRemove your items and aggro a random mob, choose *Healing Elixir* in your talent tree so that you can gain 30% of your missing health thus proving that you took more than 100% of your base health pool and no orbs spawned.
Additional InformationFrom Wowhead: :
Q: Is the Brewmaster Gift of the Ox proc chance based on the amount of damage the player takes? It appears so given the "inconsistency" of the proc.
A: It's no longer a random chance, under the hood. When you are hit, it increments a counter by (DamageTakenBeforeAbsorbsOrStagger / MaxHealth). It now drops an orb whenever that reaches 1.0, and decrements it by 1.0. The tooltip still says ‘chance’, to keep it understandable.
https://www.wowhead.com/spell=124502/gift-of-the-ox#comments

Activities

Ghost

2021-08-11 18:36

developer   ~0047519

Implementation uses a cumulative chance of triggering.
For example, our formula
2 - (HealthBeforeDamage - DamageTakenBeforeAbsorbsOrStagger) / MaxHealth

where
HealthBeforeDamage - health before taking damage
DamageTakenBeforeAbsorbsOrStagger-the damage received before taking into account the weakening of the unit receiving damage (the monk himself), and this is a reduction in damage from absorption auras, for example, staggering, that
is, you actually received 5 million damage, but in fact the net was 30 million

Initially, this chance is 0

each attack that comes to the monk has damage and all the parameters are calculated like this, for example, let's say I have a full stock of 10 million hp, the current health before the strike is 1 millon
the damage that I receive in the "pure view" is 30 million

as a result, the chance of accumulation will be as
follows 0 + (2 - ((1000000 - 30000000) / 10000000 ) = 4.9%
the current cumulative chance after one poke of 4 million became 4.9%
and it turns out that you need to score 100% of the cumulative chance, then the counter will be reset and two spheres will fall out

Ezoteriusz

2021-08-11 20:06

reporter   ~0047520

I am sorry but I still do not fully understand your point of view. Orbs proc is much lower than it should be. As I understand it: If you have 1000 HP then you should spawn 1 Sphere after taking 1000 damage (without mitigation). It does not happen on this server as seen in my video. Neither do I understand why your formula includes 2 orbs.

The currect formula that you use is connected with Gift of the Mists (talent) which multiplies that counter increment by (2 - (HealthBeforeDamage - DamageTakenBeforeAbsorbsOrStagger) / MaxHealth); ie, a simple linear 0-100% increase based on missing health, counting the hit as a full hit BUT it should NOT be associated with https://www.wowhead.com/spell=124502/gift-of-the-ox

Ezoteriusz

2021-08-11 23:31

reporter   ~0047523

Further notes to add:
In the first picture I took over 1,10b DMG
It generated 55 healing spheres from https://www.wowhead.com/spell=124502/gift-of-the-ox#changelog

Logs from retail:
They took 1,37b DMG - https://www.warcraftlogs.com/reports/4HRdADnPkzYpmtx3#fight=53&type=damage-taken
It generated 232 healing spheres - https://www.warcraftlogs.com/reports/4HRdADnPkzYpmtx3#fight=53&type=healing&source=19

Ghost

2021-08-12 19:13

developer   ~0047550

so what should the formula be?
I threw the formula without taking into account the talent Gift of the Mists if anything

and yes, I said about two spheres that a couple of spheres fall out for ONE operation, do not pay attention to this, just accept the word "operation"as a fact

Ezoteriusz

2021-08-12 21:51

reporter   ~0047555

As I said, Gift of the Ox should proc when I take 100% of health as damage. My video proves that no orbs spawned, something is wrong with it.

Ezoteriusz

2021-08-13 01:43

reporter   ~0047556

My proposition would be:
DamageTakenBeforeAbsorbsOrStagger/MaxHealth (A counter that goes up per hit. Once it reaches max health, it spawns an orb)
Example:
Max health = 2,000,000
Damage taken = 750,000
How many hits it would take to produce a Gift of the Ox orb = 2.67

Ghost

2021-08-23 18:43

developer   ~0047799

So what should the formula be? I have not understood you yet

Ezoteriusz

2021-08-23 21:27

reporter   ~0047806

DamageTakenBeforeAbsorbsOrStagger/MaxHealth

Instead of your:
2 - (HealthBeforeDamage - DamageTakenBeforeAbsorbsOrStagger) / MaxHealth

Ezoteriusz

2021-09-01 12:22

reporter   ~0048013

Any news concerning this problem? Brewmaster monk is very unreliable (in terms of self healing and surviving in general) at this moment cause of this.
I provided everything that was needed for it to be "confirmed"
Thanks in advance.

Ghost

2021-09-02 06:46

developer   ~0048017

I made adjustments for the implementation, test it after the updates

p. s
the status is "considered" if anything is higher than "confirmed"

Ezoteriusz

2021-09-05 22:55

reporter   ~0048155

After recent *hotfix* https://www.wowhead.com/spell=124502/gift-of-the-ox#changelog no longer works. It doesn't spawn at all.

Ghost

2021-09-06 03:08

developer   ~0048158

now imagine that I have entered your formula and think about it, there is clearly something wrong in it... think at your leisure, how much you made a mistake
this formula is wrong, in vain you proposed
it if you do not understand, I will tell you what is the peculiarity of the accumulation of the old version and the one you proposed...

Ezoteriusz

2021-09-06 11:42

reporter   ~0048168

Here's the blue post from a Blizzard's game designer:

Blue post.jpg (71,447 bytes)
Blue post.jpg (71,447 bytes)

Ezoteriusz

2021-09-06 11:53

reporter   ~0048169

Perhaps you didn't include the counter increment by 1 and then decrement by -1 in your code?

Ghost

2021-09-06 16:40

developer   ~0048185

No, not at all, your DamageTakenBeforeAbsorbsOrStagger / MaxHealth relation iswrong. For example, you were hit by a mob with such damage, which for example is greater than your maximum hp, because 2500000/2000000 = 1.25%
chance to increase will become 1.25% - this is stupid already, no, it turns out that to score a 100% chance you need to get 80 hits of 2.5 million

if we counted as before
2 - (HealthBeforeDamage - DamageTakenBeforeAbsorbsOrStagger) / MaxHealth
where the current hp is for example full, equal to the maximum
2 - (2000000 - 2500000) / 2000000 = 2.25%
it would turn out to be 2.25% and in order for the spheres to be punctured, you need to get 45 blows
from here the conclusion is that your formula is incorrect

I specifically inserted your formula, so that you and other players who contact me understand how the principle of accumulating a chance works

Ezoteriusz

2021-09-06 17:24

reporter   ~0048191

You totally misinterpreted the whole thing. It's not percentage. In the formula that I proposed it would be 2500000/2000000=1.25, then you decrement it by 1.0. Thus you get 1 proc of orbs and 0,25 adds to the next counter

Ghost

2021-09-06 17:28

developer   ~0048193

it is not reduced anywhere by 1.0, a simple bare ratio
of damage to the maximum hp

Ezoteriusz

2021-09-06 17:42

reporter   ~0048194

Can you add it to the code? I don't have insight into your coding. All I am asking you is to make sure that gift of the ox spawns when you take 100% of your max health. That's how it was on retail

Ghost

2021-09-06 17:56

developer   ~0048196

Last edited: 2021-09-06 17:57

View 2 revisions

what should I add to the code?
because before the fix, it was like this:
chance + = (2 - ((health - damage) / maxhealth)) * Talent Mod;

and now
chance += damage / maxhealth () * Talent Mod;

Ezoteriusz

2021-09-06 18:17

reporter   ~0048197

If I may ask what's the value of chance and talent mod?

Ezoteriusz

2021-09-06 18:35

reporter   ~0048198

I am not an expert in coding, so I am not certain how it should look like. All that I know is it should spawn orbs when you take 100% of your max health as damage. So as you said, if max health is 2mln health and you take 2mln hit in damage it should spawn 2 orbs, so on so on...

Ghost

2021-09-06 18:55

developer   ~0048199

value of the talentmod can add a chance for another max value x1.75

Ezoteriusz

2021-09-06 19:02

reporter   ~0048200

I found an old spreadsheet. Check it out, maybe it could help us to make a correct script.
https://docs.google.com/spreadsheets/d/1mzqGGwSESijTWODoMi3n6R0z-sMGuIP8h2kqCjxC7e8/edit#gid=1569676755

Ghost

2021-09-06 20:25

developer   ~0048201

Last edited: 2021-09-06 20:26

View 2 revisions

this table does not report anything useful(
I'm returning the implementation to the old version

Ezoteriusz

2021-09-06 20:40

reporter   ~0048202

It's the proof that you should spawn an orb after you take 100% max health damage -_-
This formula 2 - (HealthBeforeDamage - DamageTakenBeforeAbsorbsOrStagger) / MaxHealth doesnt do that.
Can't you make another one? So that it works blizzlike?

Ghost

2021-09-06 20:52

developer   ~0048203

I ask banal questions, what is the cumulative chance if I get damage in the amount of
1%
5%
20%
25%
50%
75%
99% of the maximum health reserve?
The damage is counted as a chance from each received hit separately if anything

Damn, it's banal, you can't even figure it out yourself, and you also push some bad formula to me, then you whine about it...
How the hell do I understand you?

Ezoteriusz

2021-09-06 21:23

reporter   ~0048204

Seems like we won't come to an agreement.
Do me one favour if possible, check this thing: Their formula hasn't changed since the legion, so it should be applicable.
https://www.askmrrobot.com/wow/theory/mechanic/spell/giftoftheox?spec=MonkBrewmaster&&version=live
Could you apply it on test server-only, so I can test how it works?

Ghost

2021-09-07 03:08

developer   ~0048207

made adjustments for the implementation, test it after the updates, keeping track of the list of updates

Ezoteriusz

2021-09-09 22:13

reporter   ~0048271

Even though the hotfix isn't updated in your hotfix tracker it seems that the adjustments have already been applied to live servers.
First of all, thanks. It works so much better than it used to.
However there's 1 more thing that's quite uncertain for me. When you calculate gift of the ox chance, it should not take into account stagger or post mitigation (armour, absorb etc), correct?
-In the 1st video I have around 35% armour, so technically it should only take 65% of health to spawn an orb but currently it spawns it after I take full 100% health (Around 6mln mark). https://www.youtube.com/watch?v=sxGut8Tw_SU

-In the 2nd video I have the same % of armour + I used Prydaz, which has around 1,64 mln absorb. It spawned an orb around 8mln mark. So it seems that at this moment the code/formula takes into account the absorb itself (counts it as max health) even though it should not. https://www.youtube.com/watch?v=gP-omvUFmI8

Can you give me your insight please? Thanks in advance

Ghost

2021-09-10 03:16

developer   ~0048276

in the proc, damage is counted up to its weakening effects (not counting your defensive effects), right

Ezoteriusz

2021-09-10 08:02

reporter   ~0048277

I am sorry but I am having trouble understanding what do you mean. You're saying that damage reduction (armor, absorbs) and stagger is currently counted in formula?
According to my research absorb and armor reductions should be BLACKLISTED from proc chance.
So like in my video:
If I have 6,59 mln health, 35% armor an orb should spawn at 2,3 mln mark-65% of health. That's for physical attacks-only of course. With magic damage I'd need to take whole 100% to spawn it.
Quote:
blizzard dev (talking about damage required for gift of the ox spawn)
Q: - Is the damage calculated pre-mitigation/absorb, or is it basically "amount of health lost"? (e.g., if you had a -50% damage taken effect, and a 50k absorb shield, then took a 200k hit, what would be the final value of Damage?)

A: Damage is the full damage of the hit, before absorbs, before Stagger. HealthPercentAfterDamage is with stagger taken into account, but not other absorbs. Mitigation does reduce Damage. In your example, Damage would be 100k.

Ghost

2021-09-10 14:54

developer   ~0048287

simply put, here you get damage in the amount of 5 million, taking into account all the protective effects, but the "pure" damage is much more and it amounted to, say, 8-9 million (that is, we count this damage specifically in the proc), okay?

Ezoteriusz

2021-09-10 15:18

reporter   ~0048290

Hmm alright I see, so DR effects such as armor/vers is counted. What about 2nd video with prydaz? Shouldn't it spawn an orb at the same time as in 1st video instead of at 8mln mark? I took around 6mln dmg + 1,64 prydaz absorb, then it spawned an orb.
So it looks like currently absorbs are counted as a max hp

Ghost

2021-09-10 16:08

developer   ~0048295

I don't know, it's impossible to say directly that absorbs are not taken into account and it's impossible to say exactly how many sources of damage you had, because the staggering itself implements a reduction in damage by absorption, if anything, it would specifically reduce the real chances of dropping the sphere if they were not taken into account
in the implementation, I ran it in debug mode and accumulation of chance is not always directly dependent on the damage, there's still and health indicators (in percent) depends on the bonus talent (if any), for example if you had absorption, the rate of CPS upon receipt of the damage can be more, depending on what the damage will be
the fact is that removing all mods and receiving "clean" the damage as soon as the amount of damage is equal to the value of health - here is the strike was generated trigger

Ezoteriusz

2021-09-10 17:47

reporter   ~0048298

Quote: "because the staggering itself implements a reduction in damage by absorption, if anything, it would specifically reduce the real chances of dropping the sphere if they were not taken into account"
Why would it reduce the chance of dropping? Stagger itself delays 40% of dmg, so we take 60% of base dmg and then we get 40% by dots dmg. In gift of the ox case, it should calculate it pre-stagger, so 100%, before dots are taken into effect. Example: Melee hit me for 408,388 physical dmg (60%) and then I took 13,612 dmg dot x 20 (272,240-40%, right?). So we have 680,628‬ in overall - 100% - this number should be used in damage taken formula, before dots start, not after.
Do I understand it correctly?

Ghost

2021-09-10 19:19

developer   ~0048301

because you think that the damage is still taken from us without ignoring the protective modifiers, so I'm giving a simple example
, I won't comment on anything here anymore, because my writing in English can sometimes mislead you

Ezoteriusz

2021-09-11 10:42

reporter   ~0048308

Well yes, sometimes it's hard to understand but I do appreciate your effort! In the future, feel free to answer back in russian, it would make things easier for ya.
Anyways, proc chance is much better now than it used to be before, so thanks for fixing that ^^.
I'll continue my tests, perhaps I'll will be able to find what messes up the prydaz/absorb thingy and report it.

Issue History

Date Modified Username Field Change
2021-08-11 03:50 Ezoteriusz New Issue
2021-08-11 03:50 Ezoteriusz Status new => assigned
2021-08-11 03:50 Ezoteriusz Assigned To => Shadowraze
2021-08-11 18:36 Ghost Note Added: 0047519
2021-08-11 20:06 Ezoteriusz Note Added: 0047520
2021-08-11 23:31 Ezoteriusz File Added: WoWScrnShot_081121_231553.jpg
2021-08-11 23:31 Ezoteriusz File Added: WoWScrnShot_081121_231603 (2).jpg
2021-08-11 23:31 Ezoteriusz Note Added: 0047523
2021-08-12 19:13 Ghost Note Added: 0047550
2021-08-12 21:51 Ezoteriusz Note Added: 0047555
2021-08-13 01:43 Ezoteriusz Note Added: 0047556
2021-08-15 12:11 Shadowraze Assigned To Shadowraze => Ghost
2021-08-15 12:11 Shadowraze Status assigned => acknowledged
2021-08-23 18:43 Ghost Note Added: 0047799
2021-08-23 21:27 Ezoteriusz Note Added: 0047806
2021-09-01 12:22 Ezoteriusz Note Added: 0048013
2021-09-02 06:46 Ghost Note Added: 0048017
2021-09-05 22:55 Ezoteriusz Note Added: 0048155
2021-09-06 03:08 Ghost Note Added: 0048158
2021-09-06 11:42 Ezoteriusz File Added: Blue post.jpg
2021-09-06 11:42 Ezoteriusz Note Added: 0048168
2021-09-06 11:53 Ezoteriusz Note Added: 0048169
2021-09-06 16:40 Ghost Note Added: 0048185
2021-09-06 17:24 Ezoteriusz Note Added: 0048191
2021-09-06 17:28 Ghost Note Added: 0048193
2021-09-06 17:42 Ezoteriusz Note Added: 0048194
2021-09-06 17:56 Ghost Note Added: 0048196
2021-09-06 17:57 Ghost Note Edited: 0048196 View Revisions
2021-09-06 18:17 Ezoteriusz Note Added: 0048197
2021-09-06 18:35 Ezoteriusz Note Added: 0048198
2021-09-06 18:55 Ghost Note Added: 0048199
2021-09-06 19:02 Ezoteriusz Note Added: 0048200
2021-09-06 20:25 Ghost Note Added: 0048201
2021-09-06 20:26 Ghost Note Edited: 0048201 View Revisions
2021-09-06 20:40 Ezoteriusz Note Added: 0048202
2021-09-06 20:52 Ghost Note Added: 0048203
2021-09-06 21:23 Ezoteriusz Note Added: 0048204
2021-09-07 03:08 Ghost Note Added: 0048207
2021-09-09 22:13 Ezoteriusz Note Added: 0048271
2021-09-10 03:16 Ghost Note Added: 0048276
2021-09-10 08:02 Ezoteriusz Note Added: 0048277
2021-09-10 14:54 Ghost Note Added: 0048287
2021-09-10 15:18 Ezoteriusz File Added: Screenshot_20210910-151656_Chrome.jpg
2021-09-10 15:18 Ezoteriusz Note Added: 0048290
2021-09-10 16:08 Ghost Note Added: 0048295
2021-09-10 17:47 Ezoteriusz Note Added: 0048298
2021-09-10 19:19 Ghost Note Added: 0048301
2021-09-11 10:42 Ezoteriusz Note Added: 0048308
2021-09-25 03:16 Ghost Status acknowledged => resolved
2021-09-25 03:16 Ghost Resolution open => fixed