From e3eca0c26410a6c9dc7fbef46ffb938cdd0901bc Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 22 Apr 2017 04:00:49 -0300 Subject: Core/Spell: fix creature focus with channeled spells - Remove one not needed ReleaseFocus, this is done at finish already (cherry picked from commit 88c12b45d0adbe7ca18a72a53cb1416b1621975b) --- src/server/game/Spells/Spell.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 337ca5e1423..c064c64ae62 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3299,9 +3299,6 @@ void Spell::_cast(bool skipCheck) SetExecutedCurrently(false); - if (Creature* creatureCaster = m_caster->ToCreature()) - creatureCaster->ReleaseFocus(this); - if (!m_originalCaster) return; @@ -4460,8 +4457,17 @@ void Spell::SendChannelStart(uint32 duration) m_timer = duration; for (TargetInfo const& target : m_UniqueTargetInfo) + { m_caster->AddChannelObject(target.targetGUID); + if (m_UniqueTargetInfo.size() == 1 && m_UniqueGOTargetInfo.empty()) + { + if (Creature* creatureCaster = m_caster->ToCreature()) + if (!creatureCaster->IsFocusing(this)) + creatureCaster->FocusTarget(this, ObjectAccessor::GetWorldObject(*creatureCaster, target.targetGUID)); + } + } + for (GOTargetInfo const& target : m_UniqueGOTargetInfo) m_caster->AddChannelObject(target.targetGUID); -- cgit v1.2.3