AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
boss_hadronox.cpp File Reference
#include "AchievementCriteriaScript.h"
#include "CreatureScript.h"
#include "PathGenerator.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "azjol_nerub.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"

Go to the source code of this file.

Classes

struct  boss_hadronox
 
struct  npc_hadronox_crusherPackAI
 
struct  npc_anub_ar_crusher
 
struct  npc_anub_ar_crusher_champion
 
struct  npc_anub_ar_crusher_crypt_fiend
 
struct  npc_anub_ar_crusher_necromancer
 
class  spell_hadronox_summon_periodic_aura
 
class  spell_hadronox_leech_poison_aura
 
class  spell_hadronox_web_grab
 
class  achievement_hadronox_denied
 

Enumerations

enum  Spells {
  SPELL_SUMMON_ANUBAR_CHAMPION = 53064 ,
  SPELL_SUMMON_ANUBAR_CRYPT_FIEND = 53065 ,
  SPELL_SUMMON_ANUBAR_NECROMANCER = 53066 ,
  SPELL_SUMMON_ANUBAR_CHAMPION_LOWER = 53090 ,
  SPELL_SUMMON_ANUBAR_CRYPT_FIEND_LOWER = 53091 ,
  SPELL_SUMMON_ANUBAR_NECROMANCER_LOWER = 53092 ,
  SPELL_SUMMON_ANUBAR_CHAMPION_PERIODIC = 53035 ,
  SPELL_SUMMON_ANUBAR_NECROMANCER_PERIODIC = 53036 ,
  SPELL_SUMMON_ANUBAR_CRYPT_FIEND_PERIODIC = 53037 ,
  SPELL_WEB_FRONT_DOORS = 53177 ,
  SPELL_WEB_SIDE_DOORS = 53185 ,
  SPELL_ACID_CLOUD = 53400 ,
  SPELL_LEECH_POISON = 53030 ,
  SPELL_LEECH_POISON_HEAL = 53800 ,
  SPELL_WEB_GRAB = 53406 ,
  SPELL_PIERCE_ARMOR = 53418 ,
  SPELL_SMASH = 53318 ,
  SPELL_FRENZY = 53801 ,
  SPELL_REND = 59343 ,
  SPELL_PUMMEL = 59344 ,
  SPELL_CRUSHING_WEBS = 59347 ,
  SPELL_INFECTED_WOUND = 59348 ,
  SPELL_SHADOW_BOLT = 53333 ,
  SPELL_ANIMATE_BONES_1 = 53334 ,
  SPELL_ANIMATE_BONES_2 = 53336
}
 
enum  Events {
  EVENT_HADRONOX_MOVE1 = 1 ,
  EVENT_HADRONOX_MOVE2 = 2 ,
  EVENT_HADRONOX_MOVE3 = 3 ,
  EVENT_HADRONOX_MOVE4 = 4 ,
  EVENT_HADRONOX_ACID = 5 ,
  EVENT_HADRONOX_LEECH = 6 ,
  EVENT_HADRONOX_PIERCE = 7 ,
  EVENT_HADRONOX_GRAB = 8 ,
  EVENT_HADRONOX_SUMMON = 9 ,
  EVENT_CRUSHER_SMASH = 20 ,
  EVENT_CHECK_HEALTH = 21 ,
  EVENT_CHECK_EVADE = 22 ,
  EVENT_REND ,
  EVENT_PUMMEL ,
  EVENT_CRUSHING_WEBS ,
  EVENT_INFECTED_WOUND ,
  EVENT_SHADOW_BOLT ,
  EVENT_ANIMATE_BONES
}
 
enum  NPCs {
  NPC_ANUB_AR_CRUSHER = 28922 ,
  NPC_ANUB_AR_CHAMPION_PACK = 29117 ,
  NPC_ANUB_AR_CRYPT_FIEND_PACK = 29118 ,
  NPC_ANUB_AR_NECROMANCER_PACK = 29119
}
 
enum  SummonGroups : uint32 {
  SUMMON_GROUP_CRUSHER_NONE = 0 ,
  SUMMON_GROUP_CRUSHER_1 = 1 ,
  SUMMON_GROUP_CRUSHER_2 = 2 ,
  SUMMON_GROUP_CRUSHER_3 = 3 ,
  SUMMON_GROUP_WORLD_TRIGGERS = 4
}
 
