aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGildor <gildor55@gmail.com>2020-04-18 15:21:15 +0200
committerGitHub <noreply@github.com>2020-04-18 15:21:15 +0200
commit5e15406278a8deeed422c4e0c149db066a737e15 (patch)
tree2ebe323b53ded53351c6b50fd73688670d66bd7f /src
parentc0f516caee97e3fb844619dd544f7795a2b03da9 (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.cpp12
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)