aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index e93a7770180..f40607c391c 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3280,9 +3280,6 @@ void Spell::_cast(bool skipCheck)
SetExecutedCurrently(false);
- if (Creature* creatureCaster = m_caster->ToCreature())
- creatureCaster->ReleaseFocus(this);
-
if (!m_originalCaster)
return;
@@ -4338,8 +4335,14 @@ void Spell::SendChannelStart(uint32 duration)
m_timer = duration;
if (channelTarget)
+ {
m_caster->SetChannelObjectGuid(channelTarget);
+ if (Creature* creatureCaster = m_caster->ToCreature())
+ if (!creatureCaster->IsFocusing(this))
+ creatureCaster->FocusTarget(this, ObjectAccessor::GetWorldObject(*creatureCaster, channelTarget));
+ }
+
m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, m_spellInfo->Id);
}