enum  Data { DATA_CRUSHER_PACK_ID = 1 }
 
enum  Misc {
  SAY_CRUSHER_AGGRO = 1 ,
  SAY_CRUSHER_EMOTE = 2 ,
  SAY_HADRONOX_EMOTE = 0 ,
  ACTION_CRUSHER_ENGAGED = 1 ,
  ACTION_CRUSHER_DIED = 2 ,
  ACTION_PACK_WALK = 3
}
 

Functions

void AddSC_boss_hadronox ()
 

Variables

static Position const LowerDoorPosition = { 581.0f, 608.5f, 739.0f }
 
static Position const RampUpperLanding = { 571.498718f, 576.978333f, 727.582947f }
 
static Position const RampBottom = { 532.775f, 535.233f, 681.056f }
 
static std::array< std::vector< Position >, 3 > const doorPaths
 
static const std::array< Position, 3 > hadronoxSteps
 
static const Position crusherWaypoints []
 
static const Position championWaypoints []
 
static const Position cryptFiendWaypoints []
 
static const Position necromancerWaypoints []
 

Enumeration Type Documentation

◆ Data

enum Data
Enumerator
DATA_CRUSHER_PACK_ID 
115{
117};
@ DATA_CRUSHER_PACK_ID
Definition boss_hadronox.cpp:116

◆ Events

enum Events
Enumerator
EVENT_HADRONOX_MOVE1 
EVENT_HADRONOX_MOVE2 
EVENT_HADRONOX_MOVE3 
EVENT_HADRONOX_MOVE4 
EVENT_HADRONOX_ACID 
EVENT_HADRONOX_LEECH 
EVENT_HADRONOX_PIERCE 
EVENT_HADRONOX_GRAB 
EVENT_HADRONOX_SUMMON 
EVENT_CRUSHER_SMASH 
EVENT_CHECK_HEALTH 
EVENT_CHECK_EVADE 
EVENT_REND 
EVENT_PUMMEL 
EVENT_CRUSHING_WEBS 
EVENT_INFECTED_WOUND 
EVENT_SHADOW_BOLT 
EVENT_ANIMATE_BONES 
69{
79
83
84 // Anub'ar Champion
87
88 // Anub'ar Crypt Guard
91
92 // Anub'ar Necromancer
95};
@ EVENT_INFECTED_WOUND
Definition boss_hadronox.cpp:90
@ EVENT_HADRONOX_SUMMON
Definition boss_hadronox.cpp:78
@ EVENT_HADRONOX_MOVE4
Definition boss_hadronox.cpp:73
@ EVENT_HADRONOX_MOVE3
Definition boss_hadronox.cpp:72
@ EVENT_REND
Definition boss_hadronox.cpp:85
@ EVENT_CHECK_EVADE
Definition boss_hadronox.cpp:82
@ EVENT_HADRONOX_PIERCE
Definition boss_hadronox.cpp:76
@ EVENT_CHECK_HEALTH
Definition boss_hadronox.cpp:81
@ EVENT_HADRONOX_MOVE1
Definition boss_hadronox.cpp:70
@ EVENT_PUMMEL
Definition boss_hadronox.cpp:86
@ EVENT_HADRONOX_LEECH
Definition boss_hadronox.cpp:75
@ EVENT_HADRONOX_ACID
Definition boss_hadronox.cpp:74
@ EVENT_ANIMATE_BONES
Definition boss_hadronox.cpp:94
@ EVENT_HADRONOX_GRAB
Definition boss_hadronox.cpp:77
@ EVENT_CRUSHER_SMASH
Definition boss_hadronox.cpp:80
@ EVENT_HADRONOX_MOVE2
Definition boss_hadronox.cpp:71
@ EVENT_SHADOW_BOLT
Definition boss_hadronox.cpp:93
@ EVENT_CRUSHING_WEBS
Definition boss_hadronox.cpp:89

◆ Misc

