diff options
| author | spp <none@none> | 2009-12-13 11:35:12 +0100 |
|---|---|---|
| committer | spp <none@none> | 2009-12-13 11:35:12 +0100 |
| commit | 3fc61524ffe12a6790a3438cd8cd324c5b363c60 (patch) | |
| tree | 208d521919d9217d1c190e110d916961fb9cc779 /src | |
| parent | c72387cce87cdc63ec6a3cddae1682828166d92b (diff) | |
Implementation of glyph of Power Word: Shield. By rammbonr5, closes #411
--HG--
branch : trunk
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: { |
