diff options
author | Gildor <gildor55@gmail.com> | 2020-04-18 15:21:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-18 15:21:15 +0200 |
commit | 5e15406278a8deeed422c4e0c149db066a737e15 (patch) | |
tree | 2ebe323b53ded53351c6b50fd73688670d66bd7f /src | |
parent | c0f516caee97e3fb844619dd544f7795a2b03da9 (diff) |
Core/Unit: Improve HitInfo absorb and resist flags logic in Unit::CalculateMeleeDamage (#24460)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 2c37c6e54e0..0deaf977e8f 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1378,19 +1378,19 @@ void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, Weapon // set proper HitInfo flags if ((tmpHitInfo[0] & HITINFO_FULL_ABSORB) != 0) { - // only set full absorb whenever both damages were fully absorbed - damageInfo->HitInfo |= ((tmpHitInfo[1] & HITINFO_FULL_ABSORB) != 0) ? HITINFO_FULL_ABSORB : HITINFO_PARTIAL_ABSORB; + // set partial absorb when secondary damage isn't full absorbed + damageInfo->HitInfo |= ((tmpHitInfo[1] & HITINFO_PARTIAL_ABSORB) != 0) ? HITINFO_PARTIAL_ABSORB : HITINFO_FULL_ABSORB; } else damageInfo->HitInfo |= (tmpHitInfo[0] & HITINFO_PARTIAL_ABSORB); - if (tmpHitInfo[0] == HITINFO_FULL_RESIST) + if ((tmpHitInfo[0] & HITINFO_FULL_RESIST) != 0) { - // only set full resist whenever both damages were fully resisted - damageInfo->HitInfo |= ((tmpHitInfo[1] & HITINFO_FULL_RESIST) != 0) ? HITINFO_FULL_RESIST : HITINFO_PARTIAL_RESIST; + // set partial resist when secondary damage isn't full resisted + damageInfo->HitInfo |= ((tmpHitInfo[1] & HITINFO_PARTIAL_RESIST) != 0) ? HITINFO_PARTIAL_RESIST : HITINFO_FULL_RESIST; } else - damageInfo->HitInfo |= (tmpHitInfo[0] & HITINFO_FULL_RESIST); + damageInfo->HitInfo |= (tmpHitInfo[0] & HITINFO_PARTIAL_RESIST); } void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) |