diff options
author | QAston <none@none> | 2009-03-04 00:19:55 +0100 |
---|---|---|
committer | QAston <none@none> | 2009-03-04 00:19:55 +0100 |
commit | 454f882cf238506bc12f593de71e97cd27e961e8 (patch) | |
tree | dae20ad72d86a58cdd786156d14a56e57550b318 /src | |
parent | d06e75e0a8a55f8a001ee77bc5cf6f1f3afc4a34 (diff) |
*Fix Death Strike.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellEffects.cpp | 10 | ||||
-rw-r--r-- | src/game/Unit.cpp | 18 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index b3f997d249f..ba063c20da4 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1830,6 +1830,16 @@ void Spell::EffectDummy(uint32 i) return; } break; + case SPELLFAMILY_DEATHKNIGHT: + // Death strike dummy aura apply + // Used to proc healing later + if (m_spellInfo->SpellFamilyFlags[0] & 0x00000010) + { + spell_id=45469; + m_caster->CastSpell(m_caster,spell_id,true); + return; + } + } //spells triggered by dummy effect should not miss diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 3b1763887dd..425eddae924 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6333,6 +6333,24 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 50526; break; } + // Death Strike healing effect + if (dummySpell->Id == 45469) + { + uint8 n=0; + Unit::AuraList const& decSpeedList = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); + for(Unit::AuraList::const_iterator iter = decSpeedList.begin(); iter != decSpeedList.end(); ++iter) + { + if((*iter)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_DEATHKNIGHT + && (*iter)->GetCasterGUID() == GetGUID() + && (*iter)->GetSpellProto()->Dispel == DISPEL_DISEASE) + { + n++; + } + } + int32 heal=0.5f*n*damage+damage; + CastCustomSpell(this,45470,&heal,NULL,NULL,true); + return true; + } break; } case SPELLFAMILY_POTION: |