gamefreedomgit / Frostmourne

3 stars 1 forks source link

[PALADIN] Hand of Sacrifice / Divine Sacrifice #1369

Closed haephaistoss closed 1 week ago

haephaistoss commented 1 month ago

Description: both effects work in a similar manner, so I'll post them together. Issue is, if the target that has sacrifice buff from the paladin, has also an absorb effect at the moment of taking dmg, sacrifice transfers no dmg, thus breaking no cc that breaks on taking dmg.

Also currently if the TRANSFERED dmg gets absorbed on the caster Paladin, CC-s don't break.

image

Also the 100% caster HP threshold isn't present currently.

How to reproduce: deal dmg to a target that has absorb on them while also having a sacrifice effect. Deal dmg to a target while the caster paladin has an absorb on them.

How it should work: Sacrifice effects should transfer '0' dmg to the paladin if the dmg was absorbed fully, thus breaking CC-s that break on dmg.

Also if the transfered dmg has been fully absorbed, cc that should break on dmg should still break - since dmg has been taken

Breaking of CC should happen on taking dmg, regardless of the source of the original dmg (before transfer) -> hellfire, seal of blood / martyr, etc.

Warlock -> soul link to pet -> sacrifice onto pet ->dmg to paladin via dmg to warlock through soul link - should also work - this is important in PvP as high lvl priests, shamans etc dispel sacrifice, but from an invisible succubus they can't - unless they use mass dispel, which can be evaded with good positioning of the pet.

Hand of Sacrifice should only transfer DMG equal to 100% of caster max HP, at which point the aura should be canceled.

Database links: https://www.wowhead.com/wotlk/spell=6940/hand-of-sacrifice https://www.wowhead.com/wotlk/spell=64205/divine-sacrifice

Video:

https://www.warcraftmovies.com/movieview.php?id=115963

~ 16:30 - in floating combat text, 0 dmg can be seen, yet the Repentance breaks upon taking the 0 dmg.

Possible fix is setting CC-s that break on dmg to break if dmg >= 0.

alemae96 commented 1 month ago

It's a bit confusing tbh. You say that 0 dmg should be transferred if it was absorbed, but in your next sentence you say that if the dmg was fully absorbed, then cc should break bc dmg was taken. If it was fully absorbed, no dmg would be taken, meaning cc should not break. Also in the video, I don't see anyone with Repentance, and yours has no CD on it on your bars. Also at the same time that you mention for the video, there was a mass dispell that can be seen on the ground. So makes me believe it was dispelled and not broken. But you have no meters to show and video quality is rough, so hard to see fully

haephaistoss commented 1 month ago

You're totally mixing it up... 16:34, you see 0 dmg multiple times in floating combat text.

On Blizz's part, if the dmg was fully absorbed - so no actual dmg was taken, sacs transferred 0 dmg - which is still DMG, that is equal to 0, and CC-s that break on dmg, break if you take dmg, but that dmg doesn't have to be greater than 0. It simply happens, that most of the time hits deal more than 0 dmg.

image

image

image

THe guy making the recording gets repentanced, sacs his teammate eforehand, and gets broken out by 0 dmg multiple times being taken.

It can be quite clearly seen in the video, he takes 0 dmg 3 times, the first one before repentance, and the 2nd, and 3rd after repentance, these ones breaking it.

He even gives you subtitles to understand what's going on.

Rogue gets PW:S, Sac, Paladin gets Rep, rogue gets dmg that is absorbed by PW:S, and Sac transfers 0 dmg multiple times breaking the enemy rep.

CCs that break on dmg should break even if the dmg that breaks them gets fully absorbed, same with fear effects that use base hp % to determine the threshold at which they are required to break. Absorb doesn't, and shouldn't matter in these contexts, for fairly obvious reasons.

yeagerca commented 1 month ago

On Frostmourne, when a spell is fully absorbed, such as during Divine Shield, it is entered into the combat log as SPELL_MISSED. As far as I know, this is intended behavior.

I made a WeakAura to calculate the total damage transferred by Hand of Sacrifice, I'll put the export here in case anyone wants to reuse the code to test this bug.

On a separate note, it seems like Hand of Sacrifice does not have a maximum amount of damage transferred unlike what the tool tip states. You can transfer much more than your maximum health over the duration by healing or absorbing damage (and/or dying). WA Hand of Sacrifice Damage Transferred.txt

haephaistoss commented 1 month ago

Absorb and immune, and miss, and fully resisted are completely different as far as I know.

See with absorb, DMG is registered, amd calculated, with the others, calculation doesn't happen, nor does crit roll etc. They don't even register as hits.

Thanks for the info, I was gonna test that next, but you were faster 🫡

Updated the main post with the information!

Piootrek commented 2 weeks ago

Fixed

haephaistoss commented 2 weeks ago

yaaaaay <3