AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
boss_hadronox.cpp File Reference
#include "AchievementCriteriaScript.h"
#include "CreatureScript.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_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 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 
111{
113};
@ DATA_CRUSHER_PACK_ID
Definition boss_hadronox.cpp:112

◆ 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 
65{
75
79
80 // Anub'ar Champion
83
84 // Anub'ar Crypt Guard
87
88 // Anub'ar Necromancer
91};
@ EVENT_INFECTED_WOUND
Definition boss_hadronox.cpp:86
@ EVENT_HADRONOX_SUMMON
Definition boss_hadronox.cpp:74
@ EVENT_HADRONOX_MOVE4
Definition boss_hadronox.cpp:69
@ EVENT_HADRONOX_MOVE3
Definition boss_hadronox.cpp:68
@ EVENT_REND
Definition boss_hadronox.cpp:81
@ EVENT_CHECK_EVADE
Definition boss_hadronox.cpp:78
@ EVENT_HADRONOX_PIERCE
Definition boss_hadronox.cpp:72
@ EVENT_CHECK_HEALTH
Definition boss_hadronox.cpp:77
@ EVENT_HADRONOX_MOVE1
Definition boss_hadronox.cpp:66
@ EVENT_PUMMEL
Definition boss_hadronox.cpp:82
@ EVENT_HADRONOX_LEECH
Definition boss_hadronox.cpp:71
@ EVENT_HADRONOX_ACID
Definition boss_hadronox.cpp:70
@ EVENT_ANIMATE_BONES
Definition boss_hadronox.cpp:90
@ EVENT_HADRONOX_GRAB
Definition boss_hadronox.cpp:73
@ EVENT_CRUSHER_SMASH
Definition boss_hadronox.cpp:76
@ EVENT_HADRONOX_MOVE2
Definition boss_hadronox.cpp:67
@ EVENT_SHADOW_BOLT
Definition boss_hadronox.cpp:89
@ EVENT_CRUSHING_WEBS
Definition boss_hadronox.cpp:85

◆ Misc

enum Misc
Enumerator
SAY_CRUSHER_AGGRO 
SAY_CRUSHER_EMOTE 
SAY_HADRONOX_EMOTE 
ACTION_CRUSHER_ENGAGED 
ACTION_CRUSHER_DIED 
ACTION_PACK_WALK 
116{
120
124};
@ SAY_CRUSHER_EMOTE
Definition boss_hadronox.cpp:118
@ ACTION_CRUSHER_DIED
Definition boss_hadronox.cpp:122
@ SAY_CRUSHER_AGGRO
Definition boss_hadronox.cpp:117
@ ACTION_CRUSHER_ENGAGED
Definition boss_hadronox.cpp:121
@ ACTION_PACK_WALK
Definition boss_hadronox.cpp:123
@ SAY_HADRONOX_EMOTE
Definition boss_hadronox.cpp:119

◆ NPCs

enum NPCs
Enumerator
NPC_ANUB_AR_CRUSHER 
NPC_ANUB_AR_CHAMPION_PACK 
NPC_ANUB_AR_CRYPT_FIEND_PACK 
NPC_ANUB_AR_NECROMANCER_PACK 
94{
95 NPC_ANUB_AR_CRUSHER = 28922,
99};
@ NPC_ANUB_AR_CRUSHER
Definition boss_hadronox.cpp:95
@ NPC_ANUB_AR_NECROMANCER_PACK
Definition boss_hadronox.cpp:98
@ NPC_ANUB_AR_CRYPT_FIEND_PACK
Definition boss_hadronox.cpp:97
@ NPC_ANUB_AR_CHAMPION_PACK
Definition boss_hadronox.cpp:96

◆ Spells

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

◆ SummonGroups

