aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2024-08-02 03:34:02 +0200
committerOvahlord <dreadkiller@gmx.de>2024-08-02 03:34:02 +0200
commit7a9d27639a6fe7eaba55360a6b803b658f79cd6c (patch)
treeb634d797e6ad806c5761ae3638022d925f35f603
parent52ffb9f3f72e7e0493c704530d3b9cffb98f4d07 (diff)
Core/Auras: implemented SPELL_AURA_MOD_DAMAGE_FROM_MANA
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 83cfb123c5a..0fca0b23daf 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -6860,6 +6860,13 @@ float Unit::SpellDamagePctDone(Unit* victim, SpellInfo const* spellProto, Damage
else if (spellProto->Mechanic)
AddPct(DoneTotalMod, GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC, spellProto->Mechanic));
+ // Add SPELL_AURA_MOD_DAMAGE_FROM_MANA percent bonus
+ if (HasAuraType(SPELL_AURA_MOD_DAMAGE_FROM_MANA) && GetMaxPower(POWER_MANA))
+ {
+ float damageFromManaBonus = GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_DAMAGE_FROM_MANA, spellProto->GetSchoolMask());
+ AddPct(DoneTotalMod, ((float)GetPower(POWER_MANA) / GetMaxPower(POWER_MANA)) * damageFromManaBonus);
+ }
+
// Custom scripted damage
switch (spellProto->SpellFamilyName)
{
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 029bfe6af06..45d52f8d10a 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -693,7 +693,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]=
&AuraEffect::HandleNULL, //621 SPELL_AURA_INCREASE_SKILL_GAIN_CHANCE
&AuraEffect::HandleNoImmediateEffect, //622 SPELL_AURA_MOD_SPELL_COOLDOWN_BY_HASTE implemented in SpellHistory::StartCooldown
&AuraEffect::HandleNULL, //623 SPELL_AURA_MOD_GATHERING_ITEMS_GAINED_PERCENT
- &AuraEffect::HandleNULL, //624 SPELL_AURA_MOD_DAMAGE_FROM_MANA
+ &AuraEffect::HandleNoImmediateEffect, //624 SPELL_AURA_MOD_DAMAGE_FROM_MANA implemented in Unit::Unit::SpellDamagePctDone
};
AuraEffect::AuraEffect(Aura* base, SpellEffectInfo const& spellEfffectInfo, int32 const* baseAmount, Unit* caster) :