aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-06-12 21:36:28 +0200
committerQAston <none@none>2009-06-12 21:36:28 +0200
commita6f45b8ed69e795563e49522e2d363ef7dbee63d (patch)
tree6c40611845891ee6f596b11e7a4afb6cb843f2d9 /src/game/Unit.cpp
parentbd88344c72d866f04ed5a320300a327957f0a179 (diff)
*Implement damage on vampiric touch dispel.
*Correct cooldown application for eclipse. --HG-- branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 4c1022d4ae9..2510f045c6e 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -4078,6 +4078,15 @@ void Unit::RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit
dispeler->CastCustomSpell(dispeler, 31117, &damage, NULL, NULL, true, NULL, NULL,GetGUID());
return;
}
+ // Vampiric Touch
+ else if (aur->GetSpellProto()->SpellFamilyName == SPELLFAMILY_PRIEST && (aur->GetSpellProto()->SpellFamilyFlags[1] & 0x0400))
+ {
+ int32 damage = aur->GetPartAura(1)->GetAmount()*4;
+ RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);
+ // backfire damage
+ dispeler->CastCustomSpell(dispeler, 64085, &damage, NULL, NULL, true, NULL, NULL,GetGUID());
+ return;
+ }
RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);
return;
}
@@ -5909,7 +5918,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
}
}
// Eclipse
- if (dummySpell->SpellIconID == 2856)
+ if (dummySpell->SpellIconID == 2856 && GetTypeId() == TYPEID_PLAYER)
{
if (!procSpell)
return false;
@@ -5921,6 +5930,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
{
if (!roll_chance_i(60))
return false;
+ ((Player*)this)->AddSpellCooldown(48517,0,time(NULL) + cooldown);
triggered_spell_id = 48518;
target = this;
break;
@@ -5928,6 +5938,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Starfire crit
if (procSpell->SpellFamilyFlags[0] & 0x4)
{
+ ((Player*)this)->AddSpellCooldown(48518,0,time(NULL) + cooldown);
triggered_spell_id = 48517;
target = this;
break;