258 for (
uint8 i = 0; i < 3; ++i)
266 if (
me->IsDamageEnoughForLootingAndReward())
267 prince->LowerPlayerDamageReq(prince->GetMaxHealth());
268 killer->Kill(prince);
416 controller->AI()->SetData(0, 1);
436 me->GetPosition(&pos);
437 float maxRange =
me->GetDistance2d(summon);
438 float angle =
me->GetAngle(summon);
439 me->MovePositionToFirstCollision(pos, maxRange, angle);
457 me->AddThreat(attacker,
float(damage));
502 taldaram->AI()->EnterEvadeMode();
505 valanar->AI()->EnterEvadeMode();
633 controller->AI()->SetData(0, 1);
660 summon->AI()->SetGUID(target->
GetGUID());
676 me->AddThreat(attacker,
float(damage));
721 keleseth->AI()->EnterEvadeMode();
724 valanar->AI()->EnterEvadeMode();
818 me->SetHealth(
me->GetMaxHealth());
852 me->SetHealth(
me->GetMaxHealth());
857 controller->AI()->SetData(0, 1);
869 switch (summon->GetEntry())
878 summon->GetPosition(x, y, z);
879 float ground_Z = summon->GetMap()->GetHeight(summon->GetPhaseMask(), x, y, z,
true, 500.0f);
892 if (
me->IsInCombat())
915 me->AddThreat(attacker,
float(damage));
960 keleseth->AI()->EnterEvadeMode();
963 taldaram->AI()->EnterEvadeMode();
1046 me->SetDisableGravity(
true);
1049 me->SetVisible(
false);
1053 me->SetVisible(
true);
1062 if (!
me->IsWithinDistInMap(who, 35.0f,
false))
1081 me->SetVisible(
false);
1107 valanar->SetHealth(valanar->GetMaxHealth());
1169 if (target &&
me->Attack(target,
true))
1170 me->GetMotionMaster()->MoveChase(target, 1.0f);
1226 me->DespawnOrUnsummon(60000);
1237 me->GetMotionMaster()->MoveCharge(
_x,
_y,
me->GetPositionZ() + 100.0f,
me->GetSpeed(
MOVE_RUN), 0);
1251 me->SetVisible(
false);
1252 me->DespawnOrUnsummon(5000);
1298 if (
me->GetDistance(who) >= 15.0f)
1319 me->DeleteThreatList();
1320 me->AddThreat(attacker, 500000000.0f);
1331 if (
Unit* victim =
me->GetVictim())
1333 if (
me->GetDistance(victim) < 15.0f &&
1495 Position offset = {0.0f, 0.0f, 20.0f, 0.0f};
@ ENCOUNTER_FRAME_DISENGAGE
@ TEMPSUMMON_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
uint32 GUID_LOPART(uint64 x)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_AURA_PERIODIC_DUMMY
@ AURA_EFFECT_HANDLE_REAL
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ OBJECT_FIELD_DYNAMIC_FLAGS
T RoundToInterval(T &num, T floor, T ceil)
T CalculatePct(T base, U pct)
@ ACTION_FLAME_BALL_CHASE
@ ACTION_REMOVE_INVOCATION
@ ACTION_KINETIC_BOMB_JUMP
Position const triggerPos
@ POINT_KINETIC_BOMB_IMPACT
@ SPELL_SHADOW_RESONANCE_RESIST
@ SPELL_INVOCATION_OF_BLOOD_VALANAR
@ SPELL_INVOCATION_OF_BLOOD_TALDARAM
@ SPELL_BALL_OF_FLAMES_PERIODIC
@ SPELL_KINETIC_BOMB_TARGET
@ SPELL_FLAME_SPHERE_DEATH_EFFECT
@ SPELL_BALL_OF_FLAMES_VISUAL
@ SPELL_KINETIC_BOMB_KNOCKBACK
@ SPELL_FLAME_SPHERE_SPAWN_EFFECT
@ SPELL_EMPOWERED_SHADOW_LANCE
@ SPELL_SHADOW_PRISON_DUMMY
@ SPELL_OOC_INVOCATION_VISUAL
@ SPELL_BALL_OF_FLAMES_PROC
@ SPELL_KINETIC_BOMB_EXPLOSION
@ SPELL_GLITTERING_SPARKS
@ SPELL_INVOCATION_OF_BLOOD_KELESETH
@ SPELL_KINETIC_BOMB_VISUAL
@ SPELL_SHADOW_PRISON_DAMAGE
@ SPELL_SHOCK_VORTEX_PERIODIC
@ SPELL_SHADOW_RESONANCE_AURA
@ SPELL_SHOCK_VORTEX_DUMMY
@ SPELL_CONJURE_EMPOWERED_FLAME
@ SPELL_INVOCATION_VISUAL_ACTIVE
@ SPELL_EMPOWERED_SHOCK_VORTEX
void AddSC_boss_blood_prince_council()
Position const triggerEndPos
@ EMOTE_VALANAR_INVOCATION
@ SAY_TALDARAM_INVOCATION
@ EMOTE_TALDARAM_INVOCATION
@ SAY_KELESETH_INVOCATION
@ EMOTE_KELESETH_INVOCATION
@ EMOTE_VALANAR_SHOCK_VORTEX
Position const introFinalPos
@ EVENT_GLITTERING_SPARKS
@ EVENT_INVOCATION_OF_BLOOD
@ SPELL_FLAME_SPHERE_DEATH_EFFECT
@ SPELL_FLAME_SPHERE_SPAWN_EFFECT
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
HookList< EffectAbsorbHandler > OnEffectAbsorb
InstanceScript *const instance
BossAI(Creature *creature, uint32 bossId)
bool CheckBoundary(Unit *who)
virtual void MoveInLineOfSight(Unit *)
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
CreatureScript(const char *name)
void AbsorbDamage(uint32 amount)
static Creature * GetCreature(WorldObject const &u, uint64 guid)
static Player * GetPlayer(WorldObject const &, uint64 guid)
Creature * GetHitCreature()
WorldLocation const * GetExplTargetDest()
void SetExplTargetDest(WorldLocation &loc)
HookList< HitHandler > AfterHit
SpellInfo const * GetSpellInfo()
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
HookList< EffectHandler > OnEffectHitTarget
WorldLocation * GetHitDest()
void SetHitDamage(int32 damage)
HookList< HitHandler > BeforeHit
SpellScriptLoader(const char *name)
StandUpEvent(Creature &owner)
bool Execute(uint64, uint32)
virtual void DoAction(int32)
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)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
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)
uint32 GetMaxHealth() const
void SetHealth(uint32 val)
InstanceScript * GetInstanceScript()
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
boss_blood_council_controller()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_prince_keleseth_icc()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_prince_taldaram_icc()
boss_prince_valanar_icc()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_blood_queen_lana_thel()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
void HandleDummyTick(AuraEffect const *aurEff)
PrepareAuraScript(spell_blood_council_shadow_prison_AuraScript)
PrepareSpellScript(spell_blood_council_shadow_prison_SpellScript)
spell_blood_council_shadow_prison_damage()
SpellScript * GetSpellScript() const OVERRIDE
spell_blood_council_shadow_prison()
AuraScript * GetAuraScript() const OVERRIDE
PrepareSpellScript(spell_taldaram_ball_of_inferno_flame_SpellScript)
spell_taldaram_ball_of_inferno_flame()
SpellScript * GetSpellScript() const OVERRIDE
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_flame_ball_visual_AuraScript)
AuraScript * GetAuraScript() const OVERRIDE
spell_taldaram_flame_ball_visual()
PrepareSpellScript(spell_taldaram_glittering_sparks_SpellScript)
void HandleScript(SpellEffIndex effIndex)
spell_taldaram_glittering_sparks()
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_taldaram_summon_flame_ball_SpellScript)
void HandleScript(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const OVERRIDE
spell_taldaram_summon_flame_ball()
void HandleDummyTick(AuraEffect const *)
PrepareAuraScript(spell_valanar_kinetic_bomb_AuraScript)
void ChangeSummonPos(SpellEffIndex)
PrepareSpellScript(spell_valanar_kinetic_bomb_SpellScript)
PrepareAuraScript(spell_valanar_kinetic_bomb_absorb_AuraScript)
void OnAbsorb(AuraEffect *aurEff, DamageInfo &dmgInfo, uint32 &absorbAmount)
spell_valanar_kinetic_bomb_absorb()
AuraScript * GetAuraScript() const OVERRIDE
PrepareSpellScript(spell_valanar_kinetic_bomb_knockback_SpellScript)
spell_valanar_kinetic_bomb_knockback()
SpellScript * GetSpellScript() const OVERRIDE
AuraScript * GetAuraScript() const OVERRIDE
spell_valanar_kinetic_bomb()
SpellScript * GetSpellScript() const OVERRIDE
@ NPC_BALL_OF_INFERNO_FLAME
@ NPC_KINETIC_BOMB_TARGET
CreatureAI * GetIcecrownCitadelAI(Creature *creature)
@ LIGHT_S_HAMMER_TELEPORT
@ DATA_ORB_WHISPERER_ACHIEVEMENT
@ DATA_BLOOD_PRINCE_COUNCIL
@ DATA_BLOOD_PRINCES_CONTROL
@ DATA_PRINCE_TALDARAM_GUID
@ DATA_PRINCE_VALANAR_GUID
@ DATA_PRINCE_KELESETH_GUID
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const
void RelocateOffset(Position const &offset)
const T & RAID_MODE(const T &normal10, const T &normal25) const
ScriptedAI(Creature *creature)
void DoStartMovement(Unit *target, float distance=0.0f, float angle=0.0f)
InvocationData(uint64 _guid, uint32 _spellId, uint32 _textId, uint32 _visualSpell)
void SetData(uint32, uint32 data) OVERRIDE
boss_blood_council_controllerAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *who) OVERRIDE
struct boss_blood_council_controller::boss_blood_council_controllerAI::InvocationData _invocationOrder[3]
void JustReachedHome() OVERRIDE
void JustDied(Unit *killer) OVERRIDE
void JustRespawned() OVERRIDE
void DamageDealt(Unit *, uint32 &damage, DamageEffectType damageType) OVERRIDE
void JustDied(Unit *) OVERRIDE
boss_prince_kelesethAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void InitializeAI() OVERRIDE
void JustReachedHome() OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
void DoAction(int32 action) OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void DamageTaken(Unit *attacker, uint32 &damage) OVERRIDE
void DoAction(int32 action) OVERRIDE
void DamageTaken(Unit *attacker, uint32 &damage) OVERRIDE
void JustReachedHome() OVERRIDE
void DamageDealt(Unit *, uint32 &damage, DamageEffectType damageType) OVERRIDE
void MoveInLineOfSight(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
boss_prince_taldaramAI(Creature *creature)
void JustSummoned(Creature *summon) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
void JustDied(Unit *) OVERRIDE
void JustRespawned() OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void InitializeAI() OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
boss_prince_valanarAI(Creature *creature)
void DoAction(int32 action) OVERRIDE
void DamageDealt(Unit *, uint32 &damage, DamageEffectType damageType) OVERRIDE
void DamageTaken(Unit *attacker, uint32 &damage) OVERRIDE
void MoveInLineOfSight(Unit *) OVERRIDE
void JustReachedHome() OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
void InitializeAI() OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void JustRespawned() OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void DoAction(int32 action) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_ball_of_flameAI(Creature *creature)
void SetGUID(uint64 guid, int32) OVERRIDE
void MovementInform(uint32 type, uint32 id) OVERRIDE
void DamageDealt(Unit *, uint32 &damage, DamageEffectType damageType) OVERRIDE
InstanceScript * _instance
void MoveInLineOfSight(Unit *who) OVERRIDE
npc_blood_queen_lana_thelAI(Creature *creature)
void MovementInform(uint32 type, uint32 id) OVERRIDE
InstanceScript * _instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void DamageTaken(Unit *attacker, uint32 &) OVERRIDE
npc_dark_nucleusAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void MoveInLineOfSight(Unit *who) OVERRIDE
void EnterCombat(Unit *who) OVERRIDE
npc_kinetic_bombAI(Creature *creature)
void DoAction(int32 action) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================