438 magtheridon->AI()->JustSummoned(summon);
446 magtheridon->AI()->SummonedCreatureDespawn(summon);
495 DoCastSelf(SPELL_DEBRIS_VISUAL);
499 DoCastSelf(SPELL_DEBRIS_DAMAGE);
503 me->DespawnOrUnsummon();
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TARGET_UNIT_SRC_AREA_ENTRY
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG_UNINTERACTIBLE
@ SPELL_SHADOW_GRASP_CHANNELER
@ SPELL_SHADOW_BOLT_VOLLEY
@ SPELL_QUAKE_TARGET_SELECTOR
@ SPELL_SHADOW_GRASP_VISUAL
@ SPELL_SHADOW_CAGE_DUMMY
void AddSC_boss_magtheridon()
@ SUMMON_GROUP_CHANNELERS
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > AfterEffectApply
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void DoZoneInCombat(Creature *creature=nullptr)
void SetBoundary(CreatureBoundary const *boundary, bool negativeBoundaries=false)
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetRegenerateHealth(bool value)
void SetCorpseDelay(uint32 delay, bool ignoreCorpseDecayRatio=false)
void Repeat(Milliseconds time)
bool IsInPhase(PhaseIndex phase) const
void CancelEvent(EventId eventId)
void SetPhase(PhaseIndex phase)
void CancelEventGroup(GroupIndex group)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
virtual bool SetBossState(uint32 id, EncounterState state)
Creature * GetCreature(uint32 type)
CreatureBoundary const * GetBossBoundary(uint32 id) const
EncounterState GetBossState(uint32 id) const
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void DoZoneInCombat(uint32 entry=0)
TaskContext & Repeat(std::chrono::duration< _Rep, _Period > const &duration)
TaskScheduler::repeated_t GetRepeatCounter() const
Returns the repeat counter which increases every time the task is repeated.
TaskScheduler & CancelAll()
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
TaskScheduler & Update(success_t const &callback=EmptyCallback)
TaskScheduler & SetValidator(P &&predicate)
Sets a validator which is asked if tasks are allowed to be executed.
void DoMeleeAttackIfReady()
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual void InitializeAI()
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 DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void SetEmoteState(Emote emote)
uint32 GetAuraCount(uint32 spellId) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
void RemoveUnitFlag(UnitFlags flags)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
virtual void SetData(uint32, uint32)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
PrepareSpellScript(spell_magtheridon_blaze_target)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void FilterTargets(std::list< WorldObject * > &targets)
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_magtheridon_debris)
void OnPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_magtheridon_quake_initial)
void FilterTargets(std::list< WorldObject * > &targets)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_magtheridon_quake_target_selector)
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_magtheridon_shadow_grasp_cube)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_magtheridon_shadow_grasp_visual)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_magtheridon_shadow_grasp)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
@ NPC_HELLFIRE_CHANNELLER
#define RegisterMagtheridonsLairCreatureAI(ai_name)
void RandomResize(C &container, std::size_t requestedSize)
ScriptedAI(Creature *creature)
Unit * DoSelectBelowHpPctFriendlyWithEntry(uint32 entry, float range, uint8 hpPct=1, bool excludeSelf=true)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void DoAction(int32 action) override
boss_magtheridon(Creature *creature)
void EnterEvadeMode(EvadeReason) override
void KilledUnit(Unit *who) override
void UpdateAI(uint32 diff) override
void OnSpellStart(SpellInfo const *spellInfo) override
void JustEngagedWith(Unit *who) override
void JustAppeared() override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void JustDied(Unit *) override
void SummonedCreatureDies(Creature *summon, Unit *) override
npc_hellfire_channeler(Creature *creature)
void JustEngagedWith(Unit *) override
InstanceScript * _instance
void JustSummoned(Creature *summon) override
void InitializeAI() override
void EnterEvadeMode(EvadeReason) override
void SummonedCreatureDespawn(Creature *summon) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void InitializeAI() override
void JustAppeared() override