141 { 517.4877f, 400.7993f, 112.7837f },
142 { 468.4435f, 401.1062f, 118.5379f }
166 for (std::list<uint64>::const_iterator itr =
Channelers.begin(); itr !=
Channelers.end(); ++itr)
168 Channeler->DespawnOrUnsummon();
170 for (std::list<uint64>::const_iterator itr =
Spawners.begin(); itr !=
Spawners.end(); ++itr)
200 if (Akama->IsAlive())
224 me->AddThreat(Akama, 10000000.0f);
232 float moveSpeed = 0.2f;
260 if (!Akama->IsAlive())
265 std::list<Creature*> ChannelerList;
268 if (!ChannelerList.empty())
269 for (std::list<Creature*>::const_iterator itr = ChannelerList.begin(); itr != ChannelerList.end(); ++itr)
272 if ((*itr)->isDead())
276 std::list<Creature*> SpawnerList;
279 if (!SpawnerList.empty())
280 for (std::list<Creature*>::const_iterator itr = SpawnerList.begin(); itr != SpawnerList.end(); ++itr)
281 Spawners.push_back((*itr)->GetGUID());
299 for (std::list<uint64>::const_iterator itr =
Channelers.begin(); itr !=
Channelers.end(); ++itr)
305 for (std::list<uint64>::const_iterator itr =
Spawners.begin(); itr !=
Spawners.end(); ++itr)
333 me->DeleteThreatList();
335 me->GetMotionMaster()->MoveTargetedHome();
340 Akama->DespawnOrUnsummon();
342 for (std::list<uint64>::const_iterator itr =
Channelers.begin(); itr !=
Channelers.end(); ++itr)
344 Channeler->DespawnOrUnsummon();
346 for (std::list<uint64>::const_iterator itr =
Spawners.begin(); itr !=
Spawners.end(); ++itr)
359 if (
me->IsWithinDist(Akama, 2.0f,
false))
362 me->GetMotionMaster()->Clear(
true);
363 me->GetMotionMaster()->MoveIdle();
371 for (std::list<uint64>::const_iterator itr =
Spawners.begin(); itr !=
Spawners.end(); ++itr)
430 if (Shade->IsAlive())
432 me->GetMotionMaster()->Clear(
true);
433 me->GetMotionMaster()->MoveIdle();
478 me->SetFacingTo(3.118662f);
523 player->CLOSE_GOSSIP_MENU();
639 if (
me->GetPositionY() < 400.0f)
747 me->GetMotionMaster()->MovePoint(0, Shade->GetPositionX(), Shade->GetPositionY(), Shade->GetPositionZ(),
false);
765 me->DespawnOrUnsummon(5000);
796 me->SetFacingToObject(Shade);
818 if (
me->IsWithinDist(Shade, 20.0f,
false))
821 me->GetMotionMaster()->Clear(
false);
822 me->GetMotionMaster()->MovePoint(1,
me->GetPositionX() +
frand (-8.0f, 8.0f),
me->GetPositionY() +
frand (-8.0f, 8.0f),
me->GetPositionZ(),
false);
871 me->DespawnOrUnsummon(5000);
961 me->DespawnOrUnsummon(5000);
1041 me->DespawnOrUnsummon(5000);
1123 me->DespawnOrUnsummon(5000);
@ CURRENT_CHANNELED_SPELL
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_NPC_EMOTESTATE
float frand(float min, float max)
static const Locations AkamaWP[13]
@ SETDATA_START_ATTACK_AKAMA
@ SETDATA_DESPAWN_ALL_SPAWNS
@ NPC_ASHTONGUE_ELEMENTALIST
@ NPC_ASHTONGUE_SPIRITBINDER
@ NPC_ASHTONGUE_CHANNELER
@ NPC_CREATURE_SPAWNER_AKAMA
@ SPELL_SUMMON_ASHTONGUE_DEFENDER
@ SPELL_SUMMON_ASHTONGUE_SORCERER
@ SPELL_SHADE_SOUL_CHANNEL
@ SPELL_DEBILITATING_POISON
@ SPELL_SHADE_OF_AKAMA_TRIGGER
@ SPELL_SHADE_SOUL_CHANNEL_2
@ SPELL_DESTRUCTIVE_POISON
@ SPELL_DEBILITATING_STRIKE
@ SPELL_AKAMA_SOUL_EXPEL_CHANNEL
@ SPELL_AKAMA_SOUL_CHANNEL
@ SPELL_SPIRITBINDER_SPIRIT_HEAL
void AddSC_boss_shade_of_akama()
static Location AkamaWP[]
@ EVENT_SUMMON_ASHTONGUE_DEFENDER
@ EVENT_START_ATTACK_AKAMA
@ EVENT_DESTRUCTIVE_POISON
@ EVENT_FIND_CHANNELERS_SPAWNERS
@ EVENT_DEBILITATING_POISON
@ EVENT_SUMMON_ASHTONGUE_SORCERER
@ EVENT_DEBILITATING_STRIKE
@ EVENT_SET_CHANNELERS_SPAWNERS
CreatureScript(const char *name)
static Creature * GetCreature(WorldObject const &u, uint64 guid)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
void DoCastVictim(uint32 spellId, bool triggered=false)
static Creature * GetCreature(WorldObject &object, uint64 guid)
InstanceScript * GetInstanceScript()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_ashtongue_channeler()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_ashtongue_elementalist()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_ashtongue_spiritbinder()
npc_creature_generator_akama()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool HealthBelowPct(uint32 pct) const
ScriptedAI(Creature *creature)
void AttackStart(Unit *) OVERRIDE
void SetData(uint32 data, uint32 value) OVERRIDE
std::list< uint64 > Spawners
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
std::list< uint64 > Channelers
void EnterCombat(Unit *) OVERRIDE
bool HasKilledAkamaAndReseting
InstanceScript * instance
void JustDied(Unit *) OVERRIDE
void AttackStart(Unit *who) OVERRIDE
boss_shade_of_akamaAI(Creature *creature)
npc_akamaAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void sGossipSelect(Player *player, uint32, uint32 action) OVERRIDE
void JustDied(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
InstanceScript * instance
InstanceScript * instance
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_ashtongue_channelerAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void AttackStart(Unit *) OVERRIDE
void IsSummonedBy(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void JustDied(Unit *) OVERRIDE
InstanceScript * instance
npc_ashtongue_defenderAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
InstanceScript * instance
npc_ashtongue_elementalistAI(Creature *creature)
void IsSummonedBy(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void JustDied(Unit *) OVERRIDE
void IsSummonedBy(Unit *) OVERRIDE
npc_ashtongue_rogueAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void EnterCombat(Unit *) OVERRIDE
void IsSummonedBy(Unit *) OVERRIDE
void AttackStart(Unit *who) OVERRIDE
InstanceScript * instance
void EnterCombat(Unit *) OVERRIDE
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_ashtongue_sorcererAI(Creature *creature)
InstanceScript * instance
npc_ashtongue_spiritbinderAI(Creature *creature)
void IsSummonedBy(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
InstanceScript * instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustSummoned(Creature *summon) OVERRIDE
void SetData(uint32 data, uint32 value) OVERRIDE
npc_creature_generator_akamaAI(Creature *creature)