enum Misc
Enumerator
SAY_CRUSHER_AGGRO 
SAY_CRUSHER_EMOTE 
SAY_HADRONOX_EMOTE 
ACTION_CRUSHER_ENGAGED 
ACTION_CRUSHER_DIED 
ACTION_PACK_WALK 
120{
124
128};
@ SAY_CRUSHER_EMOTE
Definition boss_hadronox.cpp:122
@ ACTION_CRUSHER_DIED
Definition boss_hadronox.cpp:126
@ SAY_CRUSHER_AGGRO
Definition boss_hadronox.cpp:121
@ ACTION_CRUSHER_ENGAGED
Definition boss_hadronox.cpp:125
@ ACTION_PACK_WALK
Definition boss_hadronox.cpp:127
@ SAY_HADRONOX_EMOTE
Definition boss_hadronox.cpp:123

◆ NPCs

enum NPCs
Enumerator
NPC_ANUB_AR_CRUSHER 
NPC_ANUB_AR_CHAMPION_PACK 
NPC_ANUB_AR_CRYPT_FIEND_PACK 
NPC_ANUB_AR_NECROMANCER_PACK 
98{
99 NPC_ANUB_AR_CRUSHER = 28922,
103};
@ NPC_ANUB_AR_CRUSHER
Definition boss_hadronox.cpp:99
@ NPC_ANUB_AR_NECROMANCER_PACK
Definition boss_hadronox.cpp:102
@ NPC_ANUB_AR_CRYPT_FIEND_PACK
Definition boss_hadronox.cpp:101
@ NPC_ANUB_AR_CHAMPION_PACK
Definition boss_hadronox.cpp:100

◆ Spells

enum Spells
Enumerator
SPELL_SUMMON_ANUBAR_CHAMPION 
SPELL_SUMMON_ANUBAR_CRYPT_FIEND 
SPELL_SUMMON_ANUBAR_NECROMANCER 
SPELL_SUMMON_ANUBAR_CHAMPION_LOWER 
SPELL_SUMMON_ANUBAR_CRYPT_FIEND_LOWER 
SPELL_SUMMON_ANUBAR_NECROMANCER_LOWER 
SPELL_SUMMON_ANUBAR_CHAMPION_PERIODIC 
SPELL_SUMMON_ANUBAR_NECROMANCER_PERIODIC 
SPELL_SUMMON_ANUBAR_CRYPT_FIEND_PERIODIC 
SPELL_WEB_FRONT_DOORS 
SPELL_WEB_SIDE_DOORS 
SPELL_ACID_CLOUD 
SPELL_LEECH_POISON 
SPELL_LEECH_POISON_HEAL 
SPELL_WEB_GRAB 
SPELL_PIERCE_ARMOR 
SPELL_SMASH 
SPELL_FRENZY 
SPELL_REND 
SPELL_PUMMEL 
SPELL_CRUSHING_WEBS 
SPELL_INFECTED_WOUND 
SPELL_SHADOW_BOLT 
SPELL_ANIMATE_BONES_1 
SPELL_ANIMATE_BONES_2 
29{
30 // World Trigger
40
41 // Hadronox
44 SPELL_ACID_CLOUD = 53400,
45 SPELL_LEECH_POISON = 53030,
47 SPELL_WEB_GRAB = 53406,
48 SPELL_PIERCE_ARMOR = 53418,
49
50 // Anub'ar Crusher
51 SPELL_SMASH = 53318,
52 SPELL_FRENZY = 53801,
53
54 // Anub'ar Champion
55 SPELL_REND = 59343,
56 SPELL_PUMMEL = 59344,
57
58 // Anub'ar Crypt Guard
59 SPELL_CRUSHING_WEBS = 59347,
61
62 // Anub'ar Necromancer
63 SPELL_SHADOW_BOLT = 53333,
66};
@ SPELL_CRUSHING_WEBS
Definition boss_hadronox.cpp:59
@ SPELL_LEECH_POISON
Definition boss_hadronox.cpp:45
@ SPELL_ACID_CLOUD
Definition boss_hadronox.cpp:44
@ SPELL_ANIMATE_BONES_1
Definition boss_hadronox.cpp:64
@ SPELL_SUMMON_ANUBAR_CRYPT_FIEND_LOWER
Definition boss_hadronox.cpp:35
@ SPELL_WEB_FRONT_DOORS
Definition boss_hadronox.cpp:42
@ SPELL_PUMMEL
Definition boss_hadronox.cpp:56
@ SPELL_SUMMON_ANUBAR_NECROMANCER_PERIODIC
Definition boss_hadronox.cpp:38
@ SPELL_LEECH_POISON_HEAL
Definition boss_hadronox.cpp:46
@ SPELL_SUMMON_ANUBAR_NECROMANCER_LOWER
Definition boss_hadronox.cpp:36
@ SPELL_SUMMON_ANUBAR_CHAMPION_PERIODIC
Definition boss_hadronox.cpp:37
@ SPELL_SHADOW_BOLT
Definition boss_hadronox.cpp:63
@ SPELL_SMASH
Definition boss_hadronox.cpp:51
@ SPELL_SUMMON_ANUBAR_CHAMPION
Definition boss_hadronox.cpp:31
@ SPELL_FRENZY
Definition boss_hadronox.cpp:52
@ SPELL_WEB_GRAB
Definition boss_hadronox.cpp:47
@ SPELL_SUMMON_ANUBAR_CHAMPION_LOWER
Definition boss_hadronox.cpp:34
@ SPELL_REND
Definition boss_hadronox.cpp:55
@ SPELL_WEB_SIDE_DOORS
Definition boss_hadronox.cpp:43
@ SPELL_ANIMATE_BONES_2
Definition boss_hadronox.cpp:65
@ SPELL_SUMMON_ANUBAR_CRYPT_FIEND_PERIODIC
Definition boss_hadronox.cpp:39
@ SPELL_PIERCE_ARMOR
Definition boss_hadronox.cpp:48
@ SPELL_SUMMON_ANUBAR_NECROMANCER
Definition boss_hadronox.cpp:33
@ SPELL_INFECTED_WOUND
Definition boss_hadronox.cpp:60
@ SPELL_SUMMON_ANUBAR_CRYPT_FIEND
Definition boss_hadronox.cpp:32

