diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellAuras.cpp | 20 | ||||
-rw-r--r-- | src/game/Unit.cpp | 7 |
2 files changed, 20 insertions, 7 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 27679b20b7c..2f533e8bfff 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1579,6 +1579,26 @@ void AuraEffect::HandleAuraEffectSpecificMods(bool apply, bool Real, bool change DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellProto()); m_amount += (int32)DoneActualBenefit; } + + // we have exact amount now so apply mods affecting all boni + switch (m_spellProto->SpellFamilyName) + { + case SPELLFAMILY_PRIEST: + // Glyph of Power Word: Shield + if (m_spellProto->SpellFamilyFlags[0] & 0x1 && m_spellProto->SpellFamilyFlags[2] & 0x400 && + GetAuraName() == SPELL_AURA_SCHOOL_ABSORB) + { + if (AuraEffect* glyph = caster->GetAuraEffect(55672,0)) + { + // instantly heal m_amount% of the absorb-value + int32 heal = (glyph->GetAmount() * m_amount)/100; + caster->CastCustomSpell(m_target, 56160, &heal, NULL, NULL, true, 0, this); + } + } + break; + default: + break; + } } } } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 884588e0456..7cdc513535f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5786,13 +5786,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger target = this; break; } - // Glyph of Power Word: Shield - case 55672: - { - basepoints0 = damage * triggerAmount/100; - triggered_spell_id = 56160; - break; - } // Glyph of Prayer of Healing case 55680: { |