diff options
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 29d691ae215..7b057e6b28b 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -1207,6 +1207,8 @@ void Spell::SelectImplicitAreaTargets(SpellEffectInfo const& spellEffectInfo, Sp break; case TARGET_REFERENCE_TYPE_LAST: { + referer = m_caster; + // find last added target for this effect for (auto ihit = m_UniqueTargetInfo.rbegin(); ihit != m_UniqueTargetInfo.rend(); ++ihit) { @@ -1275,6 +1277,15 @@ void Spell::SelectImplicitAreaTargets(SpellEffectInfo const& spellEffectInfo, Sp break; } + if (targetType.GetObjectType() == TARGET_OBJECT_TYPE_UNIT_AND_DEST) + { + SpellDestination dest(*referer); + + CallScriptDestinationTargetSelectHandlers(dest, spellEffectInfo.EffectIndex, targetType); + + m_targets.ModDst(dest); + } + CallScriptObjectAreaTargetSelectHandlers(targets, spellEffectInfo.EffectIndex, targetType); if (!targets.empty()) |