511 if (targets.size() <= 1)
514 std::list<WorldObject*> targetsCopy = targets;
517 return caster->GetVictim() != target;
520 if (!targetsCopy.empty())
523 targets = targetsCopy;
@ ENCOUNTER_FRAME_DISENGAGE
#define RegisterSpellScript(spell_script)
@ TARGET_UNIT_SRC_AREA_ENEMY
@ EMOTE_STATE_SPELL_CHANNEL_OMNI
#define SpellObjectAreaTargetSelectFn(F, I, N)
@ UNIT_FLAG_UNINTERACTIBLE
static constexpr float AUGH_DISTANCE_TO_BOSS
@ SAY_ANNOUNCE_APPEARANCE
static constexpr float SCENT_OF_BLOOD_THREAT_AMOUNT
void AddSC_boss_lockmaw()
@ POINT_AUGH_HOME_POSITION
@ POINT_PARALYTIC_BLOW_DART
@ EVENT_MOVE_TOWARDS_BOSS
@ EVENT_CHANNEL_DUST_FLAIL
@ EVENT_PARALYTIC_BLOW_DART
@ SPELL_RANDOM_AGGRO_TAUNT
@ SPELL_PARALYTIC_BLOW_DART
@ SPELL_DUST_FLAIL_PERIODIC
@ SPELL_DUST_FLAIL_CHANNELED
static Position const AughRespawnPosition
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetCorpseDelay(uint32 delay, bool ignoreCorpseDecayRatio=false)
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
bool IsInPhase(uint8 phase) const
void SetPhase(uint8 phase)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
Creature * GetCreature(uint32 type)
virtual ObjectGuid GetGuidData(uint32 type) const override
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< CastHandler > AfterCast
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
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)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
void SetEmoteState(Emote emote)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
void SelectTarget(std::list< WorldObject * > &targets)
void HandleCrocoliskSummoning()
bool Validate(SpellInfo const *) override
@ DATA_HEROIC_AUGH_DESPAWNED
@ DATA_SHUFFLE_ADD_STALKERS
#define RegisterLostCityOfTheTolvirAI(ai_name)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
void RandomResize(C &container, std::size_t requestedSize)
constexpr void SetOrientation(float orientation)
float GetAbsoluteAngle(float x, float y) const
constexpr void GetPosition(float &x, float &y) const
constexpr void Relocate(float x, float y)
constexpr float GetOrientation() const
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
LockmawAughAddType _aughAddType
void EnterEvadeMode(EvadeReason) override
void JustEngagedWith(Unit *who) override
bool CanAIAttack(Unit const *victim) const override
void JustDied(Unit *killer) override
void JustSummoned(Creature *summon) override
boss_lockmaw(Creature *creature)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void UpdateAI(uint32 diff) override
InstanceScript * _instance
void UpdateAI(uint32 diff) override
npc_lockmaw_augh_add(Creature *creature)
void MovementInform(uint32 motionType, uint32 pointId) override
void JustAppeared() override
void InitializeAI() override
InstanceScript * _instance
void EnterEvadeMode(EvadeReason) override
void JustAppeared() override
npc_lockmaw_augh_boss(Creature *creature)
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void InitializeAI() override
void MovementInform(uint32 motionType, uint32 pointId) override
npc_lockmaw_frenzied_crocolisk(Creature *creature)
void JustAppeared() override