AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
boss_onyxia.cpp File Reference
#include "CreatureScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "onyxias_lair.h"

Go to the source code of this file.

Classes

struct  sOnyxMove
 
struct  boss_onyxia
 
struct  npc_onyxian_lair_guard
 

Enumerations

enum  Spells {
  SPELL_WINGBUFFET = 18500 ,
  SPELL_FLAMEBREATH = 18435 ,
  SPELL_CLEAVE = 68868 ,
  SPELL_TAILSWEEP = 68867 ,
  SPELL_FIREBALL = 18392 ,
  SPELL_BELLOWINGROAR = 18431 ,
  SPELL_SUMMON_WHELP = 17646 ,
  SPELL_SUMMON_LAIR_GUARD = 68968 ,
  SPELL_ERUPTION = 17731 ,
  SPELL_OLG_BLASTNOVA = 68958 ,
  SPELL_OLG_IGNITEWEAPON = 68959 ,
  SPELL_BREATH_N_TO_S = 17086 ,
  SPELL_BREATH_S_TO_N = 18351 ,
  SPELL_BREATH_E_TO_W = 18576 ,
  SPELL_BREATH_W_TO_E = 18609 ,
  SPELL_BREATH_SE_TO_NW = 18564 ,
  SPELL_BREATH_NW_TO_SE = 18584 ,
  SPELL_BREATH_SW_TO_NE = 18596 ,
  SPELL_BREATH_NE_TO_SW = 18617
}
 
enum  Events {
  EVENT_SPELL_WINGBUFFET = 1 ,
  EVENT_SPELL_FLAMEBREATH = 2 ,
  EVENT_SPELL_TAILSWEEP = 3 ,
  EVENT_SPELL_CLEAVE = 4 ,
  EVENT_START_PHASE_2 = 5 ,
  EVENT_SPELL_FIREBALL_FIRST = 6 ,
  EVENT_SPELL_FIREBALL_SECOND = 7 ,
  EVENT_PHASE_2_STEP_CW = 8 ,
  EVENT_PHASE_2_STEP_ACW = 9 ,
  EVENT_PHASE_2_STEP_ACROSS = 10 ,
  EVENT_SPELL_BREATH = 11 ,
  EVENT_START_PHASE_3 = 12 ,
  EVENT_PHASE_3_ATTACK = 13 ,
  EVENT_SPELL_BELLOWINGROAR = 14 ,
  EVENT_WHELP_SPAM = 15 ,
  EVENT_SUMMON_LAIR_GUARD = 16 ,
  EVENT_SUMMON_WHELP = 17 ,
  EVENT_OLG_SPELL_BLASTNOVA = 18 ,
  EVENT_OLG_SPELL_IGNITEWEAPON = 19 ,
  EVENT_ERUPTION = 20 ,
  EVENT_LIFTOFF = 31 ,
  EVENT_FLY_S_TO_N = 32 ,
  EVENT_LAND = 33 ,
  EVENT_END_MANY_WHELPS_TIME
}
 
enum  Phases {
  PHASE_NONE ,
  PHASE_GROUNDED ,
  PHASE_AIRPHASE ,
  PHASE_LANDED
}
 
enum  Yells {
  SAY_AGGRO = 0 ,
  SAY_KILL = 1 ,
  SAY_PHASE_2_TRANS = 2 ,
  SAY_PHASE_3_TRANS = 3 ,
  EMOTE_BREATH = 4 ,
  SAY_EVADE = 5
}
 

Functions

void AddSC_boss_onyxia ()
 

Variables

static sOnyxMove OnyxiaMoveData []
 

Enumeration Type Documentation

◆ Events

