AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
boss_gothik.cpp File Reference
#include "CombatAI.h"
#include "CreatureScript.h"
#include "GridNotifiers.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "naxxramas.h"

Go to the source code of this file.

Classes

struct  NotOnSameSide
 
class  boss_gothik
 
struct  boss_gothik::boss_gothikAI
 
class  npc_boss_gothik_minion
 
struct  npc_boss_gothik_minion::npc_boss_gothik_minionAI
 
class  npc_gothik_trigger
 
struct  npc_gothik_trigger::npc_gothik_triggerAI
 
class  spell_gothik_shadow_bolt_volley
 

Macros

#define POS_Y_GATE   -3360.78f
 
#define POS_Y_WEST   -3285.0f
 
#define POS_Y_EAST   -3434.0f
 
#define POS_X_NORTH   2750.49f
 
#define POS_X_SOUTH   2633.84f
 
#define IN_LIVE_SIDE(who)   (who->GetPositionY() < POS_Y_GATE)
 

Enumerations

enum  Yells {
  SAY_INTRO_1 = 0 ,
  SAY_INTRO_2 = 1 ,
  SAY_INTRO_3 = 2 ,
  SAY_INTRO_4 = 3 ,
  SAY_PHASE_TWO = 4 ,
  SAY_DEATH = 5 ,
  SAY_KILL = 6 ,
  EMOTE_PHASE_TWO = 7 ,
  EMOTE_GATE_OPENED = 8
}
 
enum  Spells {
  SPELL_HARVEST_SOUL = 28679 ,
  SPELL_SHADOW_BOLT_10 = 29317 ,
  SPELL_SHADOW_BOLT_25 = 56405 ,
  SPELL_TELEPORT_DEAD = 28025 ,
  SPELL_TELEPORT_LIVE = 28026 ,
  SPELL_ANCHOR_1_TRAINEE = 27892 ,
  SPELL_ANCHOR_1_DK = 27928 ,
  SPELL_ANCHOR_1_RIDER = 27935 ,
  SPELL_ANCHOR_2_TRAINEE = 27893 ,
  SPELL_ANCHOR_2_DK = 27929 ,
  SPELL_ANCHOR_2_RIDER = 27936 ,
  SPELL_SKULLS_TRAINEE = 27915 ,
  SPELL_SKULLS_DK = 27931 ,
  SPELL_SKULLS_RIDER = 27937 ,
  SPELL_DEATH_PLAGUE = 55604 ,
  SPELL_ARCANE_EXPLOSION = 27989 ,
  SPELL_SHADOW_MARK = 27825 ,
  SPELL_WHIRLWIND = 56408 ,
  SPELL_SHADOW_BOLT_VOLLEY = 27831 ,
  SPELL_DRAIN_LIFE = 27994 ,
  SPELL_UNHOLY_FRENZY = 55648 ,
  SPELL_STOMP = 27993
}
 
enum  Misc {
  NPC_LIVING_TRAINEE = 16124 ,
  NPC_LIVING_KNIGHT = 16125 ,
  NPC_LIVING_RIDER = 16126 ,
  NPC_DEAD_TRAINEE = 16127 ,
  NPC_DEAD_KNIGHT = 16148 ,
  NPC_DEAD_HORSE = 16149 ,
  NPC_DEAD_RIDER = 16150 ,
  NPC_TRIGGER = 16137
}
 
enum  Events {
  EVENT_SUMMON_ADDS = 1 ,
  EVENT_HARVEST_SOUL = 2 ,
  EVENT_SHADOW_BOLT = 3 ,
  EVENT_TELEPORT = 4 ,
  EVENT_CHECK_HEALTH = 5 ,
  EVENT_CHECK_PLAYERS = 6 ,
  EVENT_DEATH_PLAGUE = 7 ,
  EVENT_ARCANE_EXPLOSION = 8 ,
  EVENT_SHADOW_MARK = 9 ,
  EVENT_WHIRLWIND = 10 ,
  EVENT_SHADOW_BOLT_VOLLEY = 11 ,
  EVENT_DRAIN_LIFE = 12 ,
  EVENT_UNHOLY_FRENZY = 13 ,
  EVENT_STOMP = 14 ,
  EVENT_INTRO_2 = 15 ,
  EVENT_INTRO_3 = 16 ,
  EVENT_INTRO_4 = 17
}
 

Functions

void AddSC_boss_gothik ()
 

Variables

const uint32 gothikWaves [24][2]
 
const Position PosSummonLiving [6]
 
const Position PosSummonDead [5]
 

Macro Definition Documentation

◆ IN_LIVE_SIDE

