76 std::vector<Unit*> targets;
78 auto addTargetIfValid = [
this, &targets, summoner](
CombatReference* ref)
mutable
80 Unit* enemy = ref->GetOther(summoner);
82 targets.push_back(enemy);
86 addTargetIfValid(pair.second);
90 addTargetIfValid(pair.second);
92 for (
Unit* target : targets)
First const & RAND(First const &first, Second const &second, Rest const &... rest)
uint32 urand(uint32 min, uint32 max)
uint32 urandms(uint32 min, uint32 max)
#define RegisterCreatureAI(ai_name)
std::unordered_map< ObjectGuid, PvPCombatReference * > const & GetPvPCombatRefs() const
std::unordered_map< ObjectGuid, CombatReference * > const & GetPvECombatRefs() const
float GetAttackDistance(Unit const *player) const
bool CanCreatureAttack(Unit const *victim, bool force=true) const
Unit * GetSummonerUnit() const
void FixateTarget(Unit *target)
Unit * GetFixateTarget() const
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
ThreatManager & GetThreatManager()
bool HasBreakableByDamageCrowdControlAura(Unit *excludeCasterChannel=nullptr) const
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
uint32 GetBaseAttackTime(WeaponAttackType att) const
TempSummon * ToTempSummon()
void SetBaseAttackTime(WeaponAttackType att, uint32 val)
void EngageWithTarget(Unit *who)
void SetMaxHealth(uint64 val)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
CombatManager & GetCombatManager()
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
@ SPELL_HUNTER_CRIPPLING_POISON
@ SPELL_HUNTER_DEADLY_POISON_PASSIVE
@ SPELL_HUNTER_MIND_NUMBING_POISON
void AddSC_hunter_pet_scripts()
void MoveInLineOfSight(Unit *) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
void JustAppeared() override
npc_pet_hunter_snake_trap(Creature *creature)