144 if (!who || (!who->IsAlive()) || (who->GetGUID() ==
GhostGUID))
161 if (threatlist.empty())
163 ThreatContainer::StorageType::const_iterator itr = threatlist.begin();
164 std::list<Unit*> targets;
165 for (; itr != threatlist.end(); ++itr)
169 targets.push_back(unit);
172 Unit* target = targets.front();
173 if (target &&
me->IsWithinDistInMap(target,
me->GetAttackDistance(target)))
176 me->AI()->AttackStart(target);
268 me->GetMotionMaster()->Clear(
false);
296 switch (std::rand() % 1)
299 coord += rand()%radius;
302 coord -= rand()%radius;
314 ThreatContainer::StorageType::const_iterator i = threatlist.begin();
315 for (i = threatlist.begin(); i != threatlist.end(); ++i)
349 for (
uint8 i = 0; i < 4; ++i)
362 target =
me->GetVictim();
405 for (
uint8 i = 0; i < 2; ++i)
414 target =
me->GetVictim();
429 float Z = target->GetPositionZ();
430 Z =
me->GetMap()->GetHeight(
me->GetPhaseMask(), X, Y, Z);
449 target =
me->GetVictim();
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ SPELL_SCHOOL_MASK_NORMAL
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_NPC_EMOTESTATE
@ SPELL_PASSIVE_SHADOWFORM
@ CREATURE_SHADOWY_CONSTRUCT
void AddSC_boss_teron_gorefiend()
virtual void MoveInLineOfSight(Unit *)
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
bool IsInEvadeMode() const
CreatureScript(const char *name)
void MoveChase(Unit *target, float dist=0.0f, float angle=0.0f)
std::list< HostileReference * > StorageType
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
virtual void AttackStart(Unit *)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=NULL)
MotionMaster * GetMotionMaster()
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
static Creature * GetCreature(WorldObject &object, uint64 guid)
static Unit * GetUnit(WorldObject &object, uint64 guid)
InstanceScript * GetInstanceScript()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
float GetPositionZ() const
float GetPositionX() const
float GetPositionY() const
float DoGetThreat(Unit *unit)
ScriptedAI(Creature *creature)
void AttackStart(Unit *) OVERRIDE
void SetThreatList(Creature *blossom)
uint32 CrushingShadowsTimer
InstanceScript * instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 SummonDoomBlossomTimer
void KilledUnit(Unit *) OVERRIDE
float CalculateRandomLocation(float Loc, uint32 radius)
void JustDied(Unit *) OVERRIDE
boss_teron_gorefiendAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
void MoveInLineOfSight(Unit *who) OVERRIDE
uint32 ShadowOfDeathTimer
uint32 SummonShadowsTimer
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void MoveInLineOfSight(Unit *) OVERRIDE
void AttackStart(Unit *) OVERRIDE
npc_doom_blossomAI(Creature *creature)
void SetTeronGUID(uint64 guid)
void EnterCombat(Unit *) OVERRIDE
npc_shadowy_constructAI(Creature *creature)
void MoveInLineOfSight(Unit *who) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *) OVERRIDE