From e0f2d022e0f5e3bd3e9aeaed7ed5dbb33cf72634 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Mon, 8 Oct 2018 19:35:55 +0200 Subject: [PATCH] Core/Units: fixed a multiplier typo that was causing losing spell hit chance values when the victim has a lower level than the caster --- src/server/game/Entities/Unit/Unit.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 0140769b67..ef32277d2f 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2665,13 +2665,14 @@ SpellMissInfo Unit::MagicSpellHitResult(Unit* victim, SpellInfo const* spellInfo else if (levelDifference < 0) { modHitChance -= MissChanceSpell[0]; - modHitChance += 1.0f * levelDifference; + modHitChance += 1.0f * std::abs(levelDifference); } else if (levelDifference > 3) modHitChance -= MissChanceSpell[3] + lchance * (levelDifference - 3); // Normalize chance modHitChance = std::max(0.0f, modHitChance); + modHitChance = std::min(modHitChance, 100.0f); // Spellmod from SPELLMOD_RESIST_MISS_CHANCE if (Player* modOwner = GetSpellModOwner())