#define IN_LIVE_SIDE (   who)    (who->GetPositionY() < POS_Y_GATE)

◆ POS_X_NORTH

#define POS_X_NORTH   2750.49f

◆ POS_X_SOUTH

#define POS_X_SOUTH   2633.84f

◆ POS_Y_EAST

#define POS_Y_EAST   -3434.0f

◆ POS_Y_GATE

#define POS_Y_GATE   -3360.78f

◆ POS_Y_WEST

#define POS_Y_WEST   -3285.0f

Enumeration Type Documentation

◆ Events

enum Events
Enumerator
EVENT_SUMMON_ADDS 
EVENT_HARVEST_SOUL 
EVENT_SHADOW_BOLT 
EVENT_TELEPORT 
EVENT_CHECK_HEALTH 
EVENT_CHECK_PLAYERS 
EVENT_DEATH_PLAGUE 
EVENT_ARCANE_EXPLOSION 
EVENT_SHADOW_MARK 
EVENT_WHIRLWIND 
EVENT_SHADOW_BOLT_VOLLEY 
EVENT_DRAIN_LIFE 
EVENT_UNHOLY_FRENZY 
EVENT_STOMP 
EVENT_INTRO_2 
EVENT_INTRO_3 
EVENT_INTRO_4 
89{
90 // Gothik
97 // Living trainee
99 // Dead trainee
101 // Living knight
103 // Dead knight
104 EVENT_WHIRLWIND = 10,
105 // Living rider
107 // Dead rider
108 EVENT_DRAIN_LIFE = 12,
110 // HORSE
111 EVENT_STOMP = 14,
112 // Intro
113 EVENT_INTRO_2 = 15,
114 EVENT_INTRO_3 = 16,
115 EVENT_INTRO_4 = 17
116};
@ EVENT_SHADOW_MARK
Definition boss_gothik.cpp:102
@ EVENT_INTRO_4
Definition boss_gothik.cpp:115
@ EVENT_DRAIN_LIFE
Definition boss_gothik.cpp:108
@ EVENT_SHADOW_BOLT_VOLLEY
Definition boss_gothik.cpp:106
@ EVENT_UNHOLY_FRENZY
Definition boss_gothik.cpp:109
@ EVENT_INTRO_2
Definition boss_gothik.cpp:113
@ EVENT_HARVEST_SOUL
Definition boss_gothik.cpp:92
@ EVENT_WHIRLWIND
Definition boss_gothik.cpp:104
@ EVENT_CHECK_HEALTH
Definition boss_gothik.cpp:95
@ EVENT_TELEPORT
Definition boss_gothik.cpp:94
@ EVENT_CHECK_PLAYERS
Definition boss_gothik.cpp:96
@ EVENT_ARCANE_EXPLOSION
Definition boss_gothik.cpp:100
@ EVENT_SUMMON_ADDS
Definition boss_gothik.cpp:91
@ EVENT_STOMP
Definition boss_gothik.cpp:111
@ EVENT_INTRO_3
Definition boss_gothik.cpp:114
@ EVENT_SHADOW_BOLT
Definition boss_gothik.cpp:93
@ EVENT_DEATH_PLAGUE
Definition boss_gothik.cpp:98

◆ Misc

enum Misc
Enumerator
NPC_LIVING_TRAINEE 
NPC_LIVING_KNIGHT 
NPC_LIVING_RIDER 
NPC_DEAD_TRAINEE 
NPC_DEAD_KNIGHT 
NPC_DEAD_HORSE 
NPC_DEAD_RIDER 
NPC_TRIGGER 
77{
78 NPC_LIVING_TRAINEE = 16124,
79 NPC_LIVING_KNIGHT = 16125,
80 NPC_LIVING_RIDER = 16126,
81 NPC_DEAD_TRAINEE = 16127,
82 NPC_DEAD_KNIGHT = 16148,
83 NPC_DEAD_HORSE = 16149,
84 NPC_DEAD_RIDER = 16150,
85 NPC_TRIGGER = 16137
86};
@ NPC_DEAD_HORSE
Definition boss_gothik.cpp:83
@ NPC_DEAD_TRAINEE
Definition boss_gothik.cpp:81
@ NPC_LIVING_RIDER
Definition boss_gothik.cpp:80
@ NPC_DEAD_RIDER
Definition boss_gothik.cpp:84
@ NPC_DEAD_KNIGHT
Definition boss_gothik.cpp:82
@ NPC_LIVING_KNIGHT
Definition boss_gothik.cpp:79
@ NPC_LIVING_TRAINEE
Definition boss_gothik.cpp:78
@ NPC_TRIGGER
Definition boss_gothik.cpp:85

