135#define ERROR_KJ_NOT_SUMMONED "TSCR ERROR: Unable to summon Kil'Jaeden for some reason"
138#define FLOOR_Z 28.050388f
139#define SHIELD_ORB_Z 45.000f
174 {1682.045f, 631.299f, 5.936f, 0.0f},
175 {1684.099f, 618.848f, 0.589f, 0.0f},
176 {1694.170f, 612.272f, 1.416f, 0.0f},
182 {1698.900f, 627.870f},
245 me->SetDisableGravity(
true);
249 for (
uint8 i = 0; i < 4; ++i)
277 for (
uint8 i = 0; i < 4; ++i)
291 for (
uint8 i = 0; i < 4; ++i)
297 pOrb->setActive(
true);
309 pOrb->setActive(
true);
333 for (
uint8 i = 0; i < 4; ++i)
340 pOrb->setActive(
true);
427 switch (summoned->GetEntry())
433 summoned->SetDisableGravity(
true);
439 summoned->AddThreat(
me->GetVictim(), 1.0f);
456 for (
uint8 i = 0; i < 3; ++i)
588 summoned->SetLevel(
me->getLevel());
590 summoned->setFaction(
me->getFaction());
642 for (
uint8 i = 0; i < 4; ++i)
647 target->GetPosition(x, y, z);
650 pSinisterReflection->SetDisplayId(target->GetDisplayId());
651 pSinisterReflection->AI()->AttackStart(target);
716 if (!
me->IsNonMeleeSpellCasted(
false))
724 if (!
me->IsNonMeleeSpellCasted(
false))
726 Unit* pRandomPlayer = NULL;
729 for (
uint8 z = 0; z < 6; ++z)
739 SF_LOG_ERROR(
"scripts",
"try to cast SPELL_LEGION_LIGHTNING on invalid target");
746 if (!
me->IsNonMeleeSpellCasted(
false))
766 if (!
me->IsNonMeleeSpellCasted(
false))
780 if (!
me->IsNonMeleeSpellCasted(
false))
823 for (
uint8 z = 0; z < 6; ++z)
920 summoned->setFaction(
me->getFaction());
921 summoned->SetLevel(
me->getLevel());
930 pControl->AddThreat(who, 1.0f);
932 me->InterruptNonMeleeSpells(
true);
946 if (!
me->IsInCombat())
971 for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
975 pPortal->AddThreat(unit, 1.0f);
1014 summoned->setFaction(
me->getFaction());
1015 summoned->SetLevel(
me->getLevel());
1060 if (damage >
me->GetHealth())
1071 me->AddThreat(
me->GetVictim(), 10000000.0f);
1081 else if (
me->IsWithinDistInMap(
me->GetVictim(), 3))
1175 me->SetDisableGravity(
true);
1177 uiTimer = std::rand() % 1000 + 500;
1192 y =
my -
r * std::sin(
c);
1193 x =
mx -
r * std::cos(
c);
1197 y =
my +
r * std::sin(
c);
1198 x =
mx +
r * std::cos(
c);
1220 uiTimer = std::rand() % 1000 + 500;
1279 me->SetCanDualWield(
true);
1286 me->SetCanDualWield(
true);
1289 me->SetCanDualWield(
true);
1300 uiTimer[1] = std::rand() % 4000 + 2000;
1308 uiTimer[1] = std::rand() % 10000 + 8000;
1313 uiTimer[2] = std::rand() % 6000 + 4000;
1315 if (
me->IsWithinMeleeRange(
me->GetVictim(), 6))
1320 uiTimer[0] = std::rand() % 8000 + 6000;
1329 uiTimer[1] = std::rand() % 4000 + 2000;
1337 uiTimer[1] = std::rand() % 5000 + 3000;
1342 uiTimer[2] = std::rand() % 4000 + 2000;
1350 uiTimer[1] = std::rand() % 11000 + 9000;
1358 uiTimer[1] = std::rand() % 8000 + 6000;
1363 uiTimer[2] = std::rand() % 4000 + 2000;
1371 uiTimer[1] = std::rand() % 6000 + 4000;
1376 uiTimer[2] = std::rand() % 8000 + 6000;
1384 uiTimer[1] = std::rand() % 6000 + 4000;
1392 uiTimer[1] = std::rand() % 6000 + 4000;
1398 for (
uint8 i = 0; i < 3; ++i)
#define SF_LOG_DEBUG(filterType__,...)
#define SF_LOG_ERROR(filterType__,...)
@ TEMPSUMMON_MANUAL_DESPAWN
@ TEMPSUMMON_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_DEAD_DESPAWN
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_COMBAT_REACH
@ GAMEOBJECT_FIELD_FACTION_TEMPLATE
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]
@ SPELL_SHADOW_BOLT_VOLLEY
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
CreatureScript(const char *name)
GameObjectScript(const char *name)
std::list< HostileReference * > StorageType
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
virtual void InitializeAI()
void DoCastVictim(uint32 spellId, bool triggered=false)
void DoCastAOE(uint32 spellId, bool triggered=false)
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()
virtual uint64 GetData64(uint32) const
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipHello(Player *player, GameObject *go) OVERRIDE
go_orb_of_the_blue_flight()
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()
void GetPosition(float &x, float &y) 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, TempSummonType type, uint32 despawntime)
ScriptedAI(Creature *creature)
void SetRingOfBlueFlames()
boss_kalecgos_kjAI(Creature *creature)
GameObject * GetOrb(int32 index)
void EmpowerOrb(bool all)
InstanceScript * instance
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
void JustSummoned(Creature *summoned) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
boss_kiljaedenAI(Creature *creature)
InstanceScript * instance
void CastSinisterReflection()
void EnterCombat(Unit *) OVERRIDE
void ChangeTimers(bool status, uint32 WTimer)
void EnterEvadeMode() OVERRIDE
void JustDied(Unit *) OVERRIDE
void KilledUnit(Unit *) OVERRIDE
void InitializeAI() OVERRIDE
bool TimerIsDeactivated[10]
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_armageddonAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustSummoned(Creature *summoned) OVERRIDE
npc_felfire_portalAI(Creature *creature)
void JustSummoned(Creature *summoned) OVERRIDE
InstanceScript * instance
void EnterCombat(Unit *who) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_hand_of_the_deceiverAI(Creature *creature)
uint32 ShadowBoltVolleyTimer
uint32 FelfirePortalTimer
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void JustSummoned(Creature *summoned) OVERRIDE
void InitializeAI() OVERRIDE
npc_kiljaeden_controllerAI(Creature *creature)
InstanceScript * instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_shield_orbAI(Creature *creature)
void MovementInform(uint32 type, uint32) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_sinster_reflectionAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_volatile_felfire_fiendAI(Creature *creature)
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
@ CREATURE_SINISTER_REFLECTION
@ CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT
@ CREATURE_ARMAGEDDON_TARGET
@ CREATURE_FELFIRE_PORTAL
@ CREATURE_VOLATILE_FELFIRE_FIEND
@ CREATURE_HAND_OF_THE_DECEIVER
@ 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