aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp20
-rw-r--r--src/game/Unit.cpp7
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:
{