Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
boss_illidan.cpp File Reference
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "PassiveAI.h"
#include "black_temple.h"
#include "Player.h"
#include "SpellInfo.h"
Include dependency graph for boss_illidan.cpp:

Go to the source code of this file.

Classes

struct  Animation
class  boss_illidan_stormrage
struct  boss_illidan_stormrage::boss_illidan_stormrageAI
class  boss_maiev_shadowsong
struct  boss_maiev_shadowsong::boss_maievAI
class  gameobject_cage_trap
struct  Locations
class  npc_akama_illidan
struct  npc_akama_illidan::npc_akama_illidanAI
class  npc_blade_of_azzinoth
struct  npc_blade_of_azzinoth::blade_of_azzinothAI
class  npc_cage_trap_trigger
struct  npc_cage_trap_trigger::cage_trap_triggerAI
class  npc_flame_of_azzinoth
struct  npc_flame_of_azzinoth::flame_of_azzinothAI
class  npc_parasitic_shadowfiend
struct  npc_parasitic_shadowfiend::npc_parasitic_shadowfiendAI
class  npc_shadow_demon
struct  npc_shadow_demon::shadow_demonAI
struct  Yells

Macros

#define CENTER_X   676.740f
#define CENTER_Y   305.297f
#define CENTER_Z   353.192f
#define EMOTE_UNABLE_TO_SUMMON   "%s is unable to summon Maiev Shadowsong and enter Phase 4. Resetting Encounter."

Enumerations