Enumerator
SUMMON_GROUP_CRUSHER_NONE 
SUMMON_GROUP_CRUSHER_1 
SUMMON_GROUP_CRUSHER_2 
SUMMON_GROUP_CRUSHER_3 
SUMMON_GROUP_WORLD_TRIGGERS 
102{
108};
@ SUMMON_GROUP_CRUSHER_3
Definition boss_hadronox.cpp:106
@ SUMMON_GROUP_CRUSHER_2
Definition boss_hadronox.cpp:105
@ SUMMON_GROUP_CRUSHER_1
Definition boss_hadronox.cpp:104
@ SUMMON_GROUP_CRUSHER_NONE
Definition boss_hadronox.cpp:103
@ SUMMON_GROUP_WORLD_TRIGGERS
Definition boss_hadronox.cpp:107

Function Documentation

◆ AddSC_boss_hadronox()

void AddSC_boss_hadronox ( )
705{
711 RegisterSpellScriptWithArgs(spell_hadronox_summon_periodic_aura, "spell_hadronox_summon_periodic_champion_aura", 15'000, SPELL_SUMMON_ANUBAR_CHAMPION);
712 RegisterSpellScriptWithArgs(spell_hadronox_summon_periodic_aura, "spell_hadronox_summon_periodic_necromancer_aura", 10'000, SPELL_SUMMON_ANUBAR_NECROMANCER);
713 RegisterSpellScriptWithArgs(spell_hadronox_summon_periodic_aura, "spell_hadronox_summon_periodic_crypt_fiend_aura", 5'000, SPELL_SUMMON_ANUBAR_CRYPT_FIEND);
717}
#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:77
Definition boss_hadronox.cpp:691
Definition boss_hadronox.cpp:650
Definition boss_hadronox.cpp:608
Definition boss_hadronox.cpp:672
Definition boss_hadronox.cpp:134
Definition boss_hadronox.cpp:512
Definition boss_hadronox.cpp:546
Definition boss_hadronox.cpp:580
Definition boss_hadronox.cpp:457

References RegisterAzjolNerubCreatureAI, RegisterSpellScript, RegisterSpellScriptWithArgs, SPELL_SUMMON_ANUBAR_CHAMPION, SPELL_SUMMON_ANUBAR_CRYPT_FIEND, and SPELL_SUMMON_ANUBAR_NECROMANCER.

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 },
{ }
}
506{
507 { 539.2076f, 549.7539f, 732.8668f, 4.55531f },
508 { 527.3098f, 559.5197f, 732.9407f, 4.742493f },
509 { }
510};

◆ 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 }
}
450{
451 { 529.6913f, 547.1257f, 731.9155f, 4.799650f },
452 { 517.51f , 561.439f , 734.0306f, 4.520403f },
453 { 543.414f , 551.728f , 732.0522f, 3.996804f }
454};

◆ cryptFiendWaypoints

const Position cryptFiendWaypoints[]
static
Initial value:
=
{
{ 520.3911f, 548.7895f, 732.0118f, 5.0091f },
{ },
{ 550.9611f, 545.1674f, 731.9031f, 3.996804f }
}
540{
541 { 520.3911f, 548.7895f, 732.0118f, 5.0091f },
542 { },
543 { 550.9611f, 545.1674f, 731.9031f, 3.996804f }
544};

◆ 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 },
}}
127{{
128 { 562.191f, 514.068f, 696.50710f },
129 { 615.802f, 517.418f, 695.68066f },
130 { 530.420f, 560.003f, 733.22473f },
131}};

Referenced by boss_hadronox::UpdateAI().

◆ necromancerWaypoints

const Position necromancerWaypoints[]
static
Initial value:
=
{
{ },
{ 507.6937f, 563.3471f, 734.8986f, 4.520403f },
{ 535.1049f, 552.8961f, 732.8441f, 3.996804f },
}
574{
575 { },
576 { 507.6937f, 563.3471f, 734.8986f, 4.520403f },
577 { 535.1049f, 552.8961f, 732.8441f, 3.996804f },
578};