49 std::list<Unit*> targets;
53 for (
Unit* target : targets)
77 if (!owner || owner != caster)
std::chrono::seconds Seconds
Seconds shorthand typedef.
#define RegisterCreatureAI(ai_name)
@ UNIT_FLAG_NON_ATTACKABLE
void InitializeAI() override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
virtual bool CanAIAttack(Unit const *) const
ObjectGuid GetOwnerGUID() const override
MotionMaster * GetMotionMaster()
bool IsInCombatWith(Unit const *who) const
bool Attack(Unit *victim, bool meleeAttack)
bool SetCanFly(bool enable)
void SetSpeedRate(UnitMoveType mtype, float rate)
void SetUnitFlag(UnitFlags flags)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
@ SPELL_DK_SUMMON_GARGOYLE_2
@ SPELL_DK_SUMMON_GARGOYLE_1
@ SPELL_DK_DISMISS_GARGOYLE
void AddSC_deathknight_pet_scripts()
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void InitializeAI() override
void JustDied(Unit *) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_pet_dk_ebon_gargoyle(Creature *creature)
bool CanAIAttack(Unit const *target) const override
npc_pet_dk_guardian(Creature *creature)