diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-04-22 04:00:49 -0300 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2020-04-27 15:34:38 +0200 |
commit | e3eca0c26410a6c9dc7fbef46ffb938cdd0901bc (patch) | |
tree | 469b05adf86087ea3b4c559fb540cb12c9e876a5 | |
parent | 92719d1dc9f8294b7a07129297e23cae1ef0a659 (diff) |
Core/Spell: fix creature focus with channeled spells
- Remove one not needed ReleaseFocus, this is done at finish already
(cherry picked from commit 88c12b45d0adbe7ca18a72a53cb1416b1621975b)
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
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); |