TrinityCore
Loading...
Searching...
No Matches
boss_gothik.cpp File Reference
#include "ScriptMgr.h"
#include "AreaBoundary.h"
#include "CombatAI.h"
#include "GridNotifiers.h"
#include "InstanceScript.h"
#include "Log.h"
#include "Map.h"
#include "naxxramas.h"
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "SpellScript.h"
+ Include dependency graph for boss_gothik.cpp:

Go to the source code of this file.

Classes

struct  GothikWaveEntry
 
struct  GothikWaveInfo
 
struct  boss_gothik
 
struct  npc_gothik_minion_baseAI
 
struct  npc_gothik_minion_livingtrainee
 
struct  npc_gothik_minion_livingknight
 
struct  npc_gothik_minion_livingrider
 
struct  npc_gothik_minion_spectraltrainee
 
struct  npc_gothik_minion_spectralknight
 
struct  npc_gothik_minion_spectralrider
 
struct  npc_gothik_minion_spectralhorse
 
struct  npc_gothik_trigger
 
class  spell_gothik_shadow_bolt_volley
 

Macros

#define SPELL_UNHOLY_AURA   RAID_MODE<uint32>(55606, 55608)
 
#define SPELL_DEATH_PLAGUE   RAID_MODE<uint32>(55604, 55645)
 
#define SPELL_SHADOW_BOLT_VOLLEY   RAID_MODE<uint32>(27831, 55638)
 
#define SPELL_ARCANE_EXPLOSION   RAID_MODE<uint32>(27989, 56407)
 
#define SPELL_DRAIN_LIFE   RAID_MODE<uint32>(27994, 55646)
 
#define SPELL_UNHOLY_FRENZY   RAID_MODE<uint32>(55648,27995)
 

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_SHADOW_MARK = 27825 , SPELL_WHIRLWIND = 56408 , SPELL_STOMP = 27993 , SPELL_HARVEST_SOUL = 28679 ,
  SPELL_SHADOW_BOLT = 29317 , 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_TELEPORT_DEAD = 28025 , SPELL_TELEPORT_LIVE = 28026
}
 
enum  Creatures {
  NPC_LIVE_TRAINEE = 16124 , NPC_LIVE_KNIGHT = 16125 , NPC_LIVE_RIDER = 16126 , NPC_DEAD_TRAINEE = 16127 ,
  NPC_DEAD_KNIGHT = 16148 , NPC_DEAD_RIDER = 16150 , NPC_DEAD_HORSE = 16149 , NPC_TRIGGER = 16137
}
 
enum  Phases { PHASE_ONE = 1 , PHASE_TWO = 2 }
 
enum  Events {
  EVENT_INTRO_2 = 1 , EVENT_INTRO_3 , EVENT_INTRO_4 , EVENT_PHASE_TWO ,
  EVENT_SUMMON , EVENT_DOORS_UNLOCK , EVENT_TELEPORT , EVENT_HARVEST ,
  EVENT_BOLT , EVENT_RESUME_ATTACK
}
 
enum  Actions { ACTION_GATE_OPENED = 1 , ACTION_MINION_EVADE , ACTION_ACQUIRE_TARGET }
 
enum  Side { SIDE_NONE = 0 , SIDE_LIVING , SIDE_DEAD }
 

Functions

static Side GetSide (Position const *who)
 
static bool IsOnSameSide (Position const *who, Position const *other)
 
static PlayerFindEligibleTarget (Creature const *me, bool isGateOpen)
 
void AddSC_boss_gothik ()
 

Variables

static AreaBoundary *const livingSide = new RectangleBoundary(2633.84f, 2750.49f, -3434.0f, -3360.78f)
 
static AreaBoundary *const deadSide = new RectangleBoundary(2633.84f, 2750.49f, -3360.78f, -3285.0f)
 
static constexpr std::array< GothikWaveInfo, 19 > waves10
 
static constexpr std::array< GothikWaveInfo, 18 > waves25
 
const uint32 CGUID_TRIGGER = 127618
 

Macro Definition Documentation

◆ SPELL_ARCANE_EXPLOSION

#define SPELL_ARCANE_EXPLOSION   RAID_MODE<uint32>(27989, 56407)

Definition at line 82 of file boss_gothik.cpp.

◆ SPELL_DEATH_PLAGUE

#define SPELL_DEATH_PLAGUE   RAID_MODE<uint32>(55604, 55645)

