From ab6bd1e71fb31fa9d3035d656d83e697649104b6 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 8 Aug 2021 14:47:17 -0400 Subject: [PATCH] Core/Units: Fixed crash in Unit::CalcArmorReducedDamage when called from periodic aura tick if caster is no longer in world Port From (https://github.com/TrinityCore/TrinityCore/commit/9067eb22ced9fdceb36f344b63af0edae1f4142a) --- Source/Game/Entities/Unit/Unit.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index 634c3ce51..b891ed832 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -3797,11 +3797,15 @@ namespace Game.Entities if (MathFunctions.fuzzyLe(armor, 0.0f)) return damage; + Class attackerClass = Class.Warrior; if (attacker != null) + { attackerLevel = attacker.GetLevelForTarget(victim); + attackerClass = attacker.GetClass(); + } // Expansion and ContentTuningID necessary? Does Player get a ContentTuningID too ? - float armorConstant = Global.DB2Mgr.EvaluateExpectedStat(ExpectedStatType.ArmorConstant, attackerLevel, -2, 0, attacker.GetClass()); + float armorConstant = Global.DB2Mgr.EvaluateExpectedStat(ExpectedStatType.ArmorConstant, attackerLevel, -2, 0, attackerClass); if ((armor + armorConstant) == 0) return damage;