aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-05-27 01:40:14 -0300
committerariel- <ariel-@users.noreply.github.com>2017-05-27 01:40:14 -0300
commit2f19d97d210c70eade4fb87c1d86642d77bbcd69 (patch)
treef1944592bcf04f67e9e626d80770f901547dedf4 /src
parentd9a1c82ab44254c280083e6297b8aec6350ab363 (diff)
Core/Spell: abort channeling if no valid targets are found after searching
Closes #17624
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index d1c7d6c20c4..c1f7cc3459e 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -768,6 +768,14 @@ void Spell::SelectSpellTargets()
if (m_spellInfo->IsChanneled())
{
+ // maybe do this for all spells?
+ if (m_UniqueTargetInfo.empty() && m_UniqueGOTargetInfo.empty() && m_UniqueItemInfo.empty())
+ {
+ SendCastResult(SPELL_FAILED_BAD_IMPLICIT_TARGETS);
+ finish(false);
+ return;
+ }
+
uint8 mask = (1 << i);
for (std::list<TargetInfo>::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
{