enum  CreatureEntryIllidan {
  EMPTY = 0 , AKAMA = 22990 , ILLIDAN_STORMRAGE = 22917 , BLADE_OF_AZZINOTH = 22996 ,
  FLAME_OF_AZZINOTH = 22997 , MAIEV_SHADOWSONG = 23197 , SHADOW_DEMON = 23375 , DEMON_FIRE = 23069 ,
  FLAME_CRASH = 23336 , ILLIDAN_DOOR_TRIGGER = 23412 , SPIRIT_OF_OLUM = 23411 , SPIRIT_OF_UDALO = 23410 ,
  ILLIDARI_ELITE = 23226 , PARASITIC_SHADOWFIEND = 23498 , CAGE_TRAP_TRIGGER = 23292
}
enum  EventIllidan {
  EVENT_NULL = 0 , EVENT_BERSERK = 1 , EVENT_TAUNT = 2 , EVENT_SHEAR = 3 ,
  EVENT_FLAME_CRASH = 4 , EVENT_PARASITIC_SHADOWFIEND = 5 , EVENT_PARASITE_CHECK = 6 , EVENT_DRAW_SOUL = 7 ,
  EVENT_AGONIZING_FLAMES = 8 , EVENT_TRANSFORM_NORMAL = 9 , EVENT_ENRAGE = 10 , EVENT_FIREBALL = 2 ,
  EVENT_DARK_BARRAGE = 3 , EVENT_EYE_BLAST = 4 , EVENT_MOVE_POINT = 5 , EVENT_SHADOW_BLAST = 2 ,
  EVENT_FLAME_BURST = 3 , EVENT_SHADOWDEMON = 4 , EVENT_TRANSFORM_DEMON = 5 , EVENT_TALK_SEQUENCE = 2 ,
  EVENT_FLIGHT_SEQUENCE = 2 , EVENT_TRANSFORM_SEQUENCE = 2
}
enum  EventMaiev {
  EVENT_MAIEV_NULL = 0 , EVENT_MAIEV_STEALTH = 1 , EVENT_MAIEV_TAUNT = 2 , EVENT_MAIEV_SHADOW_STRIKE = 3 ,
  EVENT_MAIEV_THROW_DAGGER = 4 , EVENT_MAIEV_TRAP = 4
}
enum  Misc {
  FLAME_ENRAGE_DISTANCE = 30 , FLAME_CHARGE_DISTANCE = 50 , EQUIP_ID_MAIN_HAND = 32837 , EQUIP_ID_OFF_HAND = 32838 ,
  EQUIP_ID_MAIN_HAND_MAIEV = 44850 , MODEL_INVISIBLE = 11686 , MODEL_ILLIDAN = 21135 , MODEL_BLADE = 21431
}
enum  PhaseAkama {
  PHASE_AKAMA_NULL = 0 , PHASE_CHANNEL = 1 , PHASE_WALK = 2 , PHASE_TALK = 3 ,
  PHASE_FIGHT_ILLIDAN = 4 , PHASE_FIGHT_MINIONS = 5 , PHASE_RETURN = 6
}
enum  PhaseIllidan {
  PHASE_ILLIDAN_NULL = 0 , PHASE_NORMAL = 1 , PHASE_FLIGHT = 2 , PHASE_NORMAL_2 = 3 ,
  PHASE_DEMON = 4 , PHASE_NORMAL_MAIEV = 5 , PHASE_TALK_SEQUENCE = 6 , PHASE_FLIGHT_SEQUENCE = 7 ,
  PHASE_TRANSFORM_SEQUENCE = 8 , PHASE_ILLIDAN_MAX = 9
}
enum  Say {
  SAY_AKAMA_BEWARE = 0 , SAY_AKAMA_LEAVE = 1 , SAY_ILLIDAN_MINION = 0 , SAY_ILLIDAN_KILL = 1 ,
  SAY_ILLIDAN_TAKEOFF = 2 , SAY_ILLIDAN_SUMMONFLAMES = 3 , SAY_ILLIDAN_EYE_BLAST = 4 , SAY_ILLIDAN_MORPH = 5 ,
  SAY_ILLIDAN_ENRAGE = 6 , SAY_ILLIDAN_TAUNT = 7 , SAY_MAIEV_SHADOWSONG_TAUNT = 0 , EMOTE_AZZINOTH_GAZE = 0
}
enum  Spells {
  SPELL_SHEAR = 37335 , SPELL_FLAME_CRASH = 40832 , SPELL_DRAW_SOUL = 40904 , SPELL_PARASITIC_SHADOWFIEND = 41917 ,
  SPELL_PARASITIC_SHADOWFIEND2 = 41914 , SPELL_SUMMON_PARASITICS = 41915 , SPELL_AGONIZING_FLAMES = 40932 , SPELL_ENRAGE = 40683 ,
  SPELL_THROW_GLAIVE = 39635 , SPELL_THROW_GLAIVE2 = 39849 , SPELL_GLAIVE_RETURNS = 39873 , SPELL_FIREBALL = 40598 ,
  SPELL_DARK_BARRAGE = 40585 , SPELL_DEMON_TRANSFORM_1 = 40511 , SPELL_DEMON_TRANSFORM_2 = 40398 , SPELL_DEMON_TRANSFORM_3 = 40510 ,
  SPELL_DEMON_FORM = 40506 , SPELL_SHADOW_BLAST = 41078 , SPELL_FLAME_BURST = 41126 , SPELL_FLAME_BURST_EFFECT = 41131 ,
  SPELL_KNEEL = 39656 , SPELL_SHADOW_PRISON = 40647 , SPELL_DEATH = 41220 , SPELL_BERSERK = 45078 ,
  SPELL_DUAL_WIELD = 42459 , SPELL_SUMMON_MAIEV = 40403 , SPELL_FLAME_CRASH_EFFECT = 40836 , SPELL_SUMMON_SHADOWDEMON = 41117 ,
  SPELL_SHADOWFIEND_PASSIVE = 41913 , SPELL_SHADOW_DEMON_PASSIVE = 41079 , SPELL_CONSUME_SOUL = 41080 , SPELL_PARALYZE = 41083 ,
  SPELL_PURPLE_BEAM = 39123 , SPELL_AZZINOTH_CHANNEL = 39857 , SPELL_EYE_BLAST_TRIGGER = 40017 , SPELL_EYE_BLAST = 39908 ,
  SPELL_BLAZE_EFFECT = 40610 , SPELL_BLAZE_SUMMON = 40637 , SPELL_DEMON_FIRE = 40029 , SPELL_FLAME_BLAST = 40631 ,
  SPELL_CHARGE = 41581 , SPELL_FLAME_ENRAGE = 45078 , SPELL_AKAMA_DOOR_CHANNEL = 41268 , SPELL_DEATHSWORN_DOOR_CHANNEL = 41269 ,
  SPELL_AKAMA_DOOR_FAIL = 41271 , SPELL_HEALING_POTION = 40535 , SPELL_CHAIN_LIGHTNING = 40536 , SPELL_CAGE_TRAP_DUMMY = 40761 ,
  SPELL_CAGED = 40695 , SPELL_CAGE_TRAP_SUMMON = 40694 , SPELL_CAGE_TRAP_BEAM = 40713 , SPELL_TELEPORT_VISUAL = 41232 ,
  SPELL_SHADOW_STRIKE = 40685 , SPELL_THROW_DAGGER = 41152 , SPELL_FAN_BLADES = 39954
}

