aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorQAston <none@none>2009-03-04 00:19:55 +0100
committerQAston <none@none>2009-03-04 00:19:55 +0100
commit454f882cf238506bc12f593de71e97cd27e961e8 (patch)
treedae20ad72d86a58cdd786156d14a56e57550b318 /src
parentd06e75e0a8a55f8a001ee77bc5cf6f1f3afc4a34 (diff)
*Fix Death Strike.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellEffects.cpp10
-rw-r--r--src/game/Unit.cpp18
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: