diff options
author | QAston <none@none> | 2009-06-12 21:36:28 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-06-12 21:36:28 +0200 |
commit | a6f45b8ed69e795563e49522e2d363ef7dbee63d (patch) | |
tree | 6c40611845891ee6f596b11e7a4afb6cb843f2d9 /src/game/Unit.cpp | |
parent | bd88344c72d866f04ed5a320300a327957f0a179 (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.cpp | 13 |
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; |