diff options
author | Subv <s.v.h21@hotmail.com> | 2012-05-13 19:39:06 -0500 |
---|---|---|
committer | Subv <s.v.h21@hotmail.com> | 2012-05-13 19:39:06 -0500 |
commit | 1a06e197fd7d908ff62b801176cc3797306b07cd (patch) | |
tree | ce58785099d4414583f99873a06a28261cd72dd2 /src | |
parent | 42b0dfc94f9e9960a38024624f0a0f9886c5ccbd (diff) |
Core/Spells: Proc the spells that have DEST target when there is no other target info
Closes #6443
Closes #6277
Closes #6331
Signed-off-by: Subv <s.v.h21@hotmail.com>
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 28b089f91cd..48aa40a0e51 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3427,6 +3427,20 @@ void Spell::_handle_immediate_phase() // process items for (std::list<ItemTargetInfo>::iterator ihit= m_UniqueItemInfo.begin(); ihit != m_UniqueItemInfo.end(); ++ihit) DoAllEffectOnTarget(&(*ihit)); + + if (!m_originalCaster) + return; + // Handle procs on cast + // TODO: finish new proc system:P + if (m_UniqueTargetInfo.empty() && m_targets.HasDst()) + { + uint32 procAttacker = m_procAttacker; + if (!procAttacker) + procAttacker |= PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS; + + // Proc the spells that have DEST target + m_originalCaster->ProcDamageAndSpell(NULL, procAttacker, 0, m_procEx | PROC_EX_NORMAL_HIT, 0, BASE_ATTACK, m_spellInfo, m_triggeredByAuraSpell); + } } void Spell::_handle_finish_phase() |