Core/Mechanic: Fix spell penetration from items.
This commit is contained in:
@@ -1573,7 +1573,7 @@ uint32 Unit::CalcArmorReducedDamage(Unit* victim, const uint32 damage, SpellInfo
|
||||
return (newdamage > 1) ? newdamage : 1;
|
||||
}
|
||||
|
||||
void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffectType damagetype, const uint32 damage, uint32 *absorb, uint32 *resist, SpellInfo const* spellInfo)
|
||||
void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffectType damagetype, uint32 const damage, uint32 *absorb, uint32 *resist, SpellInfo const* spellInfo)
|
||||
{
|
||||
if (!victim || !victim->isAlive() || !damage)
|
||||
return;
|
||||
@@ -1583,14 +1583,18 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe
|
||||
// Magic damage, check for resists
|
||||
if ((schoolMask & SPELL_SCHOOL_MASK_NORMAL) == 0)
|
||||
{
|
||||
float baseVictimResistance = float(victim->GetResistance(GetFirstSchoolInMask(schoolMask)));
|
||||
float ignoredResistance = float(GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_TARGET_RESISTANCE, schoolMask));
|
||||
if (Player* player = ToPlayer())
|
||||
ignoredResistance += float(player->GetSpellPenetrationItemMod());
|
||||
float victimResistance = baseVictimResistance + ignoredResistance;
|
||||
float victimResistance = float(victim->GetResistance(GetFirstSchoolInMask(schoolMask)));
|
||||
victimResistance += float(GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_TARGET_RESISTANCE, schoolMask));
|
||||
|
||||
static const uint32 BOSS_LEVEL = 83;
|
||||
static const float BOSS_RESISTANCE_CONSTANT = 510.0;
|
||||
if (Player* player = ToPlayer())
|
||||
victimResistance -= float(player->GetSpellPenetrationItemMod());
|
||||
|
||||
// Resistance can't be lower then 0.
|
||||
if (victimResistance < 0.0f)
|
||||
victimResistance = 0.0f;
|
||||
|
||||
static uint32 const BOSS_LEVEL = 83;
|
||||
static float const BOSS_RESISTANCE_CONSTANT = 510.0f;
|
||||
uint32 level = getLevel();
|
||||
float resistanceConstant = 0.0f;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user