Definition at line 80 of file boss_gothik.cpp.

◆ SPELL_DRAIN_LIFE

#define SPELL_DRAIN_LIFE   RAID_MODE<uint32>(27994, 55646)

Definition at line 83 of file boss_gothik.cpp.

◆ SPELL_SHADOW_BOLT_VOLLEY

#define SPELL_SHADOW_BOLT_VOLLEY   RAID_MODE<uint32>(27831, 55638)

Definition at line 81 of file boss_gothik.cpp.

◆ SPELL_UNHOLY_AURA

#define SPELL_UNHOLY_AURA   RAID_MODE<uint32>(55606, 55608)

Definition at line 79 of file boss_gothik.cpp.

◆ SPELL_UNHOLY_FRENZY

#define SPELL_UNHOLY_FRENZY   RAID_MODE<uint32>(55648,27995)

Definition at line 84 of file boss_gothik.cpp.

Enumeration Type Documentation

◆ Actions

enum Actions
Enumerator
ACTION_GATE_OPENED 
ACTION_MINION_EVADE 
ACTION_ACQUIRE_TARGET 

Definition at line 119 of file boss_gothik.cpp.

◆ Creatures

enum Creatures
Enumerator
NPC_LIVE_TRAINEE 
NPC_LIVE_KNIGHT 
NPC_LIVE_RIDER 
NPC_DEAD_TRAINEE 
NPC_DEAD_KNIGHT 
NPC_DEAD_RIDER 
NPC_DEAD_HORSE 
NPC_TRIGGER 

Definition at line 86 of file boss_gothik.cpp.

◆ Events

enum Events
Enumerator
EVENT_INTRO_2 
EVENT_INTRO_3 
EVENT_INTRO_4 
EVENT_PHASE_TWO 
EVENT_SUMMON 
EVENT_DOORS_UNLOCK 
EVENT_TELEPORT 
EVENT_HARVEST 
EVENT_BOLT 
EVENT_RESUME_ATTACK 

Definition at line 105 of file boss_gothik.cpp.

◆ Phases

enum Phases
Enumerator
PHASE_ONE 
PHASE_TWO 

Definition at line 99 of file boss_gothik.cpp.

◆ Side

enum Side
Enumerator
SIDE_NONE 
SIDE_LIVING 
SIDE_DEAD 

Definition at line 129 of file boss_gothik.cpp.

◆ Spells

enum Spells
Enumerator
SPELL_SHADOW_MARK 
SPELL_WHIRLWIND 
SPELL_STOMP 
SPELL_HARVEST_SOUL 
SPELL_SHADOW_BOLT 
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_TELEPORT_DEAD 
SPELL_TELEPORT_LIVE 

Definition at line 46 of file boss_gothik.cpp.

◆ 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 

Definition at line 32 of file boss_gothik.cpp.

Function Documentation

◆ AddSC_boss_gothik()

void AddSC_boss_gothik ( )

Definition at line 905 of file boss_gothik.cpp.

+ Here is the caller graph for this function:

◆ FindEligibleTarget()

static Player * FindEligibleTarget ( Creature const *  me,
bool  isGateOpen 
)
static

Definition at line 147 of file boss_gothik.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSide()

static Side GetSide ( Position const *  who)
inlinestatic

Definition at line 135 of file boss_gothik.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsOnSameSide()

static bool IsOnSameSide ( Position const *  who,
Position const *  other 
)
inlinestatic

Definition at line 143 of file boss_gothik.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ CGUID_TRIGGER

const uint32 CGUID_TRIGGER = 127618

Definition at line 301 of file boss_gothik.cpp.

◆ deadSide

AreaBoundary* const deadSide = new RectangleBoundary(2633.84f, 2750.49f, -3360.78f, -3285.0f)
static

Definition at line 128 of file boss_gothik.cpp.

◆ livingSide

AreaBoundary* const livingSide = new RectangleBoundary(2633.84f, 2750.49f, -3434.0f, -3360.78f)
static

Definition at line 127 of file boss_gothik.cpp.

◆ waves10

constexpr std::array<GothikWaveInfo, 19> waves10
staticconstexpr

Definition at line 180 of file boss_gothik.cpp.

◆ waves25

constexpr std::array<GothikWaveInfo, 18> waves25
staticconstexpr

Definition at line 241 of file boss_gothik.cpp.