Core/Auras: Handle SPELL_AURA_MOD_AUTOATTACK_DAMAGE
Port From (https://github.com/TrinityCore/TrinityCore/commit/964340bb764baab75830cfe298d1346ceae84c61)
This commit is contained in:
@@ -365,7 +365,7 @@ namespace Framework.Constants
|
|||||||
ModSpellCategoryCooldown = 341,
|
ModSpellCategoryCooldown = 341,
|
||||||
ModMeleeRangedHaste2 = 342,
|
ModMeleeRangedHaste2 = 342,
|
||||||
ModMeleeDamageFromCaster = 343,
|
ModMeleeDamageFromCaster = 343,
|
||||||
ModAutoattackDamage = 344,
|
ModAutoAttackDamage = 344,
|
||||||
BypassArmorForCaster = 345,
|
BypassArmorForCaster = 345,
|
||||||
EnableAltPower = 346, // Nyi
|
EnableAltPower = 346, // Nyi
|
||||||
ModSpellCooldownByHaste = 347,
|
ModSpellCooldownByHaste = 347,
|
||||||
|
|||||||
@@ -2830,11 +2830,12 @@ namespace Game.Entities
|
|||||||
// Done total percent damage auras
|
// Done total percent damage auras
|
||||||
float DoneTotalMod = 1.0f;
|
float DoneTotalMod = 1.0f;
|
||||||
|
|
||||||
// Some spells don't benefit from pct done mods
|
|
||||||
if (spellProto != null && !spellProto.HasAttribute(SpellAttr6.NoDonePctDamageMods))
|
if (spellProto != null)
|
||||||
{
|
{
|
||||||
|
// Some spells don't benefit from pct done mods
|
||||||
// mods for SPELL_SCHOOL_MASK_NORMAL are already factored in base melee damage calculation
|
// mods for SPELL_SCHOOL_MASK_NORMAL are already factored in base melee damage calculation
|
||||||
if (!spellProto.GetSchoolMask().HasAnyFlag(SpellSchoolMask.Normal))
|
if (!spellProto.HasAttribute(SpellAttr6.NoDonePctDamageMods) && !spellProto.GetSchoolMask().HasAnyFlag(SpellSchoolMask.Normal))
|
||||||
{
|
{
|
||||||
float maxModDamagePercentSchool = 0.0f;
|
float maxModDamagePercentSchool = 0.0f;
|
||||||
Player thisPlayer = ToPlayer();
|
Player thisPlayer = ToPlayer();
|
||||||
@@ -2851,9 +2852,15 @@ namespace Game.Entities
|
|||||||
|
|
||||||
DoneTotalMod *= maxModDamagePercentSchool;
|
DoneTotalMod *= maxModDamagePercentSchool;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// melee attack
|
||||||
|
foreach (AuraEffect autoAttackDamage in GetAuraEffectsByType(AuraType.ModAutoAttackDamage))
|
||||||
|
MathFunctions.AddPct(ref DoneTotalMod, autoAttackDamage.GetAmount());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DoneTotalMod *= GetTotalAuraMultiplierByMiscMask(AuraType.ModDamageDoneVersus, (uint)creatureTypeMask);
|
DoneTotalMod *= GetTotalAuraMultiplierByMiscMask(AuraType.ModDamageDoneVersus, creatureTypeMask);
|
||||||
|
|
||||||
// bonus against aurastate
|
// bonus against aurastate
|
||||||
DoneTotalMod *= GetTotalAuraMultiplier(AuraType.ModDamageDoneVersusAurastate, aurEff =>
|
DoneTotalMod *= GetTotalAuraMultiplier(AuraType.ModDamageDoneVersusAurastate, aurEff =>
|
||||||
|
|||||||
@@ -979,7 +979,6 @@ namespace Game.Spells
|
|||||||
[AuraEffectHandler(AuraType.Unk335)]
|
[AuraEffectHandler(AuraType.Unk335)]
|
||||||
[AuraEffectHandler(AuraType.MountRestrictions)]
|
[AuraEffectHandler(AuraType.MountRestrictions)]
|
||||||
[AuraEffectHandler(AuraType.ModResurrectedHealthByGuildMember)]
|
[AuraEffectHandler(AuraType.ModResurrectedHealthByGuildMember)]
|
||||||
[AuraEffectHandler(AuraType.ModAutoattackDamage)]
|
|
||||||
[AuraEffectHandler(AuraType.ModSpellCooldownByHaste)]
|
[AuraEffectHandler(AuraType.ModSpellCooldownByHaste)]
|
||||||
[AuraEffectHandler(AuraType.ModGatheringItemsGainedPercent)]
|
[AuraEffectHandler(AuraType.ModGatheringItemsGainedPercent)]
|
||||||
[AuraEffectHandler(AuraType.Unk351)]
|
[AuraEffectHandler(AuraType.Unk351)]
|
||||||
|
|||||||
Reference in New Issue
Block a user