◆ Spells

enum Spells
Enumerator
SPELL_HARVEST_SOUL 
SPELL_SHADOW_BOLT_10 
SPELL_SHADOW_BOLT_25 
SPELL_TELEPORT_DEAD 
SPELL_TELEPORT_LIVE 
SPELL_ANCHOR_1_TRAINEE 
SPELL_ANCHOR_1_DK 
SPELL_ANCHOR_1_RIDER 
SPELL_ANCHOR_2_TRAINEE 
SPELL_ANCHOR_2_DK 
SPELL_ANCHOR_2_RIDER 
SPELL_SKULLS_TRAINEE 
SPELL_SKULLS_DK 
SPELL_SKULLS_RIDER 
SPELL_DEATH_PLAGUE 
SPELL_ARCANE_EXPLOSION 
SPELL_SHADOW_MARK 
SPELL_WHIRLWIND 
SPELL_SHADOW_BOLT_VOLLEY 
SPELL_DRAIN_LIFE 
SPELL_UNHOLY_FRENZY 
SPELL_STOMP 
41{
42 // Gothik
43 SPELL_HARVEST_SOUL = 28679,
46 // Teleport spells
47 SPELL_TELEPORT_DEAD = 28025,
48 SPELL_TELEPORT_LIVE = 28026,
49 // Visual spells
51 SPELL_ANCHOR_1_DK = 27928,
54 SPELL_ANCHOR_2_DK = 27929,
57 SPELL_SKULLS_DK = 27931,
58 SPELL_SKULLS_RIDER = 27937,
59 // Living trainee
60 SPELL_DEATH_PLAGUE = 55604,
61 // Dead trainee
63 // Living knight
64 SPELL_SHADOW_MARK = 27825,
65 // Dead knight
66 SPELL_WHIRLWIND = 56408,
67 // Living rider
69 // Dead rider
70 SPELL_DRAIN_LIFE = 27994,
71 SPELL_UNHOLY_FRENZY = 55648,
72 // Horse
73 SPELL_STOMP = 27993
74};
@ SPELL_STOMP
Definition boss_gothik.cpp:73
@ SPELL_SHADOW_BOLT_VOLLEY
Definition boss_gothik.cpp:68
@ SPELL_ANCHOR_1_DK
Definition boss_gothik.cpp:51
@ SPELL_UNHOLY_FRENZY
Definition boss_gothik.cpp:71
@ SPELL_DEATH_PLAGUE
Definition boss_gothik.cpp:60
@ SPELL_ANCHOR_1_TRAINEE
Definition boss_gothik.cpp:50
@ SPELL_ANCHOR_2_RIDER
Definition boss_gothik.cpp:55
@ SPELL_ARCANE_EXPLOSION
Definition boss_gothik.cpp:62
@ SPELL_SHADOW_BOLT_10
Definition boss_gothik.cpp:44
@ SPELL_SKULLS_DK
Definition boss_gothik.cpp:57
@ SPELL_HARVEST_SOUL
Definition boss_gothik.cpp:43
@ SPELL_ANCHOR_2_DK
Definition boss_gothik.cpp:54
@ SPELL_SKULLS_TRAINEE
Definition boss_gothik.cpp:56
@ SPELL_SHADOW_MARK
Definition boss_gothik.cpp:64
@ SPELL_SKULLS_RIDER
Definition boss_gothik.cpp:58
@ SPELL_ANCHOR_1_RIDER
Definition boss_gothik.cpp:52
@ SPELL_TELEPORT_LIVE
Definition boss_gothik.cpp:48
@ SPELL_WHIRLWIND
Definition boss_gothik.cpp:66
@ SPELL_TELEPORT_DEAD
Definition boss_gothik.cpp:47
@ SPELL_DRAIN_LIFE
Definition boss_gothik.cpp:70
@ SPELL_SHADOW_BOLT_25
Definition boss_gothik.cpp:45
@ SPELL_ANCHOR_2_TRAINEE
Definition boss_gothik.cpp:53

◆ Yells

