aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-08-08 13:03:57 +0200
committerShauren <shauren.trinity@gmail.com>2021-08-08 13:03:57 +0200
commit9067eb22ced9fdceb36f344b63af0edae1f4142a (patch)
tree017b2fef96b8b22a21b874e17128c7db8ce1678b /src
parent6c005fadfaae4f6f0ed7a2285fadf55aecfcda75 (diff)
Core/Units: Fixed crash in Unit::CalcArmorReducedDamage when called from periodic aura tick if caster is no longer in world
Closes #26776
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index ac699cd5725..e015c6ca4a0 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -1634,11 +1634,15 @@ void Unit::HandleEmoteCommand(uint32 anim_id, Trinity::IteratorPair<int32 const*
if (G3D::fuzzyLe(armor, 0.0f))
return damage;
+ Classes attackerClass = CLASS_WARRIOR;
if (attacker)
+ {
attackerLevel = attacker->GetLevelForTarget(victim);
+ attackerClass = Classes(attacker->getClass());
+ }
// Expansion and ContentTuningID necessary? Does Player get a ContentTuningID too ?
- float armorConstant = sDB2Manager.EvaluateExpectedStat(ExpectedStatType::ArmorConstant, attackerLevel, -2, 0, Classes(attacker->getClass()));
+ float armorConstant = sDB2Manager.EvaluateExpectedStat(ExpectedStatType::ArmorConstant, attackerLevel, -2, 0, attackerClass);
if (!(armor + armorConstant))
return damage;