181 muru->AI()->EnterEvadeMode();
193 muru->DisappearAndDie();
206 std::list<Creature*> portals;
209 portal->RemoveAllAuras();
240 entropius->AI()->EnterEvadeMode();
329 switch (spellInfo->
Id)
383 DoCastAOE(SPELL_DARKFIEND_DAMAGE, false);
384 me->DisappearAndDie();
421 muru->AI()->JustSummoned(
me);
474 me->SetReactState(REACT_AGGRESSIVE);
475 DoCast(SPELL_BLACKHOLE_SUMMON_VISUAL_2);
476 if (Unit* victim = ObjectAccessor::GetUnit(*me, _instance->GetGuidData(DATA_PLAYER_GUID)))
478 context.Repeat(Milliseconds(1200));
481 DoCast(SPELL_BLACKHOLE_SUMMON_VISUAL);
482 context.Repeat(Seconds(2));
485 DoCast(SPELL_BLACKHOLE_PASSIVE);
486 DoCast(SPELL_BLACK_HOLE_VISUAL_2);
555 target->AttackStop();
556 target->StopMoving();
558 target->DespawnOrUnsummon(3s);
First const & RAND(First const &first, Second const &second, Rest const &... rest)
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
std::chrono::minutes Minutes
Minutes shorthand typedef.
uint32 urand(uint32 min, uint32 max)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ AURA_EFFECT_HANDLE_REAL
@ AURA_REMOVE_BY_ENEMY_SPELL
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
@ SPELL_OPEN_PORTAL_PERIODIC
@ SPELL_ENTROPIUS_COSMETIC_SPAWN
@ SPELL_SUMMON_DARKFIEND_E
@ SPELL_SUMMON_DARK_FIEND_1
@ TRANSFORM_VISUAL_MISSILE_2
@ SPELL_BLACKHOLE_PASSIVE
@ SPELL_SUMMON_VOID_SENTINEL_SUMMONER
@ SPELL_SUMMON_BLOOD_ELVES_SCRIPT
@ SPELL_NEGATIVE_ENERGY_PERIODIC
@ SPELL_SUMMON_DARK_FIEND_3
@ SPELL_SUMMON_DARK_FIEND_6
@ SPELL_DARKNESS_PERIODIC
@ SPELL_SUMMON_FURY_MAGE_2
@ TRANSFORM_VISUAL_MISSILE_1
@ SPELL_BLACK_HOLE_VISUAL_2
@ SPELL_SUMMON_BLOOD_ELVES_PERIODIC
@ SPELL_SUMMON_VOID_SENTINEL
@ SPELL_BLACKHOLE_SUMMON_VISUAL_2
@ SPELL_SUMMON_DARK_FIEND_7
@ SPELL_SUMMON_BERSERKER_2
@ SPELL_SUMMON_VOID_SENTINEL_SUMMONER_VISUAL
@ SPELL_NEGATIVE_ENERGY_PERIODIC_E
@ SPELL_SUMMON_VOID_SPAWN
@ SPELL_SUMMON_DARK_FIEND_5
@ SPELL_TRANSFORM_VISUAL_MISSILE
@ SPELL_SUMMON_DARK_FIEND_4
@ SPELL_SHADOW_PULSE_PERIODIC
@ SPELL_SUMMON_DARK_FIEND_2
@ SPELL_SUMMON_DARK_FIEND_0
@ SPELL_BLACKHOLE_SUMMON_VISUAL
uint32 const SummonDarkFiendSpells[MAX_SUMMON_DARK_FIEND]
uint32 const SummonBloodElvesSpells[MAX_SUMMON_BLOOD_ELVES]
uint32 GetTickNumber() const
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustSummoned(Creature *summon) override
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void SetDisplayFromModel(uint32 modelIdx)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void AddEvent(BasicEvent *event, Milliseconds e_time, bool set_addtime=true)
Milliseconds CalculateTime(Milliseconds t_offset) const
Creature * GetCreature(uint32 type)
static ObjectGuid GetGUID(Object const *o)
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
static bool ValidateSpellEffect(std::initializer_list< std::pair< uint32, SpellEffIndex > > effects)
HookList< CastHandler > AfterCast
HookList< EffectHandler > OnEffectHitTarget
void Summon(Creature const *summon)
TaskContext & Repeat(std::chrono::duration< Rep, Period > duration)
TaskScheduler::repeated_t GetRepeatCounter() const
Returns the repeat counter which increases every time the task is repeated.
TaskScheduler & Schedule(std::chrono::duration< Rep, Period > time, task_handler_t task)
TaskScheduler & Update(success_t const &callback=nullptr)
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void SetUninteractible(bool apply)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
VoidSpawnSummon(Creature *owner)
bool Execute(uint64, uint32)
InstanceScript * GetInstanceScript() const
void GetCreatureListWithEntryInGrid(Container &creatureContainer, uint32 entry, float maxSearchRange=250.0f) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool IsWithinDist(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void PeriodicTick(AuraEffect const *aurEff)
bool Validate(SpellInfo const *spellInfo) override
void OnPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
void SetCombatMovement(bool allowMovement)
void ScheduleTasks() override
void JustSummoned(Creature *summon) override
boss_entropius(Creature *creature)
void UpdateAI(uint32 diff) override
void EnterEvadeMode(EvadeReason) override
void JustDied(Unit *) override
void JustEngagedWith(Unit *who) override
ObjectGuid _entropiusGUID
boss_muru(Creature *creature)
void JustSummoned(Creature *summon) override
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void ScheduleTasks() override
void EnterEvadeMode(EvadeReason) override
npc_blackhole(Creature *creature)
void UpdateAI(uint32 diff) override
InstanceScript * _instance
void IsSummonedBy(WorldObject *summoner) override
bool CanAIAttack(Unit const *) const override
npc_dark_fiend(Creature *creature)
void UpdateAI(uint32 diff) override
void JustSummoned(Creature *summon) override
npc_muru_portal(Creature *creature)
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void IsSummonedBy(WorldObject *) override
npc_void_sentinel(Creature *creature)
void JustDied(Unit *) override
void JustEngagedWith(Unit *) override
InstanceScript * _instance
#define RegisterSunwellPlateauCreatureAI(ai_name)