Core/Unit: fix mess-up with CalcArmorReducedDamage parameter order
Port From (https://github.com/TrinityCore/TrinityCore/commit/bf4330bfb58d5c23b651bc8397a15b10f33672b8)
This commit is contained in:
@@ -3403,7 +3403,7 @@ namespace Game.Entities
|
|||||||
// Spells with melee and magic school mask, decide whether resistance or armor absorb is higher
|
// Spells with melee and magic school mask, decide whether resistance or armor absorb is higher
|
||||||
if (spellInfo != null && spellInfo.HasAttribute(SpellCustomAttributes.SchoolmaskNormalWithMagic))
|
if (spellInfo != null && spellInfo.HasAttribute(SpellCustomAttributes.SchoolmaskNormalWithMagic))
|
||||||
{
|
{
|
||||||
uint damageAfterArmor = CalcArmorReducedDamage(attacker, victim, damage, spellInfo, WeaponAttackType.BaseAttack);
|
uint damageAfterArmor = CalcArmorReducedDamage(attacker, victim, damage, spellInfo, spellInfo.GetAttackType());
|
||||||
float armorReduction = damage - damageAfterArmor;
|
float armorReduction = damage - damageAfterArmor;
|
||||||
|
|
||||||
// pick the lower one, the weakest resistance counts
|
// pick the lower one, the weakest resistance counts
|
||||||
|
|||||||
@@ -4982,9 +4982,9 @@ namespace Game.Spells
|
|||||||
// Calculate armor mitigation
|
// Calculate armor mitigation
|
||||||
if (Unit.IsDamageReducedByArmor(GetSpellInfo().GetSchoolMask(), GetSpellInfo(), (sbyte)GetEffIndex()))
|
if (Unit.IsDamageReducedByArmor(GetSpellInfo().GetSchoolMask(), GetSpellInfo(), (sbyte)GetEffIndex()))
|
||||||
{
|
{
|
||||||
uint damageReductedArmor = Unit.CalcArmorReducedDamage(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetAttackType(), GetBase().GetCasterLevel());
|
uint damageReducedArmor = Unit.CalcArmorReducedDamage(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetAttackType(), GetBase().GetCasterLevel());
|
||||||
cleanDamage.mitigated_damage += damage - damageReductedArmor;
|
cleanDamage.mitigated_damage += damage - damageReducedArmor;
|
||||||
damage = damageReductedArmor;
|
damage = damageReducedArmor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
||||||
@@ -5047,7 +5047,7 @@ namespace Game.Spells
|
|||||||
caster.SpellHitResult(target, GetSpellInfo(), false) != SpellMissInfo.None)
|
caster.SpellHitResult(target, GetSpellInfo(), false) != SpellMissInfo.None)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CleanDamage cleanDamage = new(0, 0, WeaponAttackType.BaseAttack, MeleeHitOutcome.Normal);
|
CleanDamage cleanDamage = new(0, 0, GetSpellInfo().GetAttackType(), MeleeHitOutcome.Normal);
|
||||||
|
|
||||||
uint stackAmountForBonuses = !GetSpellEffectInfo().EffectAttributes.HasFlag(SpellEffectAttributes.NoScaleWithStack) ? GetBase().GetStackAmount() : 1u;
|
uint stackAmountForBonuses = !GetSpellEffectInfo().EffectAttributes.HasFlag(SpellEffectAttributes.NoScaleWithStack) ? GetBase().GetStackAmount() : 1u;
|
||||||
|
|
||||||
@@ -5066,9 +5066,9 @@ namespace Game.Spells
|
|||||||
// Calculate armor mitigation
|
// Calculate armor mitigation
|
||||||
if (Unit.IsDamageReducedByArmor(GetSpellInfo().GetSchoolMask(), GetSpellInfo(), (sbyte)GetEffIndex()))
|
if (Unit.IsDamageReducedByArmor(GetSpellInfo().GetSchoolMask(), GetSpellInfo(), (sbyte)GetEffIndex()))
|
||||||
{
|
{
|
||||||
uint damageReductedArmor = Unit.CalcArmorReducedDamage(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetAttackType(), GetBase().GetCasterLevel());
|
uint damageReducedArmor = Unit.CalcArmorReducedDamage(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetAttackType(), GetBase().GetCasterLevel());
|
||||||
cleanDamage.mitigated_damage += damage - damageReductedArmor;
|
cleanDamage.mitigated_damage += damage - damageReducedArmor;
|
||||||
damage = damageReductedArmor;
|
damage = damageReducedArmor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
||||||
@@ -5083,7 +5083,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
damage = (uint)dmg;
|
damage = (uint)dmg;
|
||||||
|
|
||||||
DamageInfo damageInfo = new(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetSchoolMask(), DamageEffectType.DOT, WeaponAttackType.BaseAttack);
|
DamageInfo damageInfo = new(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetSchoolMask(), DamageEffectType.DOT, GetSpellInfo().GetAttackType());
|
||||||
Unit.CalcAbsorbResist(damageInfo);
|
Unit.CalcAbsorbResist(damageInfo);
|
||||||
|
|
||||||
uint absorb = damageInfo.GetAbsorb();
|
uint absorb = damageInfo.GetAbsorb();
|
||||||
|
|||||||
Reference in New Issue
Block a user