From 3dbc2e0a561a376170c4407fa93579e8dfa6a3a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E4=BD=A9=E8=8C=B9?= Date: Fri, 3 Nov 2023 09:51:14 -0600 Subject: [PATCH] Fix periodic healing auras being scaled twice --- src/IndividualProgressionPlayer.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index 9b41179..068c60f 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -663,11 +663,20 @@ public: } } - void ModifyPeriodicDamageAurasTick(Unit* /*target*/, Unit* attacker, uint32& damage, SpellInfo const* /*spellInfo*/) override + void ModifyPeriodicDamageAurasTick(Unit* /*target*/, Unit* attacker, uint32& damage, SpellInfo const* spellInfo) override { if (!sIndividualProgression->enabled || !attacker) return; + // Do not apply reductions to healing auras - these are already modified in the ModifyHeal hook + for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j) + { + if (spellInfo->Effects[j].Effect == SPELL_EFFECT_APPLY_AURA && spellInfo->Effects[j].ApplyAuraName == SPELL_AURA_PERIODIC_HEAL) + { + return; + } + } + bool isPet = attacker->GetOwner() && attacker->GetOwner()->GetTypeId() == TYPEID_PLAYER; if (!isPet && attacker->GetTypeId() != TYPEID_PLAYER) {