Functions

void AddSC_boss_illidan ()

Variables

static const Locations AkamaWP [13]
static const Yells Conversation [22]
static const Animation DemonTransformation [10]
static const Locations EyeBlast [2]
static const Locations GlaivePosition [4]
static const Locations HoverPosition [4]
static const EventIllidan MaxTimer [9]
static const Locations SpiritSpawns [2]

Macro Definition Documentation

◆ CENTER_X

#define CENTER_X   676.740f

◆ CENTER_Y

#define CENTER_Y   305.297f

◆ CENTER_Z

#define CENTER_Z   353.192f

◆ EMOTE_UNABLE_TO_SUMMON

#define EMOTE_UNABLE_TO_SUMMON   "%s is unable to summon Maiev Shadowsong and enter Phase 4. Resetting Encounter."

Enumeration Type Documentation

◆ CreatureEntryIllidan

Enumerator
EMPTY 
AKAMA 
ILLIDAN_STORMRAGE 
BLADE_OF_AZZINOTH 
FLAME_OF_AZZINOTH 
MAIEV_SHADOWSONG 
SHADOW_DEMON 
DEMON_FIRE 
FLAME_CRASH 
ILLIDAN_DOOR_TRIGGER 
SPIRIT_OF_OLUM 
SPIRIT_OF_UDALO 
ILLIDARI_ELITE 
PARASITIC_SHADOWFIEND 
CAGE_TRAP_TRIGGER 

Definition at line 130 of file boss_illidan.cpp.

◆ EventIllidan

Enumerator
EVENT_NULL 
EVENT_BERSERK 
EVENT_TAUNT 
EVENT_SHEAR 
EVENT_FLAME_CRASH 
EVENT_PARASITIC_SHADOWFIEND 
EVENT_PARASITE_CHECK 
EVENT_DRAW_SOUL 
EVENT_AGONIZING_FLAMES 
EVENT_TRANSFORM_NORMAL 
EVENT_ENRAGE 
EVENT_FIREBALL 
EVENT_DARK_BARRAGE 
EVENT_EYE_BLAST 
EVENT_MOVE_POINT 
EVENT_SHADOW_BLAST 
EVENT_FLAME_BURST 
EVENT_SHADOWDEMON 
EVENT_TRANSFORM_DEMON 
EVENT_TALK_SEQUENCE 
EVENT_FLIGHT_SEQUENCE 
EVENT_TRANSFORM_SEQUENCE 

Definition at line 175 of file boss_illidan.cpp.

◆ EventMaiev

enum EventMaiev
Enumerator
EVENT_MAIEV_NULL 
EVENT_MAIEV_STEALTH 
EVENT_MAIEV_TAUNT 
EVENT_MAIEV_SHADOW_STRIKE 
EVENT_MAIEV_THROW_DAGGER 
EVENT_MAIEV_TRAP 

