67 { 301.988f, -86.7465f, -24.4517f, 0.15708f },
68 { 320.750f, -63.6121f, -24.6361f, 4.88692f },
69 { 345.848f, -74.4559f, -24.6402f, 3.59538f },
70 { 343.584f, -103.631f, -24.5688f, 2.35619f },
71 { 316.274f, -108.877f, -24.6027f, 1.25664f }
129 for (
uint8 i = 0; i<5; ++i)
132 if (who && channeler && !channeler->
IsInCombat())
139 for (
uint8 i = 0; i < 5; ++i)
142 if (channeler && channeler->
IsAlive())
159 for (i = 0; i < 5; ++i)
170 for (
uint8 i = 0; i < 5; ++i)
173 if (!channeler || channeler->
isDead())
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
@ UNIT_FLAG_NON_ATTACKABLE
#define RegisterBloodFurnaceCreatureAI(ai_name)
@ DATA_KELIDAN_THE_BREAKER
Position const ShadowmoonChannelers[5]
@ SPELL_SHADOW_BOLT_VOLLEY
@ SPELL_SHADOW_BOLT_VOLLEY_H
void AddSC_boss_kelidan_the_breaker()
void JustEngagedWith(Unit *who) override
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void SetReactState(ReactStates st)
void SetImmuneToNPC(bool apply) override
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
void DoMeleeAttackIfReady()
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
virtual void AttackStart(Unit *)
SpellCastResult DoCast(uint32 spellId)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool IsNonMeleeSpellCast(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
Aura * AddAura(uint32 spellId, Unit *target)
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const
void AttackStart(Unit *) override
void DoTeleportAll(float x, float y, float z, float o)
void DoStartMovement(Unit *target, float distance=0.0f, float angle=0.0f)
void ChannelerDied(Unit *killer)
void KilledUnit(Unit *) override
void JustDied(Unit *) override
boss_kelidan_the_breaker(Creature *creature)
ObjectGuid GetChanneled(Creature *channeler1)
void ChannelerEngaged(Unit *who)
uint32 ShadowVolley_Timer
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *who) override
npc_shadowmoon_channeler(Creature *creature)
void JustEngagedWith(Unit *who) override
void UpdateAI(uint32 diff) override
uint32 MarkOfShadow_Timer
void JustDied(Unit *killer) override