diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 75b07c0c3..d59c17185 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6251,6 +6251,21 @@ void Aura::HandleSpellSpecificBoosts(bool apply) else return; } + // Power Word: Shield + else if (apply && m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000001) && m_spellProto->Mechanic == MECHANIC_SHIELD) + { + Unit* caster = GetCaster(); + if(!caster) + return; + + // Glyph of Power Word: Shield + if(Aura* glyph = caster->GetAura(55672,0)) + { + int32 heal = (glyph->GetModifier()->m_amount * m_modifier.m_amount)/100; + caster->CastCustomSpell(m_target, 56160, &heal, NULL, NULL, true, 0, this); + } + return; + } switch(GetId()) { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b6dce1e68..459745786 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -1991,17 +1991,6 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe preventDeathAmount = (*i)->GetModifier()->m_amount; continue; } - // Power Word: Shield - if (spellProto->SpellFamilyFlags & UI64LIT(00000001) && spellProto->Mechanic == MECHANIC_SHIELD) - { - // Glyph of Power Word: Shield - if (Aura *glyph = pVictim->GetAura(55672, EFFECT_INDEX_0)) - { - int32 heal = int32(glyph->GetModifier()->m_amount * - (RemainingDamage >= currentAbsorb ? currentAbsorb : RemainingDamage) / 100); - pVictim->CastCustomSpell(pVictim, 56160, &heal, NULL, NULL, true, 0, *i); - } - } // Reflective Shield if (spellProto->SpellFamilyFlags == 0x1 && canReflect) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index c39f57de7..3c87a3eff 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 "9556" + #define REVISION_NR "9557" #endif // __REVISION_NR_H__