133 events.
Repeat(31500ms, 39300ms);
140 events.
Repeat(32400ms, 34s);
292 aqusirr->AI()->EnterEvadeMode(why);
543 for (
uint8 i = 0; i < 5; ++i)
584 static constexpr float MAX_DISTANCE = 40.0f;
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ ENCOUNTER_FRAME_DISENGAGE
float frand(float min, float max)
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
Creature * GetClosestCreatureWithOptions(WorldObject *source, float maxSearchRange, FindCreatureOptions const &options)
@ SPELL_EFFECT_TRIGGER_ACTION_SET
@ AURA_EFFECT_HANDLE_REAL
@ AURA_REMOVE_BY_ENEMY_SPELL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
#define SpellEffectFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ CURRENT_CHANNELED_SPELL
void AddSC_boss_aqusirr()
constexpr Position EruptingWatersSummonPosition1
constexpr Position EruptingWatersSummonPosition2
constexpr Position RequiemOfTheAbyssPosition
constexpr Position EruptingWatersSummonPosition3
@ EVENT_GRASP_FROM_THE_DEPTHS
@ SPELL_REQUIEM_OF_THE_ABYSS_PERIODIC
@ SPELL_CONVERSATION_ALLIANCE
@ SPELL_GRASP_FROM_THE_DEPTHS_SUMMON
@ SPELL_GRASP_FROM_THE_DEPTHS_SELECTOR
@ SPELL_REQUIEM_OF_THE_ABYSS
@ SPELL_CHOKING_BRINE_MISSILE_2
@ SPELL_SURGING_RUSH_DAMAGE
@ SPELL_ERUPTING_WATERS_DAMAGE
@ SPELL_SURGING_RUSH_SELECTOR
@ SPELL_CONVERSATION_HORDE
@ SPELL_REQUIEM_OF_THE_ABYSS_KNOCKBACK
@ SPELL_GRASP_FROM_THE_DEPTHS_DAMAGE
@ SPELL_CHOKING_BRINE_MISSILE
@ SPELL_ERUPTING_WATERS_SPLIT
@ SPELL_ERUPTING_WATERS_AQUALING
Position const CenterPosition
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
ObjectGuid const & GetGUID() const
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void SetBoundary(CreatureBoundary const *boundary, bool negativeBoundaries=false)
void SetUnkillable(bool unkillable)
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
bool IsInEvadeMode() const
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
Team GetTeamInInstance() const
virtual bool SetBossState(uint32 id, EncounterState state)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
Creature * GetCreature(uint32 type)
CreatureBoundary const * GetBossBoundary(uint32 id) const
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn=false, bool force=false, std::vector< WorldObject * > *spawnedObjects=nullptr)
bool IsHeroicOrHigher() const
uint32 GetPlayersCountExceptGMs() const
bool IsGameMaster() const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Creature * GetHitCreature() const
SpellEffectValue GetEffectValue() const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
TaskScheduler & Schedule(duration_t time, task_handler_t task)
TaskScheduler & Update()
Update the scheduler to the current time.
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual void DoAction(int32 param)
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCast(uint32 spellId)
void ClearUnitState(uint32 f)
bool IsWithinMeleeRange(Unit const *obj) const
void ApplyMovementForce(ObjectGuid id, Position origin, float magnitude, MovementForceType type, Position direction={}, ObjectGuid transportGuid=ObjectGuid::Empty)
void SetHealth(uint64 val)
uint64 CountPctFromMaxHealth(float pct) const
void PlayOneShotAnimKitId(uint16 animKitId)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
void AddUnitState(uint32 f)
bool HealthBelowPctDamaged(float pct, uint32 damage) const
void RemoveMovementForce(ObjectGuid id)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Spell * GetCurrentSpell(CurrentSpellTypes spellType) const
void MovePosition(Position &pos, float dist, float angle, float maxHeightChange=6.0f) const
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void SetDest(SpellDestination &dest)
void SetDest(SpellDestination &dest)
void SetDest(SpellDestination &dest)
void HandleDamage(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleHitTarget(SpellEffIndex)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void SetDest(SpellDestination &dest)
bool Validate(SpellInfo const *) override
void HandleActionSet(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
void Schedule(Creature *me, EventMap &events)
void Execute(Creature *me, EventMap &events, uint32 eventId)
#define RegisterShrineOfTheStormCreatureAI(ai_name)
@ NPC_SHRINE_OF_THE_STORM_DUMMY
@ NPC_LORD_SONGSTORM_AQUSIRR
float GetAbsoluteAngle(float x, float y) const
constexpr void GetPosition(float &x, float &y) const
void Relocate(Position const &pos)
void OnUnitEnter(Unit *unit) override
at_aqusirr_intro(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
at_aqusirr_surging_rush(AreaTrigger *areatrigger)
void OnUnitExit(Unit *unit, AreaTriggerExitReason) override
at_aqusirr_undertow(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
void JustAppeared() override
void JustDied(Unit *) override
boss_aqusirr_aqualing(Creature *creature)
void UpdateAI(uint32 diff) override
void EnterEvadeMode(EvadeReason why) override
void JustEngagedWith(Unit *) override
void JustAppeared() override
void JustDied(Unit *) override
void EnterEvadeMode(EvadeReason) override
boss_aqusirr(Creature *creature)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustEngagedWith(Unit *who) override
void ToggleSplit(bool toggle)
uint8 _aqualingDefeatedCount
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
npc_aqusirr_intro_lord_stormsong(Creature *creature)
void DoAction(int32 action) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override