Got info from warlocks playing on retail. FA should heal for const 2.6, 2.4 or 2.2% with talent and spell healing bonus don't affect the amount.
Tested on rev. 8145
@@ -6020,20 +6020,34 @@ void Aura::PeriodicTick()
// heal for caster damage (must be alive)
if(m_target != pCaster && GetSpellProto()->SpellVisual[0] == 163 && !pCaster->isAlive())
return;
// ignore non positive values (can be result apply spellmods to aura damage
- uint32 amount = m_modifier.m_amount > 0 ? m_modifier.m_amount : 0;
+ float amount = m_modifier.m_amount > 0 ? m_modifier.m_amount : 0;
uint32 pdamage;
if(m_modifier.m_auraname==SPELL_AURA_OBS_MOD_HEALTH)
+ {
+ //Fel Armor: Demonic Aegis
+ switch (GetId())
+ {
+ case 28176:
+ case 28189:
+ case 47892:
+ case 47893:
+ if (m_target->HasAura(30145)) amount += amount * 0.3f;
+ else if (m_target->HasAura(30144)) amount += amount * 0.2f;
+ else if (m_target->HasAura(30143)) amount += amount * 0.1f;
+ break;
+ default:
+ break;
+ }
pdamage = uint32(m_target->GetMaxHealth() * amount / 100);
+ }
else
- pdamage = amount;
-
- pdamage = pCaster->SpellHealingBonus(m_target, GetSpellProto(), pdamage, DOT, GetStackAmount());
+ pdamage = pCaster->SpellHealingBonus(m_target, GetSpellProto(), uint32(amount), DOT, GetStackAmount());
// This method can modify pdamage
bool isCrit = IsCritFromAbilityAura(pCaster, pdamage);
sLog.outDetail("PeriodicTick: %u (TypeId: %u) heal of %u (TypeId: %u) for %u health inflicted by %u",
I know it's hacky but works
The basic fix for aura:
else
- pdamage = amount;
-
- pdamage = pCaster->SpellHealingBonus(m_target, GetSpellProto(), pdamage, DOT, GetStackAmount());
+ pdamage = pCaster->SpellHealingBonus(m_target, GetSpellProto(), amount, DOT, GetStackAmount());
// This method can modify pdamage
bool isCrit = IsCritFromAbilityAura(pCaster, pdamage);