diff options
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 24 |
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) |
