aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-11-28 11:15:32 +0100
committerShauren <shauren.trinity@gmail.com>2025-11-28 11:15:32 +0100
commit43d48cf1a7292c4ddd184bd996e20fc6d6083179 (patch)
treebdc92c07ade5e876462830628a3483303a49be40 /src/server/game/Entities/Unit
parent233a063eba03a008cbf24cada1f2c2072500b995 (diff)
Core/Auras: Enable DoEffectCalcDamageAndHealing aura script hook for initial absorb amount calculation
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index ee3b371f632..4663743904e 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7617,7 +7617,7 @@ int32 Unit::SpellAbsorbBonusDone(Unit* victim, SpellInfo const* spellProto, int3
return absorbamount;
int32 doneTotal = 0;
- float doneTotalMod = 1.f;
+ float doneTotalMod = SpellAbsorbPctDone(victim, spellProto);
int32 doneAdvertisedBenefit = SpellBaseAbsorbBonusDone(spellProto->GetSchoolMask());
doneAdvertisedBenefit += victim->GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_HEALING, spellProto->GetSchoolMask());
@@ -7664,7 +7664,8 @@ int32 Unit::SpellAbsorbBonusDone(Unit* victim, SpellInfo const* spellProto, int3
doneTotal += int32(doneAdvertisedBenefit * coeff * stack);
}
- doneTotalMod = SpellAbsorbPctDone(victim, spellProto);
+ if (aurEff)
+ aurEff->GetBase()->CallScriptCalcDamageAndHealingHandlers(aurEff, aurEff->GetBase()->GetApplicationOfTarget(victim->GetGUID()), victim, absorbamount, doneTotal, doneTotalMod);
float absorbAmount = float(absorbamount + doneTotal) * doneTotalMod;