*Fix Guardian Spirit.

*Fix Replenishment-by panaut0lordv.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-03-08 21:29:00 +01:00
parent e979eb56f2
commit 7289f5b36d
2 changed files with 17 additions and 7 deletions
+2 -6
View File
@@ -3908,8 +3908,7 @@ void Aura::HandlePeriodicEnergize(bool apply, bool Real)
// Replenishment (0.25% from max)
// Infinite Replenishment
if (GetId() == 57669 ||
GetId() == 61782)
if (m_spellProto->SpellIconID == 3184 && m_spellProto->SpellVisual[0] == 12495)
m_modifier.m_amount = m_target->GetMaxPower(POWER_MANA) * 25 / 10000;
}
@@ -5818,10 +5817,7 @@ void Aura::PeriodicTick()
uint32 amount = m_modifier.m_amount < 0 ? 0 : m_modifier.m_amount;
uint32 pdamage;
// Replenishment (Judgements of the Wise)
if (m_spellProto->SpellIconID == 3184 && m_spellProto->SpellVisual[0] == 12495)
pdamage = 0.25f * m_target->GetMaxPower(POWER_MANA);
else if( m_modifier.m_auraname == SPELL_AURA_OBS_MOD_ENERGY )
if( m_modifier.m_auraname == SPELL_AURA_OBS_MOD_ENERGY )
pdamage = uint32(m_target->GetMaxPower(power) * amount/100);
else
pdamage = amount;
+15 -1
View File
@@ -2002,6 +2002,20 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
}
case SPELLFAMILY_PRIEST:
{
// Guardian Spirit
if (spellProto->SpellFamilyFlags.IsEqual(0x400, 0, 0xC0000000))
{
if (pVictim->GetHealth() <= RemainingDamage) // Killing Blow
{
healAmount = pVictim->GetMaxHealth();
healCaster = pVictim;
healSpell = 48153;
currentAbsorb = mod->m_amount;
RemainingDamage=0;
break;
}
}
// Reflective Shield
if (spellProto->SpellFamilyFlags.IsEqual(0x1))
{
@@ -2246,7 +2260,7 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
}
}
TotalAbsorb -= RemainingDamage;
TotalAbsorb = (TotalAbsorb - RemainingDamage > 0) ? TotalAbsorb - RemainingDamage : 0;
// TODO: School should be checked for absorbing auras or for attacks?
int32 auraAbsorbMod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_TARGET_ABSORB_SCHOOL);
AuraList const& AbsIgnoreAurasAb = GetAurasByType(SPELL_AURA_MOD_TARGET_ABILITY_ABSORB_SCHOOL);