109 if (done_by->GetGUID() !=
victimGUID && done_by->GetGUID() !=
me->GetGUID())
134 me->AddThreat(owner, 999999);
136 }
else if (owner && owner->
isDead())
182 for (
uint8 i = 0; i < 3; ++i)
218 me->SetCanDualWield(
true);
231 me->SetCorpseDelay(1000*60*60);
238 for (
uint8 i = 0; i < 3; ++i)
241 add->DisappearAndDie();
246 if (i == 0) {nx += 10; ny -= 5; o=2.5f;}
247 if (i == 1) {nx -= 8; ny -= 7; o=0.9f;}
248 if (i == 2) {nx -= 3; ny += 9; o=5.0f;}
260 if (!
me->GetVictim() &&
me->CanCreatureAttack(who))
265 float attackRadius =
me->GetAttackDistance(who);
266 if (
me->IsWithinDistInMap(who, attackRadius))
269 if (
me->HasInArc(
M_PI/2.0f, who) &&
me->IsWithinLOSInMap(who))
286 uint8 AliveChannelers = 0;
287 for (
uint8 i = 0; i < 3; ++i)
314 me->getThreatManager().addThreat(victim, 1);
337 for (
uint8 i=0; i<5; ++i)
343 if (creature && creature->
IsAlive())
356 for (
uint8 i=0; i<5; ++i)
364 if (unit_target && unit_target->
IsAlive())
390 pDemon->DespawnOrUnsummon();
424 me->GetMotionMaster()->Clear();
442 me->GetMotionMaster()->Clear();
443 me->GetMotionMaster()->MoveChase(
me->GetVictim());
449 me->InterruptNonMeleeSpells(
false);
489 if (!
me->GetVictim())
491 if (
me->IsWithinDist(
me->GetVictim(), 30))
496 if (
me->IsWithinDist(
me->GetVictim(), 30))
500 me->CastCustomSpell(
me->GetVictim(),
SPELL_CHAOS_BLAST, &damage, NULL, NULL,
false, NULL, NULL,
me->GetGUID());
508 std::vector<Unit*> TargetList;
509 for (ThreatContainer::StorageType::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)
513 TargetList.push_back(tempTarget);
516 for (std::vector<Unit*>::const_iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
518 if ((*itr) && (*itr)->IsAlive())
640 if (
me->IsWithinDist(
me->GetVictim(), 30))
646 if (
me->IsWithinDist(
me->GetVictim(), 30))
650 me->CastCustomSpell(
me->GetVictim(),
SPELL_CHAOS_BLAST, &damage, NULL, NULL,
false, NULL, NULL,
me->GetGUID());
697 if (leotheras && leotheras->
IsAlive())
704 me->InterruptNonMeleeSpells(
false);
722 if (leotheras && leotheras->
IsAlive())
768 Map* map =
me->GetMap();
772 if (
Player* i_pl = itr->GetSource())
774 bool isCasting =
false;
776 if (i_pl->GetCurrentSpell(i))
#define CREATURE_Z_ATTACK_RANGE
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ TEMPSUMMON_DEAD_DESPAWN
@ SPELL_SCHOOL_MASK_NORMAL
#define CURRENT_MAX_SPELL
@ CURRENT_CHANNELED_SPELL
@ UNIT_FIELD_VIRTUAL_ITEM_ID
@ SPELL_CONSUMING_MADNESS
@ SPELL_INSIDIOUS_WHISPER
void AddSC_boss_leotheras_the_blind()
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
CreatureScript(const char *name)
PlayerList const & GetPlayers() const
LinkedListHead::Iterator< MapReference const > const_iterator
std::list< HostileReference * > StorageType
virtual uint64 GetGUID(int32=0) const
virtual void SetGUID(uint64, int32=0)
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)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
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
boss_leotheras_the_blind()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_greyheart_spellbinder()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
@ DATA_LEOTHERAS_EVENT_STARTER
@ DATA_LEOTHERASTHEBLINDEVENT
float GetPositionZ() const
float GetPositionX() const
void GetPosition(float &x, float &y) const
float GetPositionY() const
bool HealthBelowPct(uint32 pct) const
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)
void AttackStart(Unit *) OVERRIDE
InstanceScript * instance
void CastConsumingMadness()
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
uint32 SwitchToDemon_Timer
void EnterCombat(Unit *) OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
uint64 SpellBinderGUID[3]
void MoveInLineOfSight(Unit *who) OVERRIDE
boss_leotheras_the_blindAI(Creature *creature)
uint32 SwitchToHuman_Timer
void JustRespawned() OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void JustDied(Unit *) OVERRIDE
npc_greyheart_spellbinderAI(Creature *creature)
void EnterCombat(Unit *who) OVERRIDE
uint64 GetGUID(int32 id) const OVERRIDE
void EnterCombat(Unit *) OVERRIDE
npc_inner_demonAI(Creature *creature)
void SetGUID(uint64 guid, int32 id) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
void DamageTaken(Unit *done_by, uint32 &damage) OVERRIDE