aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index d525cde3a66..e9a20585c6b 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -8632,6 +8632,30 @@ void Spell::CallScriptCalcCritChanceHandlers(Unit const* victim, float& critChan
}
}
+void Spell::CallScriptCalcDamageHandlers(Unit* victim, int32& damage, int32& flatMod, float& pctMod)
+{
+ for (SpellScript* script : m_loadedScripts)
+ {
+ script->_PrepareScriptCall(SPELL_SCRIPT_HOOK_CALC_DAMAGE);
+ for (SpellScript::DamageAndHealingCalcHandler const& calcDamage : script->CalcDamage)
+ calcDamage.Call(script, victim, damage, flatMod, pctMod);
+
+ script->_FinishScriptCall();
+ }
+}
+
+void Spell::CallScriptCalcHealingHandlers(Unit* victim, int32& healing, int32& flatMod, float& pctMod)
+{
+ for (SpellScript* script : m_loadedScripts)
+ {
+ script->_PrepareScriptCall(SPELL_SCRIPT_HOOK_CALC_DAMAGE);
+ for (SpellScript::DamageAndHealingCalcHandler const& calcHealing : script->CalcHealing)
+ calcHealing.Call(script, victim, healing, flatMod, pctMod);
+
+ script->_FinishScriptCall();
+ }
+}
+
void Spell::CallScriptObjectAreaTargetSelectHandlers(std::list<WorldObject*>& targets, SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType)
{
for (SpellScript* script : m_loadedScripts)