First const & RAND(First const &first, Second const &second, Rest const &... rest)
bool roll_chance_i(int chance)
@ UNIT_FLAG_UNINTERACTIBLE
static constexpr std::array< uint32, 3 > BeaconSpawnGroupsData
@ SPELL_ETHEREAL_APPRENTICE_FROSTBOLT
@ EVENT_ETHEREAL_APPRENTICE_FROSTBOLT
@ EVENT_ETHEREAL_APPRENTICE_FIREBOLT
@ SPELL_ETHEREAL_APPRENTICE_FIREBOLT
@ EVENT_SUMMON_APPRENTICE
void AddSC_boss_nexusprince_shaffar()
@ SPELL_SUMMON_APPRENTICE
@ SPELL_SUMMON_ETHEREAL_BEACON
@ SPELL_ETHEREAL_BEACON_VISUAL
void JustEngagedWith(Unit *who) override
void DoZoneInCombat(Creature *creature=nullptr)
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void Repeat(Milliseconds time)
void RescheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn=false, bool force=false, std::vector< WorldObject * > *spawnedObjects=nullptr)
void Summon(Creature const *summon)
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
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)
virtual void AttackStart(Unit *)
bool IsWithinMeleeRange(Unit const *obj) const
bool HasUnitState(const uint32 f) const
void SetUnitFlag(UnitFlags flags)
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
#define RegisterManaTombsCreatureAI(ai_name)
@ DATA_NEXUSPRINCE_SHAFFAR
T const & DUNGEON_MODE(T const &normal5, T const &heroic10) const
ScriptedAI(Creature *creature)
void JustSummoned(Creature *summoned) override
boss_nexusprince_shaffar(Creature *creature)
void OnSpellCast(SpellInfo const *spellInfo) override
void JustAppeared() override
void ExecuteEvent(uint32 eventId) override
void MoveInLineOfSight(Unit *who) override
void KilledUnit(Unit *) override
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void JustReachedHome() override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void EnterEvadeMode(EvadeReason) override
void JustEngagedWith(Unit *) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override