Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
SpellAuraScriptHooks.cpp
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#include "CellImpl.h"
7#include "Common.h"
8#include "DynamicObject.h"
9#include "GridNotifiers.h"
10#include "GridNotifiersImpl.h"
11#include "Log.h"
12#include "ObjectAccessor.h"
13#include "ObjectMgr.h"
14#include "Opcodes.h"
15#include "Player.h"
16#include "ScriptMgr.h"
17#include "Spell.h"
18#include "SpellAuraEffects.h"
19#include "SpellMgr.h"
20#include "SpellScript.h"
21#include "Unit.h"
22#include "Util.h"
23#include "Vehicle.h"
24#include "WorldPacket.h"
25
27{
28 sScriptMgr->CreateAuraScripts(m_spellInfo->Id, m_loadedScripts);
29 for (std::list<AuraScript*>::iterator itr = m_loadedScripts.begin(); itr != m_loadedScripts.end();)
30 {
31 if (!(*itr)->_Load(this))
32 {
33 std::list<AuraScript*>::iterator bitr = itr;
34 ++itr;
35 delete (*bitr);
36 m_loadedScripts.erase(bitr);
37 continue;
38 }
39 SF_LOG_DEBUG("spells", "Aura::LoadScripts: Script `%s` for aura `%u` is loaded now", (*itr)->_GetScriptName()->c_str(), m_spellInfo->Id);
40 (*itr)->Register();
41 ++itr;
42 }
43}
44
46{
47 bool result = true;
48 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
49 {
50 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_CHECK_AREA_TARGET);
51 std::list<AuraScript::CheckAreaTargetHandler>::iterator hookItrEnd = (*scritr)->DoCheckAreaTarget.end(), hookItr = (*scritr)->DoCheckAreaTarget.begin();
52 for (; hookItr != hookItrEnd; ++hookItr)
53 result &= hookItr->Call(*scritr, target);
54
55 (*scritr)->_FinishScriptCall();
56 }
57 return result;
58}
59
61{
62 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
63 {
64 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_DISPEL);
65 std::list<AuraScript::AuraDispelHandler>::iterator hookItrEnd = (*scritr)->OnDispel.end(), hookItr = (*scritr)->OnDispel.begin();
66 for (; hookItr != hookItrEnd; ++hookItr)
67 hookItr->Call(*scritr, dispelInfo);
68
69 (*scritr)->_FinishScriptCall();
70 }
71}
72
74{
75 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
76 {
77 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_AFTER_DISPEL);
78 std::list<AuraScript::AuraDispelHandler>::iterator hookItrEnd = (*scritr)->AfterDispel.end(), hookItr = (*scritr)->AfterDispel.begin();
79 for (; hookItr != hookItrEnd; ++hookItr)
80 hookItr->Call(*scritr, dispelInfo);
81
82 (*scritr)->_FinishScriptCall();
83 }
84}
85
87{
88 bool preventDefault = false;
89 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
90 {
91 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_APPLY, aurApp);
92 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->OnEffectApply.end(), effItr = (*scritr)->OnEffectApply.begin();
93 for (; effItr != effEndItr; ++effItr)
94 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
95 effItr->Call(*scritr, aurEff, mode);
96
97 if (!preventDefault)
98 preventDefault = (*scritr)->_IsDefaultActionPrevented();
99
100 (*scritr)->_FinishScriptCall();
101 }
102
103 return preventDefault;
104}
105
107{
108 bool preventDefault = false;
109 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
110 {
111 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_REMOVE, aurApp);
112 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->OnEffectRemove.end(), effItr = (*scritr)->OnEffectRemove.begin();
113 for (; effItr != effEndItr; ++effItr)
114 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
115 effItr->Call(*scritr, aurEff, mode);
116
117 if (!preventDefault)
118 preventDefault = (*scritr)->_IsDefaultActionPrevented();
119
120 (*scritr)->_FinishScriptCall();
121 }
122 return preventDefault;
123}
124
126{
127 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
128 {
129 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_AFTER_APPLY, aurApp);
130 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->AfterEffectApply.end(), effItr = (*scritr)->AfterEffectApply.begin();
131 for (; effItr != effEndItr; ++effItr)
132 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
133 effItr->Call(*scritr, aurEff, mode);
134
135 (*scritr)->_FinishScriptCall();
136 }
137}
138
140{
141 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
142 {
143 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_AFTER_REMOVE, aurApp);
144 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->AfterEffectRemove.end(), effItr = (*scritr)->AfterEffectRemove.begin();
145 for (; effItr != effEndItr; ++effItr)
146 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
147 effItr->Call(*scritr, aurEff, mode);
148
149 (*scritr)->_FinishScriptCall();
150 }
151}
152
154{
155 bool preventDefault = false;
156 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
157 {
158 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_PERIODIC, aurApp);
159 std::list<AuraScript::EffectPeriodicHandler>::iterator effEndItr = (*scritr)->OnEffectPeriodic.end(), effItr = (*scritr)->OnEffectPeriodic.begin();
160 for (; effItr != effEndItr; ++effItr)
161 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
162 effItr->Call(*scritr, aurEff);
163
164 if (!preventDefault)
165 preventDefault = (*scritr)->_IsDefaultActionPrevented();
166
167 (*scritr)->_FinishScriptCall();
168 }
169
170 return preventDefault;
171}
172
174{
175 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
176 {
177 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_UPDATE_PERIODIC);
178 std::list<AuraScript::EffectUpdatePeriodicHandler>::iterator effEndItr = (*scritr)->OnEffectUpdatePeriodic.end(), effItr = (*scritr)->OnEffectUpdatePeriodic.begin();
179 for (; effItr != effEndItr; ++effItr)
180 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
181 effItr->Call(*scritr, aurEff);
182
183 (*scritr)->_FinishScriptCall();
184 }
185}
186
187void Aura::CallScriptEffectCalcAmountHandlers(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated)
188{
189 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
190 {
191 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_CALC_AMOUNT);
192 std::list<AuraScript::EffectCalcAmountHandler>::iterator effEndItr = (*scritr)->DoEffectCalcAmount.end(), effItr = (*scritr)->DoEffectCalcAmount.begin();
193 for (; effItr != effEndItr; ++effItr)
194 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
195 effItr->Call(*scritr, aurEff, amount, canBeRecalculated);
196
197 (*scritr)->_FinishScriptCall();
198 }
199}
200
201void Aura::CallScriptEffectCalcPeriodicHandlers(AuraEffect const* aurEff, bool& isPeriodic, int32& amplitude)
202{
203 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
204 {
205 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_CALC_PERIODIC);
206 std::list<AuraScript::EffectCalcPeriodicHandler>::iterator effEndItr = (*scritr)->DoEffectCalcPeriodic.end(), effItr = (*scritr)->DoEffectCalcPeriodic.begin();
207 for (; effItr != effEndItr; ++effItr)
208 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
209 effItr->Call(*scritr, aurEff, isPeriodic, amplitude);
210
211 (*scritr)->_FinishScriptCall();
212 }
213}
214
216{
217 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
218 {
219 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_CALC_SPELLMOD);
220 std::list<AuraScript::EffectCalcSpellModHandler>::iterator effEndItr = (*scritr)->DoEffectCalcSpellMod.end(), effItr = (*scritr)->DoEffectCalcSpellMod.begin();
221 for (; effItr != effEndItr; ++effItr)
222 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
223 effItr->Call(*scritr, aurEff, spellMod);
224
225 (*scritr)->_FinishScriptCall();
226 }
227}
228
229void Aura::CallScriptEffectAbsorbHandlers(AuraEffect* aurEff, AuraApplication const* aurApp, DamageInfo& dmgInfo, uint32& absorbAmount, bool& defaultPrevented)
230{
231 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
232 {
233 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_ABSORB, aurApp);
234 std::list<AuraScript::EffectAbsorbHandler>::iterator effEndItr = (*scritr)->OnEffectAbsorb.end(), effItr = (*scritr)->OnEffectAbsorb.begin();
235 for (; effItr != effEndItr; ++effItr)
236
237 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
238 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
239
240 if (!defaultPrevented)
241 defaultPrevented = (*scritr)->_IsDefaultActionPrevented();
242
243 (*scritr)->_FinishScriptCall();
244 }
245}
246
247void Aura::CallScriptEffectAfterAbsorbHandlers(AuraEffect* aurEff, AuraApplication const* aurApp, DamageInfo& dmgInfo, uint32& absorbAmount)
248{
249 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
250 {
251 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_AFTER_ABSORB, aurApp);
252 std::list<AuraScript::EffectAbsorbHandler>::iterator effEndItr = (*scritr)->AfterEffectAbsorb.end(), effItr = (*scritr)->AfterEffectAbsorb.begin();
253 for (; effItr != effEndItr; ++effItr)
254 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
255 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
256
257 (*scritr)->_FinishScriptCall();
258 }
259}
260
261void Aura::CallScriptEffectManaShieldHandlers(AuraEffect* aurEff, AuraApplication const* aurApp, DamageInfo& dmgInfo, uint32& absorbAmount, bool& /*defaultPrevented*/)
262{
263 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
264 {
265 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_MANASHIELD, aurApp);
266 std::list<AuraScript::EffectManaShieldHandler>::iterator effEndItr = (*scritr)->OnEffectManaShield.end(), effItr = (*scritr)->OnEffectManaShield.begin();
267 for (; effItr != effEndItr; ++effItr)
268 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
269 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
270
271 (*scritr)->_FinishScriptCall();
272 }
273}
274
276{
277 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
278 {
279 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_AFTER_MANASHIELD, aurApp);
280 std::list<AuraScript::EffectManaShieldHandler>::iterator effEndItr = (*scritr)->AfterEffectManaShield.end(), effItr = (*scritr)->AfterEffectManaShield.begin();
281 for (; effItr != effEndItr; ++effItr)
282 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
283 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
284
285 (*scritr)->_FinishScriptCall();
286 }
287}
288
289void Aura::CallScriptEffectSplitHandlers(AuraEffect* aurEff, AuraApplication const* aurApp, DamageInfo& dmgInfo, uint32& splitAmount)
290{
291 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
292 {
293 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_SPLIT, aurApp);
294 std::list<AuraScript::EffectSplitHandler>::iterator effEndItr = (*scritr)->OnEffectSplit.end(), effItr = (*scritr)->OnEffectSplit.begin();
295 for (; effItr != effEndItr; ++effItr)
296 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
297 effItr->Call(*scritr, aurEff, dmgInfo, splitAmount);
298
299 (*scritr)->_FinishScriptCall();
300 }
301}
302
304{
305 bool result = true;
306 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
307 {
308 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_CHECK_PROC, aurApp);
309 std::list<AuraScript::CheckProcHandler>::iterator hookItrEnd = (*scritr)->DoCheckProc.end(), hookItr = (*scritr)->DoCheckProc.begin();
310 for (; hookItr != hookItrEnd; ++hookItr)
311 result &= hookItr->Call(*scritr, eventInfo);
312
313 (*scritr)->_FinishScriptCall();
314 }
315
316 return result;
317}
318
320{
321 bool prepare = true;
322 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
323 {
324 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_PREPARE_PROC, aurApp);
325 std::list<AuraScript::AuraProcHandler>::iterator effEndItr = (*scritr)->DoPrepareProc.end(), effItr = (*scritr)->DoPrepareProc.begin();
326 for (; effItr != effEndItr; ++effItr)
327 effItr->Call(*scritr, eventInfo);
328
329 if (prepare)
330 prepare = !(*scritr)->_IsDefaultActionPrevented();
331
332 (*scritr)->_FinishScriptCall();
333 }
334
335 return prepare;
336}
337
339{
340 bool handled = false;
341 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
342 {
343 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_PROC, aurApp);
344 std::list<AuraScript::AuraProcHandler>::iterator hookItrEnd = (*scritr)->OnProc.end(), hookItr = (*scritr)->OnProc.begin();
345 for (; hookItr != hookItrEnd; ++hookItr)
346 hookItr->Call(*scritr, eventInfo);
347
348 handled |= (*scritr)->_IsDefaultActionPrevented();
349 (*scritr)->_FinishScriptCall();
350 }
351
352 return handled;
353}
354
356{
357 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
358 {
359 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_AFTER_PROC, aurApp);
360 std::list<AuraScript::AuraProcHandler>::iterator hookItrEnd = (*scritr)->AfterProc.end(), hookItr = (*scritr)->AfterProc.begin();
361 for (; hookItr != hookItrEnd; ++hookItr)
362 hookItr->Call(*scritr, eventInfo);
363
364 (*scritr)->_FinishScriptCall();
365 }
366}
367
369{
370 bool preventDefault = false;
371 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
372 {
373 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_PROC, aurApp);
374 std::list<AuraScript::EffectProcHandler>::iterator effEndItr = (*scritr)->OnEffectProc.end(), effItr = (*scritr)->OnEffectProc.begin();
375 for (; effItr != effEndItr; ++effItr)
376 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
377 effItr->Call(*scritr, aurEff, eventInfo);
378
379 if (!preventDefault)
380 preventDefault = (*scritr)->_IsDefaultActionPrevented();
381
382 (*scritr)->_FinishScriptCall();
383 }
384 return preventDefault;
385}
386
388{
389 for (std::list<AuraScript*>::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
390 {
391 (*scritr)->_PrepareScriptCall(AURA_SCRIPT_HOOK_EFFECT_AFTER_PROC, aurApp);
392 std::list<AuraScript::EffectProcHandler>::iterator effEndItr = (*scritr)->AfterEffectProc.end(), effItr = (*scritr)->AfterEffectProc.begin();
393 for (; effItr != effEndItr; ++effItr)
394 if (effItr->IsEffectAffected(m_spellInfo, aurEff->GetEffIndex()))
395 effItr->Call(*scritr, aurEff, eventInfo);
396
397 (*scritr)->_FinishScriptCall();
398 }
399}
std::int32_t int32
Definition Define.h:73
std::uint32_t uint32
Definition Define.h:77
#define SF_LOG_DEBUG(filterType__,...)
Definition Log.h:134
#define sScriptMgr
Definition ScriptMgr.h:764
AuraEffectHandleModes
@ AURA_SCRIPT_HOOK_EFFECT_CALC_PERIODIC
@ AURA_SCRIPT_HOOK_EFFECT_CALC_AMOUNT
@ AURA_SCRIPT_HOOK_EFFECT_REMOVE
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_MANASHIELD
@ AURA_SCRIPT_HOOK_PREPARE_PROC
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_APPLY
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_REMOVE
@ AURA_SCRIPT_HOOK_AFTER_PROC
@ AURA_SCRIPT_HOOK_CHECK_AREA_TARGET
@ AURA_SCRIPT_HOOK_EFFECT_MANASHIELD
@ AURA_SCRIPT_HOOK_PROC
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_ABSORB
@ AURA_SCRIPT_HOOK_DISPEL
@ AURA_SCRIPT_HOOK_EFFECT_APPLY
@ AURA_SCRIPT_HOOK_EFFECT_PERIODIC
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_PROC
@ AURA_SCRIPT_HOOK_EFFECT_ABSORB
@ AURA_SCRIPT_HOOK_EFFECT_PROC
@ AURA_SCRIPT_HOOK_EFFECT_SPLIT
@ AURA_SCRIPT_HOOK_EFFECT_CALC_SPELLMOD
@ AURA_SCRIPT_HOOK_AFTER_DISPEL
@ AURA_SCRIPT_HOOK_CHECK_PROC
@ AURA_SCRIPT_HOOK_EFFECT_UPDATE_PERIODIC
uint32 GetEffIndex() const
void CallScriptEffectAbsorbHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount, bool &defaultPrevented)
void CallScriptDispel(DispelInfo *dispelInfo)
void CallScriptEffectCalcSpellModHandlers(AuraEffect const *aurEff, SpellModifier *&spellMod)
std::list< AuraScript * > m_loadedScripts
Definition SpellAuras.h:228
bool CallScriptCheckAreaTargetHandlers(Unit *target)
bool CallScriptEffectRemoveHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
void CallScriptEffectCalcAmountHandlers(AuraEffect const *aurEff, int32 &amount, bool &canBeRecalculated)
bool CallScriptEffectPeriodicHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp)
void CallScriptAfterProcHandlers(AuraApplication const *aurApp, ProcEventInfo &eventInfo)
bool CallScriptPrepareProcHandlers(AuraApplication const *aurApp, ProcEventInfo &eventInfo)
void CallScriptAfterEffectApplyHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
bool CallScriptCheckProcHandlers(AuraApplication const *aurApp, ProcEventInfo &eventInfo)
bool CallScriptEffectApplyHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
void CallScriptAfterEffectRemoveHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
bool CallScriptEffectProcHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp, ProcEventInfo &eventInfo)
void CallScriptAfterEffectProcHandlers(AuraEffect const *aurEff, AuraApplication const *aurApp, ProcEventInfo &eventInfo)
bool CallScriptProcHandlers(AuraApplication const *aurApp, ProcEventInfo &eventInfo)
void CallScriptEffectAfterAbsorbHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount)
void CallScriptEffectManaShieldHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount, bool &defaultPrevented)
SpellInfo const *const m_spellInfo
Definition SpellAuras.h:232
void CallScriptEffectSplitHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &splitAmount)
void CallScriptEffectCalcPeriodicHandlers(AuraEffect const *aurEff, bool &isPeriodic, int32 &amplitude)
void CallScriptEffectUpdatePeriodicHandlers(AuraEffect *aurEff)
void CallScriptEffectAfterManaShieldHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount)
void CallScriptAfterDispel(DispelInfo *dispelInfo)
Definition Unit.h:1367