enum Events
Enumerator
EVENT_SPELL_WINGBUFFET 
EVENT_SPELL_FLAMEBREATH 
EVENT_SPELL_TAILSWEEP 
EVENT_SPELL_CLEAVE 
EVENT_START_PHASE_2 
EVENT_SPELL_FIREBALL_FIRST 
EVENT_SPELL_FIREBALL_SECOND 
EVENT_PHASE_2_STEP_CW 
EVENT_PHASE_2_STEP_ACW 
EVENT_PHASE_2_STEP_ACROSS 
EVENT_SPELL_BREATH 
EVENT_START_PHASE_3 
EVENT_PHASE_3_ATTACK 
EVENT_SPELL_BELLOWINGROAR 
EVENT_WHELP_SPAM 
EVENT_SUMMON_LAIR_GUARD 
EVENT_SUMMON_WHELP 
EVENT_OLG_SPELL_BLASTNOVA 
EVENT_OLG_SPELL_IGNITEWEAPON 
EVENT_ERUPTION 
EVENT_LIFTOFF 
EVENT_FLY_S_TO_N 
EVENT_LAND 
EVENT_END_MANY_WHELPS_TIME 
51{
71 EVENT_ERUPTION = 20,
72
73 EVENT_LIFTOFF = 31,
75 EVENT_LAND = 33,
77};
@ EVENT_SPELL_CLEAVE
Definition boss_onyxia.cpp:55
@ EVENT_WHELP_SPAM
Definition boss_onyxia.cpp:66
@ EVENT_SPELL_BELLOWINGROAR
Definition boss_onyxia.cpp:65
@ EVENT_SPELL_BREATH
Definition boss_onyxia.cpp:62
@ EVENT_START_PHASE_3
Definition boss_onyxia.cpp:63
@ EVENT_SPELL_FIREBALL_FIRST
Definition boss_onyxia.cpp:57
@ EVENT_START_PHASE_2
Definition boss_onyxia.cpp:56
@ EVENT_SPELL_WINGBUFFET
Definition boss_onyxia.cpp:52
@ EVENT_PHASE_2_STEP_ACROSS
Definition boss_onyxia.cpp:61
@ EVENT_SPELL_FIREBALL_SECOND
Definition boss_onyxia.cpp:58
@ EVENT_PHASE_2_STEP_ACW
Definition boss_onyxia.cpp:60
@ EVENT_PHASE_2_STEP_CW
Definition boss_onyxia.cpp:59
@ EVENT_FLY_S_TO_N
Definition boss_onyxia.cpp:74
@ EVENT_OLG_SPELL_IGNITEWEAPON
Definition boss_onyxia.cpp:70
@ EVENT_SPELL_TAILSWEEP
Definition boss_onyxia.cpp:54
@ EVENT_SUMMON_WHELP
Definition boss_onyxia.cpp:68
@ EVENT_LIFTOFF
Definition boss_onyxia.cpp:73
@ EVENT_END_MANY_WHELPS_TIME
Definition boss_onyxia.cpp:76
@ EVENT_OLG_SPELL_BLASTNOVA
Definition boss_onyxia.cpp:69
@ EVENT_SPELL_FLAMEBREATH
Definition boss_onyxia.cpp:53
@ EVENT_SUMMON_LAIR_GUARD
Definition boss_onyxia.cpp:67
@ EVENT_LAND
Definition boss_onyxia.cpp:75
@ EVENT_PHASE_3_ATTACK
Definition boss_onyxia.cpp:64
@ EVENT_ERUPTION
Definition boss_onyxia.cpp:71

◆ Phases

enum Phases
Enumerator
PHASE_NONE 
PHASE_GROUNDED 
PHASE_AIRPHASE 
PHASE_LANDED 
80{
82 PHASE_GROUNDED, // Phase 1
83 PHASE_AIRPHASE, // Phase 2 - Airphase - 60% health
84 PHASE_LANDED // Phase 3 - Landed after Airphase - 40% health
85};
@ PHASE_AIRPHASE
Definition boss_onyxia.cpp:83
@ PHASE_LANDED
Definition boss_onyxia.cpp:84
@ PHASE_NONE
Definition boss_onyxia.cpp:81
@ PHASE_GROUNDED
Definition boss_onyxia.cpp:82

◆ Spells

enum Spells
Enumerator
SPELL_WINGBUFFET 
SPELL_FLAMEBREATH 
SPELL_CLEAVE 
SPELL_TAILSWEEP 
SPELL_FIREBALL 
SPELL_BELLOWINGROAR 
SPELL_SUMMON_WHELP 
SPELL_SUMMON_LAIR_GUARD 
SPELL_ERUPTION 
SPELL_OLG_BLASTNOVA 
SPELL_OLG_IGNITEWEAPON 
SPELL_BREATH_N_TO_S 
SPELL_BREATH_S_TO_N 
SPELL_BREATH_E_TO_W 
SPELL_BREATH_W_TO_E 
SPELL_BREATH_SE_TO_NW 
SPELL_BREATH_NW_TO_SE 
SPELL_BREATH_SW_TO_NE 
SPELL_BREATH_NE_TO_SW 
25{
26 SPELL_WINGBUFFET = 18500,
27 SPELL_FLAMEBREATH = 18435,
28 SPELL_CLEAVE = 68868,
29 SPELL_TAILSWEEP = 68867,
30 SPELL_FIREBALL = 18392,
31 SPELL_BELLOWINGROAR = 18431,
32
33 SPELL_SUMMON_WHELP = 17646,
35 SPELL_ERUPTION = 17731,
36
37 SPELL_OLG_BLASTNOVA = 68958,
39
40 SPELL_BREATH_N_TO_S = 17086,
41 SPELL_BREATH_S_TO_N = 18351,
42 SPELL_BREATH_E_TO_W = 18576,
43 SPELL_BREATH_W_TO_E = 18609,
48};
@ SPELL_CLEAVE
Definition boss_onyxia.cpp:28
@ SPELL_BREATH_N_TO_S
Definition boss_onyxia.cpp:40
@ SPELL_OLG_BLASTNOVA
Definition boss_onyxia.cpp:37
@ SPELL_BREATH_NE_TO_SW
Definition boss_onyxia.cpp:47
@ SPELL_BELLOWINGROAR
Definition boss_onyxia.cpp:31
@ SPELL_SUMMON_WHELP
Definition boss_onyxia.cpp:33
@ SPELL_BREATH_SE_TO_NW
Definition boss_onyxia.cpp:44
@ SPELL_FLAMEBREATH
Definition boss_onyxia.cpp:27
@ SPELL_FIREBALL
Definition boss_onyxia.cpp:30
@ SPELL_SUMMON_LAIR_GUARD
Definition boss_onyxia.cpp:34
@ SPELL_TAILSWEEP
Definition boss_onyxia.cpp:29
@ SPELL_BREATH_SW_TO_NE
Definition boss_onyxia.cpp:46
@ SPELL_BREATH_NW_TO_SE
Definition boss_onyxia.cpp:45
@ SPELL_ERUPTION
Definition boss_onyxia.cpp:35
@ SPELL_OLG_IGNITEWEAPON
Definition boss_onyxia.cpp:38
@ SPELL_BREATH_S_TO_N
Definition boss_onyxia.cpp:41
@ SPELL_BREATH_E_TO_W
Definition boss_onyxia.cpp:42
@ SPELL_BREATH_W_TO_E
Definition boss_onyxia.cpp:43
@ SPELL_WINGBUFFET
Definition boss_onyxia.cpp:26