Definition at line 205 of file boss_illidan.cpp.

◆ Misc

enum Misc
Enumerator
FLAME_ENRAGE_DISTANCE 
FLAME_CHARGE_DISTANCE 
EQUIP_ID_MAIN_HAND 
EQUIP_ID_OFF_HAND 
EQUIP_ID_MAIN_HAND_MAIEV 
MODEL_INVISIBLE 
MODEL_ILLIDAN 
MODEL_BLADE 

Definition at line 115 of file boss_illidan.cpp.

◆ PhaseAkama

enum PhaseAkama
Enumerator
PHASE_AKAMA_NULL 
PHASE_CHANNEL 
PHASE_WALK 
PHASE_TALK 
PHASE_FIGHT_ILLIDAN 
PHASE_FIGHT_MINIONS 
PHASE_RETURN 

Definition at line 164 of file boss_illidan.cpp.

◆ PhaseIllidan

Enumerator
PHASE_ILLIDAN_NULL 
PHASE_NORMAL 
PHASE_FLIGHT 
PHASE_NORMAL_2 
PHASE_DEMON 
PHASE_NORMAL_MAIEV 
PHASE_TALK_SEQUENCE 
PHASE_FLIGHT_SEQUENCE 
PHASE_TRANSFORM_SEQUENCE 
PHASE_ILLIDAN_MAX 

Definition at line 150 of file boss_illidan.cpp.

◆ Say

enum Say
Enumerator
SAY_AKAMA_BEWARE 
SAY_AKAMA_LEAVE 
SAY_ILLIDAN_MINION 
SAY_ILLIDAN_KILL 
SAY_ILLIDAN_TAKEOFF 
SAY_ILLIDAN_SUMMONFLAMES 
SAY_ILLIDAN_EYE_BLAST 
SAY_ILLIDAN_MORPH 
SAY_ILLIDAN_ENRAGE 
SAY_ILLIDAN_TAUNT 
SAY_MAIEV_SHADOWSONG_TAUNT 
EMOTE_AZZINOTH_GAZE 

Definition at line 28 of file boss_illidan.cpp.

◆ Spells

enum Spells
Enumerator
SPELL_SHEAR 
SPELL_FLAME_CRASH 
SPELL_DRAW_SOUL 
SPELL_PARASITIC_SHADOWFIEND 
SPELL_PARASITIC_SHADOWFIEND2 
SPELL_SUMMON_PARASITICS 
SPELL_AGONIZING_FLAMES 
SPELL_ENRAGE 
SPELL_THROW_GLAIVE 
SPELL_THROW_GLAIVE2 
SPELL_GLAIVE_RETURNS 
SPELL_FIREBALL 
SPELL_DARK_BARRAGE 
SPELL_DEMON_TRANSFORM_1 
SPELL_DEMON_TRANSFORM_2 
SPELL_DEMON_TRANSFORM_3 
SPELL_DEMON_FORM 
SPELL_SHADOW_BLAST 
SPELL_FLAME_BURST 
SPELL_FLAME_BURST_EFFECT 
SPELL_KNEEL 
SPELL_SHADOW_PRISON 
SPELL_DEATH 
SPELL_BERSERK 
SPELL_DUAL_WIELD 
SPELL_SUMMON_MAIEV 
SPELL_FLAME_CRASH_EFFECT 
SPELL_SUMMON_SHADOWDEMON 
SPELL_SHADOWFIEND_PASSIVE 
SPELL_SHADOW_DEMON_PASSIVE 
SPELL_CONSUME_SOUL 
SPELL_PARALYZE 
SPELL_PURPLE_BEAM 
SPELL_AZZINOTH_CHANNEL 
SPELL_EYE_BLAST_TRIGGER 
SPELL_EYE_BLAST 
SPELL_BLAZE_EFFECT 
SPELL_BLAZE_SUMMON 
SPELL_DEMON_FIRE 
SPELL_FLAME_BLAST 
SPELL_CHARGE 
SPELL_FLAME_ENRAGE 
SPELL_AKAMA_DOOR_CHANNEL 
SPELL_DEATHSWORN_DOOR_CHANNEL 
SPELL_AKAMA_DOOR_FAIL 
SPELL_HEALING_POTION 
SPELL_CHAIN_LIGHTNING 
SPELL_CAGE_TRAP_DUMMY 
SPELL_CAGED 
SPELL_CAGE_TRAP_SUMMON 
SPELL_CAGE_TRAP_BEAM 
SPELL_TELEPORT_VISUAL 
SPELL_SHADOW_STRIKE 
SPELL_THROW_DAGGER 
SPELL_FAN_BLADES 