enum Yells
Enumerator
SAY_INTRO_1 
SAY_INTRO_2 
SAY_INTRO_3 
SAY_INTRO_4 
SAY_PHASE_TWO 
SAY_DEATH 
SAY_KILL 
EMOTE_PHASE_TWO 
EMOTE_GATE_OPENED 
27{
28 SAY_INTRO_1 = 0,
29 SAY_INTRO_2 = 1,
30 SAY_INTRO_3 = 2,
31 SAY_INTRO_4 = 3,
32 SAY_PHASE_TWO = 4,
33 SAY_DEATH = 5,
34 SAY_KILL = 6,
35
38};
@ SAY_DEATH
Definition boss_gothik.cpp:33
@ SAY_INTRO_2
Definition boss_gothik.cpp:29
@ SAY_PHASE_TWO
Definition boss_gothik.cpp:32
@ SAY_INTRO_1
Definition boss_gothik.cpp:28
@ SAY_KILL
Definition boss_gothik.cpp:34
@ EMOTE_PHASE_TWO
Definition boss_gothik.cpp:36
@ SAY_INTRO_3
Definition boss_gothik.cpp:30
@ SAY_INTRO_4
Definition boss_gothik.cpp:31
@ EMOTE_GATE_OPENED
Definition boss_gothik.cpp:37

Function Documentation

◆ AddSC_boss_gothik()

void AddSC_boss_gothik ( )
753{
754 new boss_gothik();
756 new npc_gothik_trigger();
758}
#define RegisterSpellScript(spell_script)
Definition SpellScriptLoader.h:88
Definition boss_gothik.cpp:192
Definition boss_gothik.cpp:479
Definition boss_gothik.cpp:633
Definition boss_gothik.cpp:733

References RegisterSpellScript.

Referenced by AddNorthrendScripts().

Variable Documentation

◆ gothikWaves

const uint32 gothikWaves[24][2]
Initial value:
119{
120 {NPC_LIVING_TRAINEE, 20000},
121 {NPC_LIVING_TRAINEE, 20000},
122 {NPC_LIVING_TRAINEE, 10000},
123 {NPC_LIVING_KNIGHT, 10000},
124 {NPC_LIVING_TRAINEE, 15000},
125 {NPC_LIVING_KNIGHT, 10000},
126 {NPC_LIVING_TRAINEE, 15000},
128 {NPC_LIVING_KNIGHT, 10000},
129 {NPC_LIVING_RIDER, 10000},
130 {NPC_LIVING_TRAINEE, 5000},
131 {NPC_LIVING_KNIGHT, 15000},
132 {NPC_LIVING_RIDER, 0},
133 {NPC_LIVING_TRAINEE, 10000},
134 {NPC_LIVING_KNIGHT, 10000},
135 {NPC_LIVING_TRAINEE, 10000},
136 {NPC_LIVING_RIDER, 5000},
137 {NPC_LIVING_KNIGHT, 5000},
138 {NPC_LIVING_TRAINEE, 20000},
139 {NPC_LIVING_RIDER, 0},
141 {NPC_LIVING_TRAINEE, 15000},
142 {NPC_LIVING_TRAINEE, 29000},
143 {0, 0}
144};

Referenced by boss_gothik::boss_gothikAI::UpdateAI().

◆ PosSummonDead

const Position PosSummonDead[5]
Initial value:
=
{
{2725.1f, -3310.0f, 268.85f, 3.4f},
{2699.3f, -3322.8f, 268.60f, 3.3f},
{2733.1f, -3348.5f, 268.84f, 3.1f},
{2682.8f, -3304.2f, 268.85f, 3.9f},
{2664.8f, -3340.7f, 268.23f, 3.7f}
}
157{
158 {2725.1f, -3310.0f, 268.85f, 3.4f},
159 {2699.3f, -3322.8f, 268.60f, 3.3f},
160 {2733.1f, -3348.5f, 268.84f, 3.1f},
161 {2682.8f, -3304.2f, 268.85f, 3.9f},
162 {2664.8f, -3340.7f, 268.23f, 3.7f}
163};

◆ PosSummonLiving

const Position PosSummonLiving[6]
Initial value:
=
{
{2669.7f, -3428.76f, 268.56f, 1.6f},
{2692.1f, -3428.76f, 268.56f, 1.6f},
{2714.4f, -3428.76f, 268.56f, 1.6f},
{2669.7f, -3431.67f, 268.56f, 1.6f},
{2692.1f, -3431.67f, 268.56f, 1.6f},
{2714.4f, -3431.67f, 268.56f, 1.6f}
}
147{
148 {2669.7f, -3428.76f, 268.56f, 1.6f},
149 {2692.1f, -3428.76f, 268.56f, 1.6f},
150 {2714.4f, -3428.76f, 268.56f, 1.6f},
151 {2669.7f, -3431.67f, 268.56f, 1.6f},
152 {2692.1f, -3431.67f, 268.56f, 1.6f},
153 {2714.4f, -3431.67f, 268.56f, 1.6f}
154};

Referenced by boss_gothik::boss_gothikAI::SummonHelpers().