◆ SummonGroups

Enumerator
SUMMON_GROUP_CRUSHER_NONE 
SUMMON_GROUP_CRUSHER_1 
SUMMON_GROUP_CRUSHER_2 
SUMMON_GROUP_CRUSHER_3 
SUMMON_GROUP_WORLD_TRIGGERS 
106{
112};
@ SUMMON_GROUP_CRUSHER_3
Definition boss_hadronox.cpp:110
@ SUMMON_GROUP_CRUSHER_2
Definition boss_hadronox.cpp:109
@ SUMMON_GROUP_CRUSHER_1
Definition boss_hadronox.cpp:108
@ SUMMON_GROUP_CRUSHER_NONE
Definition boss_hadronox.cpp:107
@ SUMMON_GROUP_WORLD_TRIGGERS
Definition boss_hadronox.cpp:111

Function Documentation

◆ AddSC_boss_hadronox()

void AddSC_boss_hadronox ( )
759{
771}
#define RegisterSpellScript(spell_script)
Definition SpellScriptLoader.h:88
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
Definition SpellScriptLoader.h:87
#define RegisterAzjolNerubCreatureAI(ai_name)
Definition azjol_nerub.h:81
Definition boss_hadronox.cpp:745
Definition boss_hadronox.cpp:704
Definition boss_hadronox.cpp:655
Definition boss_hadronox.cpp:726
Definition boss_hadronox.cpp:154
Definition boss_hadronox.cpp:559
Definition boss_hadronox.cpp:593
Definition boss_hadronox.cpp:627
Definition boss_hadronox.cpp:504

References RegisterAzjolNerubCreatureAI, RegisterSpellScript, RegisterSpellScriptWithArgs, SPELL_SUMMON_ANUBAR_CHAMPION, SPELL_SUMMON_ANUBAR_CHAMPION_LOWER, SPELL_SUMMON_ANUBAR_CRYPT_FIEND, SPELL_SUMMON_ANUBAR_CRYPT_FIEND_LOWER, SPELL_SUMMON_ANUBAR_NECROMANCER, and SPELL_SUMMON_ANUBAR_NECROMANCER_LOWER.

Referenced by AddNorthrendScripts().

Variable Documentation

◆ championWaypoints

