From a7c7de947faf92281377b5b3652ab943a7fb0803 Mon Sep 17 00:00:00 2001 From: Trazom Date: Sat, 19 Sep 2009 21:35:22 +0400 Subject: [PATCH] [8512] Implement glyph 42408. Signed-off-by: VladimirMangos --- src/game/SpellAuras.cpp | 22 +++++++++++++++++++++- src/shared/revision_nr.h | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index f50a8a1f5..2e3337e6e 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6150,6 +6150,26 @@ void Aura::HandleSchoolAbsorb(bool apply, bool Real) DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellProto()); m_modifier.m_amount += (int32)DoneActualBenefit; + + // now that the correct amount is computed, apply caster aura, if any + switch(m_spellProto->SpellFamilyName) + { + case SPELLFAMILY_PRIEST: + // Power Word: Shield + if (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000001)) + { + // Glyph of Power Word: Shield + if(Aura* glyph = caster->GetAura(55672,0)) + { + // instant heal glyph m_amount% of the absorbed amount + int32 heal = (glyph->GetModifier()->m_amount * m_modifier.m_amount)/100; + caster->CastCustomSpell(m_target, 56160, &heal, NULL, NULL, true, 0, this); + } + } + break; + default: + break; + } } } else @@ -7172,7 +7192,7 @@ void Aura::HandleManaShield(bool apply, bool Real) switch(m_spellProto->SpellFamilyName) { case SPELLFAMILY_MAGE: - if(m_spellProto->SpellFamilyFlags & UI64LIT(0x8000)) + if(m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000008000)) { // Mana Shield // +50% from +spd bonus diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 88d562a6c..5269c6596 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 "8511" + #define REVISION_NR "8512" #endif // __REVISION_NR_H__