148 essence->DespawnOrUnsummon();
165 if (
me->IsInCombat())
171 if (
me->GetDistance(who) > 50.0f)
179 me->AddThreat(who, 10000.0f);
192 float x =
Coords[random].x;
193 float y =
Coords[random].y;
213 for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
220 me->AddThreat(unit, threat);
236 if (
me->getThreatManager().getThreatList().empty())
351 }
else Timer -= diff;
414 if (damage >=
me->GetHealth())
443 if (threatlist.empty())
445 std::list<Unit*> targets;
446 ThreatContainer::StorageType::const_iterator itr = threatlist.begin();
447 for (; itr != threatlist.end(); ++itr)
451 targets.push_back(unit);
457 Unit* target = targets.front();
461 me->AddThreat(target, 1000000);
466 if (
me->IsInCombat())
543 if (damage >=
me->GetHealth())
552 int32 bp0 = damage / 2;
560 for (
uint8 i = 0; i < 3; ++i)
586 me->InterruptNonMeleeSpells(
false);
601 me->InterruptNonMeleeSpells(
false);
@ TEMPSUMMON_CORPSE_DESPAWN
@ TEMPSUMMON_DEAD_DESPAWN
@ SPELL_EFFECT_INTERRUPT_CAST
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_NPC_EMOTESTATE
@ DATA_RELIQUARY_OF_SOULS
void AddSC_boss_reliquary_of_souls()
static Position2d Coords[]
@ AURA_OF_SUFFERING_ARMOR
@ ESSENCE_OF_SUFFERING_PASSIVE
@ ESSENCE_OF_SUFFERING_PASSIVE2
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
CreatureScript(const char *name)
void MoveFollow(Unit *target, float dist, float angle, MovementSlot slot=MOTION_SLOT_ACTIVE)
static Creature * GetCreature(WorldObject const &u, uint64 guid)
bool HasFlag(uint16 index, uint32 flag) const
void SetUInt32Value(uint16 index, uint32 value)
std::list< HostileReference * > StorageType
float getThreat(Unit *victim, bool alsoSearchOfflineList=false)
ThreatContainer::StorageType const & getThreatList() const
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
void DoCastVictim(uint32 spellId, bool triggered=false)
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)
MotionMaster * GetMotionMaster()
static Creature * GetCreature(WorldObject &object, uint64 guid)
static Unit * GetUnit(WorldObject &object, uint64 guid)
ThreatManager & getThreatManager()
InstanceScript * GetInstanceScript()
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true) const
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_essence_of_suffering()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_reliquary_of_souls()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
void DoStartNoMovement(Unit *target)
void AttackStartNoMove(Unit *target)
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
ScriptedAI(Creature *creature)
void DoModifyThreatPercent(Unit *unit, int32 pct)
std::list< uint64 > SpiteTargetGUID
boss_essence_of_angerAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
void KilledUnit(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
boss_essence_of_desireAI(Creature *creature)
void DamageTaken(Unit *done_by, uint32 &damage) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void KilledUnit(Unit *) OVERRIDE
void SpellHit(Unit *, const SpellInfo *spell) OVERRIDE
void KilledUnit(Unit *) OVERRIDE
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
boss_essence_of_sufferingAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void EnterCombat(Unit *who) OVERRIDE
void JustDied(Unit *) OVERRIDE
void MoveInLineOfSight(Unit *who) OVERRIDE
boss_reliquary_of_soulsAI(Creature *creature)
void MergeThreatList(Creature *target)
void JustDied(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
npc_enslaved_soulAI(Creature *creature)