#define RegisterSpellScript(spell_script)
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectUpdatePeriodicFn(F, I, N)
@ SPELL_OPTIC_LINK_LEVEL_3
@ SPELL_OPTIC_LINK_LEVEL_1
@ SPELL_OPTIC_LINK_LEVEL_2
uint32 GetTickNumber() const
SpellEffectInfo const & GetSpellEffectInfo() const
void SetAmount(int32 amount)
void PreventDefaultAction()
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectUpdatePeriodicHandler > OnEffectUpdatePeriodic
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustReachedHome() override
TaskContext & Repeat(std::chrono::duration< _Rep, _Period > const &duration)
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
TaskScheduler & Async(std::function< void()> const &callable)
TaskScheduler & Update(success_t const &callback=EmptyCallback)
void DoMeleeAttackIfReady()
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCast(uint32 spellId)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
virtual void SetData(uint32, uint32)
PrepareAuraScript(spell_moragg_optic_link)
void OnUpdate(AuraEffect *aurEff)
void OnPeriodic(AuraEffect const *aurEff)
PrepareAuraScript(spell_moragg_ray)
void OnPeriodic(AuraEffect const *aurEff)
void JustEngagedWith(Unit *who) override
boss_moragg(Creature *creature)
void JustReachedHome() override
void UpdateAI(uint32 diff) override
void ScheduleTasks() override
#define RegisterVioletHoldCreatureAI(ai_name)