From 20ea42e0dbae1ad8ad0ba643dacf50f3495bc544 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Sun, 25 Jan 2009 18:57:58 +0300 Subject: [PATCH] [7176] Implement full work priest 47580 and ranks Signed-off-by: DiSlord --- src/game/SpellAuras.cpp | 22 ++++++++++++++++++++++ src/game/SpellEffects.cpp | 28 ++++++++++++++++++++++++++++ src/shared/revision_nr.h | 2 +- 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index ec9efb81f..e358b611f 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2220,6 +2220,28 @@ void Aura::HandleAuraDummy(bool apply, bool Real) { break; } + case SPELLFAMILY_PRIEST: + { + // Pain and Suffering + if( m_spellProto->SpellIconID == 2874 && m_target->GetTypeId()==TYPEID_PLAYER ) + { + if(apply) + { + // Reduce backfire damage (dot damage) from Shadow Word: Death + SpellModifier *mod = new SpellModifier; + mod->op = SPELLMOD_DOT; + mod->value = m_modifier.m_amount; + mod->type = SPELLMOD_PCT; + mod->spellId = GetId(); + mod->mask = 0x0000000200000000LL; + mod->mask2= 0LL; + m_spellmod = mod; + } + ((Player*)m_target)->AddSpellMod(m_spellmod, apply); + return; + } + break; + } case SPELLFAMILY_DRUID: { // Lifebloom diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index d85e10b4b..1149113bf 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4937,6 +4937,34 @@ void Spell::EffectScriptEffect(uint32 effIndex) } break; } + case SPELLFAMILY_PRIEST: + { + switch(m_spellInfo->Id) + { + // Pain and Suffering + case 47948: + { + if (!unitTarget) + return; + // Refresh Shadow Word: Pain on target + Unit::AuraList const &mPeriodic = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); + for(Unit::AuraList::const_iterator i = mPeriodic.begin(); i != mPeriodic.end(); ++i) + { + if( (*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_PRIEST && + (*i)->GetSpellProto()->SpellFamilyFlags & 0x0000000000008000LL && + (*i)->GetCasterGUID()==m_caster->GetGUID() ) + { + (*i)->RefreshAura(); + return; + } + } + return; + } + default: + break; + } + break; + } case SPELLFAMILY_HUNTER: { switch(m_spellInfo->Id) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3184a7a35..8580b45b8 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7175" + #define REVISION_NR "7176" #endif // __REVISION_NR_H__