From 54c6d05de058dfe03633f4d7fc64f265c9b72a44 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 4 Sep 2023 07:55:44 -0400 Subject: [PATCH] Core/Auras: Implement SPELL_AURA_MOD_DAMAGE_PERCENT_DONE_BY_TARGET_AURA_MECHANIC Port From (https://github.com/TrinityCore/TrinityCore/commit/6a760de79b6dc9d821bd6dd2c362301c307991f0) --- Source/Framework/Constants/Spells/SpellAuraConst.cs | 2 +- Source/Game/Entities/Unit/Unit.Spells.cs | 8 ++++++++ Source/Game/Entities/Unit/Unit.cs | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Source/Framework/Constants/Spells/SpellAuraConst.cs b/Source/Framework/Constants/Spells/SpellAuraConst.cs index 861e0b27e..34f678449 100644 --- a/Source/Framework/Constants/Spells/SpellAuraConst.cs +++ b/Source/Framework/Constants/Spells/SpellAuraConst.cs @@ -256,7 +256,7 @@ namespace Framework.Constants ModAuraDurationByDispelNotStack = 246, CloneCaster = 247, ModCombatResultChance = 248, - ConvertRune = 249, + ModDamagePercentDoneByTargetAuraMechanic = 249, ModIncreaseHealth2 = 250, ModEnemyDodge = 251, ModSpeedSlowAll = 252, diff --git a/Source/Game/Entities/Unit/Unit.Spells.cs b/Source/Game/Entities/Unit/Unit.Spells.cs index 636377257..d45fada80 100644 --- a/Source/Game/Entities/Unit/Unit.Spells.cs +++ b/Source/Game/Entities/Unit/Unit.Spells.cs @@ -200,6 +200,14 @@ namespace Game.Entities return false; }); + // bonus against target aura mechanic + DoneTotalMod *= GetTotalAuraMultiplier(AuraType.ModDamagePercentDoneByTargetAuraMechanic, aurEff => + { + if (victim.HasAuraWithMechanic(1ul << aurEff.GetMiscValue())) + return true; + return false; + }); + // Add SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC percent bonus if (spellEffectInfo.Mechanic != 0) MathFunctions.AddPct(ref DoneTotalMod, GetTotalAuraModifierByMiscValue(AuraType.ModDamageDoneForMechanic, (int)spellEffectInfo.Mechanic)); diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index b98b40dc2..d69bc666e 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -3966,6 +3966,14 @@ namespace Game.Entities return false; }); + // bonus against target aura mechanic + DoneTotalMod *= GetTotalAuraMultiplier(AuraType.ModDamagePercentDoneByTargetAuraMechanic, aurEff => + { + if (victim.HasAuraWithMechanic(1ul << aurEff.GetMiscValue())) + return true; + return false; + }); + // Add SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC percent bonus if (spellEffectInfo != null && spellEffectInfo.Mechanic != 0) MathFunctions.AddPct(ref DoneTotalMod, GetTotalAuraModifierByMiscValue(AuraType.ModDamageDoneForMechanic, (int)spellEffectInfo.Mechanic));