◆ Yells

enum Yells
Enumerator
SAY_AGGRO 
SAY_KILL 
SAY_PHASE_2_TRANS 
SAY_PHASE_3_TRANS 
EMOTE_BREATH 
SAY_EVADE 
108{
109 SAY_AGGRO = 0,
110 SAY_KILL = 1,
113 EMOTE_BREATH = 4,
114 SAY_EVADE = 5
115};
@ SAY_AGGRO
Definition boss_onyxia.cpp:109
@ SAY_PHASE_2_TRANS
Definition boss_onyxia.cpp:111
@ EMOTE_BREATH
Definition boss_onyxia.cpp:113
@ SAY_KILL
Definition boss_onyxia.cpp:110
@ SAY_PHASE_3_TRANS
Definition boss_onyxia.cpp:112
@ SAY_EVADE
Definition boss_onyxia.cpp:114

Function Documentation

◆ AddSC_boss_onyxia()

void AddSC_boss_onyxia ( )
611{
614}
#define RegisterOnyxiasLairCreatureAI(ai_name)
Definition onyxias_lair.h:63
Definition boss_onyxia.cpp:118
Definition boss_onyxia.cpp:549

References RegisterOnyxiasLairCreatureAI.

Referenced by AddKalimdorScripts().

Variable Documentation

◆ OnyxiaMoveData

sOnyxMove OnyxiaMoveData[]
static
Initial value:
=
{
{0, 0, 0, -64.496f, -214.906f, -84.4f, 0.0f},
{1, 5, SPELL_BREATH_S_TO_N, -64.496f, -214.906f, -60.0f, 0.0f},
{2, 6, SPELL_BREATH_SW_TO_NE, -59.809f, -190.758f, -60.0f, 7 * M_PI / 4},
{3, 7, SPELL_BREATH_W_TO_E, -29.450f, -180.600f, -60.0f, M_PI + M_PI / 2},
{4, 8, SPELL_BREATH_NW_TO_SE, 6.895f, -180.246f, -60.0f, M_PI + M_PI / 4},
{5, 1, SPELL_BREATH_N_TO_S, 22.876f, -217.152f, -60.0f, M_PI},
{6, 2, SPELL_BREATH_NE_TO_SW, 10.2191f, -247.912f, -60.0f, 3 * M_PI / 4},
{7, 3, SPELL_BREATH_E_TO_W, -31.496f, -250.123f, -60.0f, M_PI / 2},
{8, 4, SPELL_BREATH_SE_TO_NW, -63.5156f, -240.096f, -60.0f, M_PI / 4},
}
95{
96 {0, 0, 0, -64.496f, -214.906f, -84.4f, 0.0f}, // south ground
97 {1, 5, SPELL_BREATH_S_TO_N, -64.496f, -214.906f, -60.0f, 0.0f}, // south
98 {2, 6, SPELL_BREATH_SW_TO_NE, -59.809f, -190.758f, -60.0f, 7 * M_PI / 4}, // south-west
99 {3, 7, SPELL_BREATH_W_TO_E, -29.450f, -180.600f, -60.0f, M_PI + M_PI / 2}, // west
100 {4, 8, SPELL_BREATH_NW_TO_SE, 6.895f, -180.246f, -60.0f, M_PI + M_PI / 4}, // north-west
101 {5, 1, SPELL_BREATH_N_TO_S, 22.876f, -217.152f, -60.0f, M_PI}, // north
102 {6, 2, SPELL_BREATH_NE_TO_SW, 10.2191f, -247.912f, -60.0f, 3 * M_PI / 4}, // north-east
103 {7, 3, SPELL_BREATH_E_TO_W, -31.496f, -250.123f, -60.0f, M_PI / 2}, // east
104 {8, 4, SPELL_BREATH_SE_TO_NW, -63.5156f, -240.096f, -60.0f, M_PI / 4}, // south-east
105};

Referenced by boss_onyxia::MovementInform(), and boss_onyxia::UpdateAI().