154#define SHIELD_ORB_Z 45.000f
189 {1682.949951f, 637.75000f, 28.0231f, 5.717090f},
190 {1684.699951f, 614.41998f, 28.0580f, 0.698392f},
191 {1707.609985f, 612.15002f, 28.0946f, 1.990370f}
197 {1698.900f, 627.870f},
242 return GetSunwellPlateauAI<boss_kalecgos_kjAI>(creature);
271 for (
uint8 i = 0; i < 4; ++i)
296 for (
uint8 i = 0; i < 4; ++i)
310 for (
uint8 i = 0; i < 4; ++i)
316 pOrb->setActive(
true);
317 pOrb->SetFarVisible(
true);
329 pOrb->setActive(
true);
330 pOrb->SetFarVisible(
true);
354 for (
uint8 i = 0; i < 4; ++i)
361 pOrb->setActive(
true);
362 pOrb->SetFarVisible(
true);
401 return GetSunwellPlateauAI<go_orb_of_the_blue_flightAI>(go);
413 return GetSunwellPlateauAI<npc_kiljaeden_controllerAI>(creature);
492 for (
uint8 i = 0; i < 3; ++i)
674 for (
uint8 i = 0; i < 4; ++i)
679 target->GetPosition(x, y, z);
682 pSinisterReflection->SetDisplayId(target->GetDisplayId());
683 pSinisterReflection->AI()->AttackStart(target);
755 Unit* pRandomPlayer =
nullptr;
758 for (
uint8 z = 0; z < 6; ++z)
768 TC_LOG_ERROR(
"scripts",
"try to cast SPELL_LEGION_LIGHTNING on invalid target");
850 Unit* target =
nullptr;
851 for (
uint8 z = 0; z < 6; ++z)
914 return GetSunwellPlateauAI<boss_kiljaedenAI>(creature);
997 AddThreat(ref->GetVictim(), 1.0f, pPortal);
1005 return GetSunwellPlateauAI<npc_hand_of_the_deceiverAI>(creature);
1017 return GetSunwellPlateauAI<npc_felfire_portalAI>(creature);
1071 return GetSunwellPlateauAI<npc_volatile_felfire_fiendAI>(creature);
1136 return GetSunwellPlateauAI<npc_armageddonAI>(creature);
1198 return GetSunwellPlateauAI<npc_shield_orbAI>(creature);
1243 y =
my -
r * std::sin(
c);
1244 x =
mx -
r * std::cos(
c);
1248 y =
my +
r * std::sin(
c);
1249 x =
mx +
r * std::cos(
c);
1254 c += float(
M_PI)/32;
1255 if (
c >= 2 *
float(
M_PI))
c = 0;
1293 return GetSunwellPlateauAI<npc_sinster_reflectionAI>(creature);
1448 for (
uint8 i = 0; i < 3; ++i)
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
@ TEMPSUMMON_DEAD_DESPAWN
@ TEMPSUMMON_MANUAL_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
@ TEMPSUMMON_CORPSE_DESPAWN
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
@ UNIT_FLAG_NON_ATTACKABLE
void AddSC_boss_kiljaeden()
float ShieldOrbLocations[4][2]
@ SPELL_SHADOW_BOLT_VOLLEY
@ SPELL_ARMAGEDDON_VISUAL3
@ SPELL_DARKNESS_OF_A_THOUSAND_SOULS
@ SPELL_ARMAGEDDON_DAMAGE
@ SPELL_ARMAGEDDON_SUMMON_TRIGGER
@ SPELL_DARKNESS_OF_A_THOUSAND_SOULS_DAMAGE
@ SPELL_ARMAGEDDON_VISUAL
@ SPELL_RING_OF_BLUE_FLAMES
@ SPELL_SINISTER_REFLECTION
@ SPELL_DESTROY_ALL_DRAKES
@ SPELL_ARMAGEDDON_TRIGGER
@ SPELL_SR_HAMMER_OF_JUSTICE
@ SPELL_SACRIFICE_OF_ANVEENA
@ SPELL_SR_CURSE_OF_AGONY
@ SPELL_ARMAGEDDON_VISUAL2
@ SPELL_ANVEENA_ENERGY_DRAIN
@ SPELL_SHADOW_CHANNELING
@ SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT
@ SPELL_COPY_OFFHAND_WEAPON
Position DeceiverLocations[3]
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetCanDualWield(bool value) override
uint32 GetFaction() const override
void SetFaction(uint32 faction) override
virtual bool SetBossState(uint32 id, EncounterState state)
Creature * GetCreature(uint32 type)
virtual ObjectGuid GetGuidData(uint32 type) const override
EncounterState GetBossState(uint32 id) const
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
void Summon(Creature const *summon)
Trinity::IteratorPair< ThreatListIterator, std::nullptr_t > GetUnsortedThreatList() const
virtual void InitializeAI()
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)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
bool IsWithinMeleeRange(Unit const *obj) const
ThreatManager & GetThreatManager()
void SetFaction(uint32 faction) override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
bool IsNonMeleeSpellCast(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
void AddUnitState(uint32 f)
Unit * EnsureVictim() const
void SetCombatReach(float combatReach)
uint32 GetFaction() const override
void RemoveDynObject(uint32 spellId)
void SetLevel(uint8 lvl, bool sendUpdate=true)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void SetUnitFlag(UnitFlags flags)
void KillSelf(bool durabilityLoss=true, bool skipSettingDeathState=false)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
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)
void setActive(bool isActiveObject)
void SetFarVisible(bool on)
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
go_orb_of_the_blue_flight()
GameObjectAI * GetAI(GameObject *go) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_hand_of_the_deceiver()
CreatureAI * GetAI(Creature *creature) const override
npc_kiljaeden_controller()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_volatile_felfire_fiend()
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetPositionZ() const
void SetCombatMovement(bool allowMovement)
void DoTeleportTo(float x, float y, float z, uint32 time=0)
bool HealthBelowPct(uint32 pct) const
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, Milliseconds despawntime)
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
void SetRingOfBlueFlames()
boss_kalecgos_kjAI(Creature *creature)
GameObject * GetOrb(int32 index)
void EmpowerOrb(bool all)
void UpdateAI(uint32) override
InstanceScript * instance
boss_kiljaedenAI(Creature *creature)
InstanceScript * instance
void CastSinisterReflection()
void JustDied(Unit *) override
void EnterEvadeMode(EvadeReason why) override
void InitializeAI() override
void ChangeTimers(bool status, uint32 WTimer)
void JustSummoned(Creature *summoned) override
void UpdateAI(uint32 diff) override
void KilledUnit(Unit *) override
bool TimerIsDeactivated[10]
void JustEngagedWith(Unit *) override
bool OnGossipHello(Player *player) override
InstanceScript * instance
go_orb_of_the_blue_flightAI(GameObject *go)
npc_armageddonAI(Creature *creature)
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
npc_felfire_portalAI(Creature *creature)
void JustSummoned(Creature *summoned) override
void JustDied(Unit *) override
InstanceScript * instance
void JustSummoned(Creature *summoned) override
void JustEngagedWith(Unit *who) override
void UpdateAI(uint32 diff) override
npc_hand_of_the_deceiverAI(Creature *creature)
uint32 ShadowBoltVolleyTimer
uint32 FelfirePortalTimer
InstanceScript * instance
void JustSummoned(Creature *summoned) override
void InitializeAI() override
void UpdateAI(uint32 diff) override
npc_kiljaeden_controllerAI(Creature *creature)
InstanceScript * instance
void UpdateAI(uint32 diff) override
npc_shield_orbAI(Creature *creature)
void MovementInform(uint32 type, uint32) override
void UpdateAI(uint32 diff) override
npc_sinster_reflectionAI(Creature *creature)
void UpdateAI(uint32 diff) override
npc_volatile_felfire_fiendAI(Creature *creature)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
@ DATA_KILJAEDEN_CONTROLLER
@ DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4
@ DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1
@ DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2
@ DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3
@ NPC_POWER_OF_THE_BLUE_DRAGONFLIGHT
@ NPC_VOLATILE_FELFIRE_FIEND
@ NPC_SINISTER_REFLECTION
@ NPC_HAND_OF_THE_DECEIVER