const Position championWaypoints[]
static
Initial value:
=
{
{ 539.2076f, 549.7539f, 732.8668f, 4.55531f },
{ 527.3098f, 559.5197f, 732.9407f, 4.742493f },
{ }
}
553{
554 { 539.2076f, 549.7539f, 732.8668f, 4.55531f },
555 { 527.3098f, 559.5197f, 732.9407f, 4.742493f },
556 { }
557};

◆ crusherWaypoints

const Position crusherWaypoints[]
static
Initial value:
=
{
{ 529.6913f, 547.1257f, 731.9155f, 4.799650f },
{ 517.51f , 561.439f , 734.0306f, 4.520403f },
{ 543.414f , 551.728f , 732.0522f, 3.996804f }
}
497{
498 { 529.6913f, 547.1257f, 731.9155f, 4.799650f },
499 { 517.51f , 561.439f , 734.0306f, 4.520403f },
500 { 543.414f , 551.728f , 732.0522f, 3.996804f }
501};

◆ cryptFiendWaypoints

const Position cryptFiendWaypoints[]
static
Initial value:
=
{
{ 520.3911f, 548.7895f, 732.0118f, 5.0091f },
{ },
{ 550.9611f, 545.1674f, 731.9031f, 3.996804f }
}
587{
588 { 520.3911f, 548.7895f, 732.0118f, 5.0091f },
589 { },
590 { 550.9611f, 545.1674f, 731.9031f, 3.996804f }
591};

◆ doorPaths

std::array<std::vector<Position>, 3> const doorPaths
static
Initial value:
=
{{
{ { 485.314606f, 611.418640f, 771.428406f }, { 513.574341f, 587.022156f, 736.229065f }, RampUpperLanding,
{ { 575.760437f, 611.516418f, 771.427368f }, { 537.920410f, 580.436157f, 732.796692f }, RampUpperLanding,
{ { 588.930725f, 598.233276f, 739.142151f }, { 601.289246f, 583.259644f, 725.443054f }, RampBottom },
}}
static Position const RampUpperLanding
Definition boss_hadronox.cpp:131
static Position const RampBottom
Definition boss_hadronox.cpp:132
138{{
139 { { 485.314606f, 611.418640f, 771.428406f }, { 513.574341f, 587.022156f, 736.229065f }, RampUpperLanding,
140 RampBottom },
141 { { 575.760437f, 611.516418f, 771.427368f }, { 537.920410f, 580.436157f, 732.796692f }, RampUpperLanding,
142 RampBottom },
143 { { 588.930725f, 598.233276f, 739.142151f }, { 601.289246f, 583.259644f, 725.443054f }, RampBottom },
144}};

Referenced by boss_hadronox::MoveDownRamp().

◆ hadronoxSteps

const std::array<Position, 3> hadronoxSteps
static
Initial value:
=
{{
{ 562.191f, 514.068f, 696.50710f },
{ 615.802f, 517.418f, 695.68066f },
{ 530.420f, 560.003f, 733.22473f },
}}
147{{
148 { 562.191f, 514.068f, 696.50710f },
149 { 615.802f, 517.418f, 695.68066f },
150 { 530.420f, 560.003f, 733.22473f },
151}};

Referenced by boss_hadronox::UpdateAI().

◆ LowerDoorPosition

Position const LowerDoorPosition = { 581.0f, 608.5f, 739.0f }
static
130{ 581.0f, 608.5f, 739.0f };

Referenced by spell_hadronox_summon_periodic_aura::HandlePeriodic().

◆ necromancerWaypoints

const Position necromancerWaypoints[]
static
Initial value:
=
{
{ },
{ 507.6937f, 563.3471f, 734.8986f, 4.520403f },
{ 535.1049f, 552.8961f, 732.8441f, 3.996804f },
}
621{
622 { },
623 { 507.6937f, 563.3471f, 734.8986f, 4.520403f },
624 { 535.1049f, 552.8961f, 732.8441f, 3.996804f },
625};

◆ RampBottom

Position const RampBottom = { 532.775f, 535.233f, 681.056f }
static
132{ 532.775f, 535.233f, 681.056f };

◆ RampUpperLanding

Position const RampUpperLanding = { 571.498718f, 576.978333f, 727.582947f }
static
131{ 571.498718f, 576.978333f, 727.582947f };