Implementation of glyph of Power Word: Shield. By rammbonr5, closes #411

--HG--
branch : trunk
This commit is contained in:
spp
2009-12-13 11:35:12 +01:00
parent c72387cce8
commit 3fc61524ff
2 changed files with 20 additions and 7 deletions

View File

@@ -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;
}
}
}
}

View File

@@ -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:
{