Definition at line 48 of file boss_illidan.cpp.

Function Documentation

◆ AddSC_boss_illidan()

void AddSC_boss_illidan ( )

Definition at line 2222 of file boss_illidan.cpp.

References boss_illidan_stormrage::boss_illidan_stormrage().

Referenced by AddOutlandScripts().

Variable Documentation

◆ AkamaWP

const Locations AkamaWP[13]
static
Initial value:
=
{
{770.01f, 304.50f, 312.29f},
{780.66f, 304.50f, 319.74f},
{790.13f, 319.68f, 319.76f},
{787.17f, 347.38f, 341.42f},
{781.34f, 350.31f, 341.44f},
{762.60f, 361.06f, 353.60f},
{756.35f, 360.52f, 353.27f},
{743.82f, 342.21f, 353.00f},
{732.69f, 305.13f, 353.00f},
{738.11f, 365.44f, 353.00f},
{792.18f, 366.62f, 341.42f},
{796.84f, 304.89f, 319.76f},
{782.01f, 304.55f, 319.76f}
}

Definition at line 317 of file boss_illidan.cpp.

Referenced by npc_akama_illidan::npc_akama_illidanAI::BeginWalk(), and npc_akama_illidan::npc_akama_illidanAI::HandleWalkSequence().

◆ Conversation

const Yells Conversation[22]
static
Initial value:
=
{
{11463, "Akama... your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago.", ILLIDAN_STORMRAGE, 8000, 0, true},
{0, "", ILLIDAN_STORMRAGE, 5000, 396, true},
{11389, "We've come to end your reign, Illidan. My people and all of Outland shall be free!", AKAMA, 7000, 25, true},
{0, "", AKAMA, 5000, 66, true},
{11464, "Boldly said. But I remain unconvinced.", ILLIDAN_STORMRAGE, 8000, 396, true},
{11380, "The time has come! The moment is at hand!", AKAMA, 3000, 22, true},
{0, "", AKAMA, 2000, 15, true},
{11466, "You are not prepared!", ILLIDAN_STORMRAGE, 3000, 406, true},
{0, "", EMPTY, 1000, 0, true},
{0, "", EMPTY, 0, 0, false},
{11476, "Is this it, mortals? Is this all the fury you can muster?", ILLIDAN_STORMRAGE, 8000, 0, true},
{11491, "Their fury pales before mine, Illidan. We have some unsettled business between us.", MAIEV_SHADOWSONG, 8000, 5, true},
{11477, "Maiev... How is this even possible?", ILLIDAN_STORMRAGE, 5000, 1, true},
{11492, "Ah... my long hunt is finally over. Today, Justice will be done!", MAIEV_SHADOWSONG, 8000, 15, true},
{11470, "Feel the hatred of ten thousand years!", ILLIDAN_STORMRAGE, 1000, 0, false},
{11496, "Ahh... It is finished. You are beaten.", MAIEV_SHADOWSONG, 6000, 0, true},
{11478, "You have won... Maiev...but the huntress... is nothing...without the hunt... you... are nothing... without me..", ILLIDAN_STORMRAGE, 30000, 65, true},
{11497, "He is right. I feel nothing... I am nothing... Farewell, champions.", MAIEV_SHADOWSONG, 9000, 0, true},
{11498, "", MAIEV_SHADOWSONG, 5000, 0, true},
{11498, "", EMPTY, 1000, 0, true},
{11387, "The Light will fill these dismal halls once again. I swear it.", AKAMA, 8000, 0, true},
{0, "", EMPTY, 1000, 0, false}
}
@ MAIEV_SHADOWSONG
@ EMPTY
@ ILLIDAN_STORMRAGE
@ AKAMA

