31 if (!(*itr)->_Load(
this))
33 std::list<AuraScript*>::iterator bitr = itr;
39 SF_LOG_DEBUG(
"spells",
"Aura::LoadScripts: Script `%s` for aura `%u` is loaded now", (*itr)->_GetScriptName()->c_str(),
m_spellInfo->Id);
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);
55 (*scritr)->_FinishScriptCall();
65 std::list<AuraScript::AuraDispelHandler>::iterator hookItrEnd = (*scritr)->OnDispel.end(), hookItr = (*scritr)->OnDispel.begin();
66 for (; hookItr != hookItrEnd; ++hookItr)
67 hookItr->Call(*scritr, dispelInfo);
69 (*scritr)->_FinishScriptCall();
78 std::list<AuraScript::AuraDispelHandler>::iterator hookItrEnd = (*scritr)->AfterDispel.end(), hookItr = (*scritr)->AfterDispel.begin();
79 for (; hookItr != hookItrEnd; ++hookItr)
80 hookItr->Call(*scritr, dispelInfo);
82 (*scritr)->_FinishScriptCall();
88 bool preventDefault =
false;
92 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->OnEffectApply.end(), effItr = (*scritr)->OnEffectApply.begin();
93 for (; effItr != effEndItr; ++effItr)
95 effItr->Call(*scritr, aurEff, mode);
98 preventDefault = (*scritr)->_IsDefaultActionPrevented();
100 (*scritr)->_FinishScriptCall();
103 return preventDefault;
108 bool preventDefault =
false;
112 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->OnEffectRemove.end(), effItr = (*scritr)->OnEffectRemove.begin();
113 for (; effItr != effEndItr; ++effItr)
115 effItr->Call(*scritr, aurEff, mode);
118 preventDefault = (*scritr)->_IsDefaultActionPrevented();
120 (*scritr)->_FinishScriptCall();
122 return preventDefault;
130 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->AfterEffectApply.end(), effItr = (*scritr)->AfterEffectApply.begin();
131 for (; effItr != effEndItr; ++effItr)
133 effItr->Call(*scritr, aurEff, mode);
135 (*scritr)->_FinishScriptCall();
144 std::list<AuraScript::EffectApplyHandler>::iterator effEndItr = (*scritr)->AfterEffectRemove.end(), effItr = (*scritr)->AfterEffectRemove.begin();
145 for (; effItr != effEndItr; ++effItr)
147 effItr->Call(*scritr, aurEff, mode);
149 (*scritr)->_FinishScriptCall();
155 bool preventDefault =
false;
159 std::list<AuraScript::EffectPeriodicHandler>::iterator effEndItr = (*scritr)->OnEffectPeriodic.end(), effItr = (*scritr)->OnEffectPeriodic.begin();
160 for (; effItr != effEndItr; ++effItr)
162 effItr->Call(*scritr, aurEff);
165 preventDefault = (*scritr)->_IsDefaultActionPrevented();
167 (*scritr)->_FinishScriptCall();
170 return preventDefault;
178 std::list<AuraScript::EffectUpdatePeriodicHandler>::iterator effEndItr = (*scritr)->OnEffectUpdatePeriodic.end(), effItr = (*scritr)->OnEffectUpdatePeriodic.begin();
179 for (; effItr != effEndItr; ++effItr)
181 effItr->Call(*scritr, aurEff);
183 (*scritr)->_FinishScriptCall();
192 std::list<AuraScript::EffectCalcAmountHandler>::iterator effEndItr = (*scritr)->DoEffectCalcAmount.end(), effItr = (*scritr)->DoEffectCalcAmount.begin();
193 for (; effItr != effEndItr; ++effItr)
195 effItr->Call(*scritr, aurEff, amount, canBeRecalculated);
197 (*scritr)->_FinishScriptCall();
206 std::list<AuraScript::EffectCalcPeriodicHandler>::iterator effEndItr = (*scritr)->DoEffectCalcPeriodic.end(), effItr = (*scritr)->DoEffectCalcPeriodic.begin();
207 for (; effItr != effEndItr; ++effItr)
209 effItr->Call(*scritr, aurEff, isPeriodic, amplitude);
211 (*scritr)->_FinishScriptCall();
220 std::list<AuraScript::EffectCalcSpellModHandler>::iterator effEndItr = (*scritr)->DoEffectCalcSpellMod.end(), effItr = (*scritr)->DoEffectCalcSpellMod.begin();
221 for (; effItr != effEndItr; ++effItr)
223 effItr->Call(*scritr, aurEff, spellMod);
225 (*scritr)->_FinishScriptCall();
234 std::list<AuraScript::EffectAbsorbHandler>::iterator effEndItr = (*scritr)->OnEffectAbsorb.end(), effItr = (*scritr)->OnEffectAbsorb.begin();
235 for (; effItr != effEndItr; ++effItr)
238 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
240 if (!defaultPrevented)
241 defaultPrevented = (*scritr)->_IsDefaultActionPrevented();
243 (*scritr)->_FinishScriptCall();
252 std::list<AuraScript::EffectAbsorbHandler>::iterator effEndItr = (*scritr)->AfterEffectAbsorb.end(), effItr = (*scritr)->AfterEffectAbsorb.begin();
253 for (; effItr != effEndItr; ++effItr)
255 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
257 (*scritr)->_FinishScriptCall();
266 std::list<AuraScript::EffectManaShieldHandler>::iterator effEndItr = (*scritr)->OnEffectManaShield.end(), effItr = (*scritr)->OnEffectManaShield.begin();
267 for (; effItr != effEndItr; ++effItr)
269 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
271 (*scritr)->_FinishScriptCall();
280 std::list<AuraScript::EffectManaShieldHandler>::iterator effEndItr = (*scritr)->AfterEffectManaShield.end(), effItr = (*scritr)->AfterEffectManaShield.begin();
281 for (; effItr != effEndItr; ++effItr)
283 effItr->Call(*scritr, aurEff, dmgInfo, absorbAmount);
285 (*scritr)->_FinishScriptCall();
294 std::list<AuraScript::EffectSplitHandler>::iterator effEndItr = (*scritr)->OnEffectSplit.end(), effItr = (*scritr)->OnEffectSplit.begin();
295 for (; effItr != effEndItr; ++effItr)
297 effItr->Call(*scritr, aurEff, dmgInfo, splitAmount);
299 (*scritr)->_FinishScriptCall();
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);
313 (*scritr)->_FinishScriptCall();
325 std::list<AuraScript::AuraProcHandler>::iterator effEndItr = (*scritr)->DoPrepareProc.end(), effItr = (*scritr)->DoPrepareProc.begin();
326 for (; effItr != effEndItr; ++effItr)
327 effItr->Call(*scritr, eventInfo);
330 prepare = !(*scritr)->_IsDefaultActionPrevented();
332 (*scritr)->_FinishScriptCall();
340 bool handled =
false;
344 std::list<AuraScript::AuraProcHandler>::iterator hookItrEnd = (*scritr)->OnProc.end(), hookItr = (*scritr)->OnProc.begin();
345 for (; hookItr != hookItrEnd; ++hookItr)
346 hookItr->Call(*scritr, eventInfo);
348 handled |= (*scritr)->_IsDefaultActionPrevented();
349 (*scritr)->_FinishScriptCall();
360 std::list<AuraScript::AuraProcHandler>::iterator hookItrEnd = (*scritr)->AfterProc.end(), hookItr = (*scritr)->AfterProc.begin();
361 for (; hookItr != hookItrEnd; ++hookItr)
362 hookItr->Call(*scritr, eventInfo);
364 (*scritr)->_FinishScriptCall();
370 bool preventDefault =
false;
374 std::list<AuraScript::EffectProcHandler>::iterator effEndItr = (*scritr)->OnEffectProc.end(), effItr = (*scritr)->OnEffectProc.begin();
375 for (; effItr != effEndItr; ++effItr)
377 effItr->Call(*scritr, aurEff, eventInfo);
380 preventDefault = (*scritr)->_IsDefaultActionPrevented();
382 (*scritr)->_FinishScriptCall();
384 return preventDefault;
392 std::list<AuraScript::EffectProcHandler>::iterator effEndItr = (*scritr)->AfterEffectProc.end(), effItr = (*scritr)->AfterEffectProc.begin();
393 for (; effItr != effEndItr; ++effItr)
395 effItr->Call(*scritr, aurEff, eventInfo);
397 (*scritr)->_FinishScriptCall();
#define SF_LOG_DEBUG(filterType__,...)
@ 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_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
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
void CallScriptEffectSplitHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &splitAmount)
void CallScriptEffectCalcPeriodicHandlers(AuraEffect const *aurEff, bool &isPeriodic, int32 &litude)
void CallScriptEffectUpdatePeriodicHandlers(AuraEffect *aurEff)
void CallScriptEffectAfterManaShieldHandlers(AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount)
void CallScriptAfterDispel(DispelInfo *dispelInfo)