aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2019-02-23 18:34:31 +0100
committerShauren <shauren.trinity@gmail.com>2021-11-23 23:34:27 +0100
commitabb36a1e5bbbebb7197d859cbd9c2dbf71665152 (patch)
tree03ec8689e08f16cdc38bb7712788df871971700d /src
parent35074d0b42d40da4b277ec47a9b1b884eef04182 (diff)
Core/Spells: Add range checks to GameObject targets
Close #23062 Patch by robinsch (cherry picked from commit 76cc94f325ab68f66a4fa7b5d30316508e27c0ce)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 6158e123e19..a3133b25daa 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -6512,6 +6512,15 @@ SpellCastResult Spell::CheckRange(bool strict) const
return SPELL_FAILED_UNIT_NOT_INFRONT;
}
+ if (GameObject* goTarget = m_targets.GetGOTarget())
+ {
+ if (m_caster->GetExactDistSq(goTarget) > maxRange)
+ return SPELL_FAILED_OUT_OF_RANGE;
+
+ if (minRange > 0.0f && m_caster->GetExactDistSq(goTarget) < minRange)
+ return SPELL_FAILED_OUT_OF_RANGE;
+ }
+
if (m_targets.HasDst() && !m_targets.HasTraj())
{
if (m_caster->GetExactDistSq(m_targets.GetDstPos()) > maxRange)