Definition at line 263 of file boss_illidan.cpp.

Referenced by boss_illidan_stormrage::boss_illidan_stormrageAI::Talk().

◆ DemonTransformation

const Animation DemonTransformation[10]
static
Initial value:
=
{
{SPELL_DEMON_TRANSFORM_1, 0, 1000, 0, 0, 6, true},
{0, 0, 3000, 1073741824, 21322, 6, false},
{SPELL_DEMON_TRANSFORM_1, 0, 1000, 0, 0, 6, false},
{0, SPELL_DEMON_FORM, 3000, 1069547520, 21135, 6, false},
{0, SPELL_DEMON_TRANSFORM_3, 0, 0, 0, 8, true}
}
@ SPELL_DEMON_FORM
@ SPELL_DEMON_TRANSFORM_1
@ SPELL_DEMON_TRANSFORM_2
@ SPELL_DEMON_TRANSFORM_3

Definition at line 346 of file boss_illidan.cpp.

Referenced by boss_illidan_stormrage::boss_illidan_stormrageAI::HandleTransformSequence().

◆ EyeBlast

const Locations EyeBlast[2]
static
Initial value:
=
{
{677.0f, 350.0f, 354.0f},
{677.0f, 260.0f, 354.0f}
}

Definition at line 311 of file boss_illidan.cpp.

Referenced by boss_illidan_stormrage::boss_illidan_stormrageAI::CastEyeBlast().

◆ GlaivePosition

const Locations GlaivePosition[4]
static
Initial value:
=
{
{695.105f, 305.303f, 354.256f},
{659.338f, 305.303f, 354.256f},
{700.105f, 305.303f, 354.256f},
{664.338f, 305.303f, 354.256f}
}

Definition at line 303 of file boss_illidan.cpp.

Referenced by boss_illidan_stormrage::boss_illidan_stormrageAI::CastEyeBlast(), boss_illidan_stormrage::boss_illidan_stormrageAI::HandleFlightSequence(), and boss_illidan_stormrage::boss_illidan_stormrageAI::SummonFlamesOfAzzinoth().

◆ HoverPosition

const Locations HoverPosition[4]
static
Initial value:
=
{
{657.0f, 340.0f, 355.0f},
{657.0f, 275.0f, 355.0f},
{705.0f, 275.0f, 355.0f},
{705.0f, 340.0f, 355.0f}
}

Definition at line 295 of file boss_illidan.cpp.

Referenced by boss_maiev_shadowsong::boss_maievAI::BlinkToPlayer(), boss_illidan_stormrage::boss_illidan_stormrageAI::CastEyeBlast(), boss_illidan_stormrage::boss_illidan_stormrageAI::HandleFlightSequence(), and boss_illidan_stormrage::boss_illidan_stormrageAI::UpdateAI().

◆ MaxTimer

const EventIllidan MaxTimer[9]
static

◆ SpiritSpawns

const Locations SpiritSpawns[2]
static
Initial value:
=
{
{755.5426f, 309.9156f, 312.2129f},
{755.5426f, 298.7923f, 312.0834f}
}

Definition at line 334 of file boss_illidan.cpp.

Referenced by npc_akama_illidan::npc_akama_illidanAI::BeginChannel().