Fixed spell Borrowed Time, by Metaphysical.Drama.
--HG-- branch : trunk
This commit is contained in:
+13
-19
@@ -1411,6 +1411,7 @@ void AuraEffect::HandleAuraEffectSpecificMods(bool apply, bool Real, bool change
|
|||||||
if(caster)
|
if(caster)
|
||||||
{
|
{
|
||||||
float DoneActualBenefit = 0.0f;
|
float DoneActualBenefit = 0.0f;
|
||||||
|
float BenefitMod = 1.0f;
|
||||||
switch(m_spellProto->SpellFamilyName)
|
switch(m_spellProto->SpellFamilyName)
|
||||||
{
|
{
|
||||||
case SPELLFAMILY_GENERIC:
|
case SPELLFAMILY_GENERIC:
|
||||||
@@ -1482,25 +1483,9 @@ void AuraEffect::HandleAuraEffectSpecificMods(bool apply, bool Real, bool change
|
|||||||
{
|
{
|
||||||
//+80.68% from sp bonus
|
//+80.68% from sp bonus
|
||||||
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.8068f;
|
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.8068f;
|
||||||
}
|
// Borrowed Time
|
||||||
// Borrowed Time
|
if (AuraEffect* aureff = caster->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_PRIEST, 2899, 1))
|
||||||
else if(m_spellProto->SpellFamilyFlags[0] & 0x1 && GetAuraName() == SPELL_AURA_SCHOOL_ABSORB)
|
DoneActualBenefit += caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * (aureff->GetAmount() / 100.0f);
|
||||||
{
|
|
||||||
switch(m_spellProto->Id)
|
|
||||||
{
|
|
||||||
case 52795:
|
|
||||||
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.08f; break;
|
|
||||||
case 52797:
|
|
||||||
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.16f; break;
|
|
||||||
case 52798:
|
|
||||||
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.24f; break;
|
|
||||||
case 52799:
|
|
||||||
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.32f; break;
|
|
||||||
case 52800:
|
|
||||||
DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.40f; break;
|
|
||||||
default:
|
|
||||||
sLog.outDetail("Unhandled spell '%u' (possibly a new rank of Borrowed Time?) found.",m_spellProto->Id); break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1609,6 +1594,15 @@ void AuraEffect::HandleAuraEffectSpecificMods(bool apply, bool Real, bool change
|
|||||||
|
|
||||||
if (DoneActualBenefit != 0.0f)
|
if (DoneActualBenefit != 0.0f)
|
||||||
{
|
{
|
||||||
|
// Handle SPELL_AURA_ADD_PCT_MODIFIERs
|
||||||
|
Unit::AuraEffectList const& AuraPctMmodifiers = caster->GetAurasByType(SPELL_AURA_ADD_PCT_MODIFIER);
|
||||||
|
for (Unit::AuraEffectList::const_iterator i = AuraPctMmodifiers.begin(); i != AuraPctMmodifiers.end(); ++i)
|
||||||
|
{
|
||||||
|
if ((*i)->isAffectedOnSpell(m_spellProto) && (*i)->GetMiscValue() == SPELLMOD_ALL_EFFECTS)
|
||||||
|
BenefitMod += (*i)->GetAmount() / 100.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
DoneActualBenefit *= BenefitMod;
|
||||||
DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellProto());
|
DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellProto());
|
||||||
m_amount += (int32)DoneActualBenefit;
|
m_amount += (int32)DoneActualBenefit;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user