aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSebastian Valle Herrera <subv2112@gmail.com>2014-07-08 09:57:37 -0500
committerSebastian Valle Herrera <subv2112@gmail.com>2014-07-08 09:57:37 -0500
commit4a4da95aa0db5ef9fb991b25cab4a50f7f5aed95 (patch)
treecc55328987619cad7c3c92c66a379cf13ad415ec /src
parent48d284e88e369abc397af91172cba86afd6b0fff (diff)
parente9b7bb0a7b284f06f574fe441e58ceaed52e7240 (diff)
Merge pull request #10887 from zorix/PR3
Core/Spell: Triggered spells now will be cast on the primal target instead of on caster Closes #10853 Closes #10860
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 0d7dd8819af..d223425a027 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -1305,6 +1305,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType)
{
+ ASSERT(m_targets.GetObjectTarget() && "Spell::SelectImplicitTargetDestTargets - no explicit object target available!");
WorldObject* target = m_targets.GetObjectTarget();
SpellDestination dest(*target);
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index abeeb394218..c3ca10905fd 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -866,7 +866,10 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
if (spellInfo->GetExplicitTargetMask() & TARGET_FLAG_DEST_LOCATION)
targets.SetDst(m_targets);
- targets.SetUnitTarget(m_caster);
+ if (Unit* target = m_targets.GetUnitTarget())
+ targets.SetUnitTarget(target);
+ else
+ targets.SetUnitTarget(m_caster);
}
CustomSpellValues values;