aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-04-22 04:00:49 -0300
committerfunjoker <funjoker109@gmail.com>2020-04-27 15:34:38 +0200
commite3eca0c26410a6c9dc7fbef46ffb938cdd0901bc (patch)
tree469b05adf86087ea3b4c559fb540cb12c9e876a5
parent92719d1dc9f8294b7a07129297e23cae1ef0a659 (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.cpp12
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);