AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
boss_skadi.cpp File Reference
#include "CombatAI.h"
#include "CreatureScript.h"
#include "GridNotifiers.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "utgarde_pinnacle.h"

Go to the source code of this file.

Classes

class  boss_skadi
 
struct  boss_skadi::boss_skadiAI
 
class  boss_skadi_grauf
 
struct  boss_skadi_grauf::boss_skadi_graufAI
 
class  spell_skadi_launch_harpoon
 
class  spell_skadi_poisoned_spear
 
class  spell_freezing_cloud_area_right
 
class  spell_freezing_cloud_area_left
 
class  spell_freezing_cloud_damage
 
class  spell_summon_gauntlet_mobs_periodic
 
class  spell_skadi_reset_check
 

Enumerations

enum  Spells {
  SPELL_CRUSH = 50234 ,
  SPELL_POISONED_SPEAR = 50255 ,
  SPELL_POISONED_SPEAR_PERIODIC = 50258 ,
  SPELL_WHIRLWIND = 50228 ,
  SPELL_LAUNCH_HARPOON = 48642 ,
  SPELL_SKADI_TELEPORT = 61790 ,
  SPELL_FREEZING_CLOUD = 47579 ,
  SPELL_FREEZING_CLOUD_RIGHT_PERIODIC = 47592 ,
  SPELL_FREEZING_CLOUD_LEFT_PERIODIC = 47590 ,
  SPELL_FREEZING_CLOUD_RIGHT_AREA = 47594 ,
  SPELL_FREEZING_CLOUD_LEFT_AREA = 47574 ,
  SPELL_SUMMON_GAUNTLET_MOBS_PERIODIC = 59275 ,
  SPELL_SUMMON_YMIRJAR_WARRIOR_W = 48631 ,
  SPELL_SUMMON_YMIRJAR_WARRIOR_E = 48632 ,
  SPELL_SUMMON_YMIRJAR_HARPOONER_W = 48633 ,
  SPELL_SUMMON_YMIRJAR_HARPOONER_E = 48634 ,
  SPELL_SUMMON_YMIRJAR_WITCH_DOCTOR_W = 48635 ,
  SPELL_SUMMON_YMIRJAR_WITCH_DOCTOR_E = 48636 ,
  SPELL_GAUNTLET_RESET_CHECK = 49308 ,
  SPELL_GAUNTLET_EFFECT = 47547
}
 
enum  Texts {
  SAY_AGGRO = 0 ,
  SAY_KILL = 1 ,
  SAY_DEATH = 3 ,
  SAY_DRAKE_DEATH = 5 ,
  SAY_DRAKE_BREATH = 6 ,
  EMOTE_DEEP_BREATH = 0 ,
  EMOTE_ON_RANGE = 1
}
 
enum  Actions {
  ACTION_START_ENCOUNTER = 1 ,
  ACTION_DRAKE_BREATH = 2 ,
  ACTION_PHASE2 = 3 ,
  ACTION_HARPOON_HIT = 4
}
 
enum  CombatPhase {
  PHASE_FLYING = 0 ,
  PHASE_GROUND
}
 
enum  MiscData {
  NPC_GRAUF = 26893 ,
  NPC_TRIGGER_RESET = 23472 ,
  NPC_WORLD_TRIGGER = 22515 ,
  NPC_COMBAT_TRIGGER = 38667 ,
  ACHIEV_TIMED_LODI_DODI = 17726 ,
  FIRST_WAVE_MAX_WARRIORS = 10 ,
  FIRST_WAVE_SIZE = 13
}
 
enum  GraufPoints {
  POINT_BREACH = 0 ,
  POINT_LEFT = 1 ,
  POINT_RIGHT = 2
}
 
enum  Events {
  EVENT_SKADI_CRUSH = 1 ,
  EVENT_SKADI_SPEAR = 2 ,
  EVENT_SKADI_WHIRLWIND = 3 ,
  EVENT_SKADI_RESET_CHECK = 4 ,
  EVENT_GRAUF_START = 10 ,
  EVENT_GRAUF_LEAVE_BREACH = 11 ,
  EVENT_GRAUF_REMOVE_AURA = 13
}
 

Functions

void AddSC_boss_skadi ()
 

Variables

Position const GraufLoc = { 341.741f, -516.955f, 104.670f, 3.12414f }
 
Position const SpawnLoc = { 477.581f, -484.559f, 104.822f, 4.67748f }
 
Position const FirstWaveLocations [FIRST_WAVE_SIZE]
 
Position const SecondaryWavesInitialPoint = { 478.743f, -505.576f, 104.724f }
 
uint32 const PATH_INITIAL = 2689300
 
uint32 const PATH_RIGHT = 2689301
 
uint32 const PATH_LEFT = 2689302
 
float const BreachFacing = 2.670354f
 

Enumeration Type Documentation

◆ Actions

enum Actions
Enumerator
ACTION_START_ENCOUNTER 
ACTION_DRAKE_BREATH 
ACTION_PHASE2 
ACTION_HARPOON_HIT 
70{
73 ACTION_PHASE2 = 3,
75};
@ ACTION_PHASE2
Definition boss_skadi.cpp:73
@ ACTION_HARPOON_HIT
Definition boss_skadi.cpp:74
@ ACTION_START_ENCOUNTER
Definition boss_skadi.cpp:71
@ ACTION_DRAKE_BREATH
Definition boss_skadi.cpp:72

◆ CombatPhase

Enumerator
PHASE_FLYING 
PHASE_GROUND 
78{
79 PHASE_FLYING = 0,
81};
@ PHASE_FLYING
Definition boss_skadi.cpp:79
@ PHASE_GROUND
Definition boss_skadi.cpp:80

◆ Events

enum Events
Enumerator
EVENT_SKADI_CRUSH 
EVENT_SKADI_SPEAR 
EVENT_SKADI_WHIRLWIND 
EVENT_SKADI_RESET_CHECK 
EVENT_GRAUF_START 
EVENT_GRAUF_LEAVE_BREACH 
EVENT_GRAUF_REMOVE_AURA 
132{
133 // Skadi
138
139 // Grauf
143};
@ EVENT_SKADI_WHIRLWIND
Definition boss_skadi.cpp:136
@ EVENT_SKADI_SPEAR
Definition boss_skadi.cpp:135
@ EVENT_GRAUF_REMOVE_AURA
Definition boss_skadi.cpp:142
@ EVENT_GRAUF_LEAVE_BREACH
Definition boss_skadi.cpp:141
@ EVENT_SKADI_RESET_CHECK
Definition boss_skadi.cpp:137
@ EVENT_SKADI_CRUSH
Definition boss_skadi.cpp:134
@ EVENT_GRAUF_START
Definition boss_skadi.cpp:140

◆ GraufPoints

Enumerator
POINT_BREACH 
POINT_LEFT 
POINT_RIGHT 
119{
120 POINT_BREACH = 0,
121 POINT_LEFT = 1,
122 POINT_RIGHT = 2,
123};
@ POINT_RIGHT
Definition boss_skadi.cpp:122
@ POINT_BREACH
Definition boss_skadi.cpp:120
@ POINT_LEFT
Definition boss_skadi.cpp:121

◆ MiscData

enum MiscData
Enumerator
NPC_GRAUF 
NPC_TRIGGER_RESET 
NPC_WORLD_TRIGGER 
NPC_COMBAT_TRIGGER 
ACHIEV_TIMED_LODI_DODI 
FIRST_WAVE_MAX_WARRIORS 
FIRST_WAVE_SIZE 
84{
85 NPC_GRAUF = 26893,
86 NPC_TRIGGER_RESET = 23472,
87 NPC_WORLD_TRIGGER = 22515,
88 NPC_COMBAT_TRIGGER = 38667,
89
91
93 FIRST_WAVE_SIZE = 13,
94};
@ FIRST_WAVE_MAX_WARRIORS
Definition boss_skadi.cpp:92
@ NPC_TRIGGER_RESET
Definition boss_skadi.cpp:86
@ NPC_COMBAT_TRIGGER
Definition boss_skadi.cpp:88
@ NPC_WORLD_TRIGGER
Definition boss_skadi.cpp:87
@ ACHIEV_TIMED_LODI_DODI
Definition boss_skadi.cpp:90
@ NPC_GRAUF
Definition boss_skadi.cpp:85
@ FIRST_WAVE_SIZE
Definition boss_skadi.cpp:93

◆ Spells

enum Spells
Enumerator
SPELL_CRUSH 
SPELL_POISONED_SPEAR 
SPELL_POISONED_SPEAR_PERIODIC 
SPELL_WHIRLWIND 
SPELL_LAUNCH_HARPOON 
SPELL_SKADI_TELEPORT 
SPELL_FREEZING_CLOUD 
SPELL_FREEZING_CLOUD_RIGHT_PERIODIC 
SPELL_FREEZING_CLOUD_LEFT_PERIODIC 
SPELL_FREEZING_CLOUD_RIGHT_AREA 
SPELL_FREEZING_CLOUD_LEFT_AREA 
SPELL_SUMMON_GAUNTLET_MOBS_PERIODIC 
SPELL_SUMMON_YMIRJAR_WARRIOR_W 
SPELL_SUMMON_YMIRJAR_WARRIOR_E 
SPELL_SUMMON_YMIRJAR_HARPOONER_W 
SPELL_SUMMON_YMIRJAR_HARPOONER_E 
SPELL_SUMMON_YMIRJAR_WITCH_DOCTOR_W 
SPELL_SUMMON_YMIRJAR_WITCH_DOCTOR_E 
SPELL_GAUNTLET_RESET_CHECK 
SPELL_GAUNTLET_EFFECT 
30{
31 // Skadi
32 SPELL_CRUSH = 50234,
35 SPELL_WHIRLWIND = 50228,
38
39 // Grauf
45
46 // Gauntlet
56};
@ SPELL_FREEZING_CLOUD_LEFT_PERIODIC
Definition boss_skadi.cpp:42
@ SPELL_SUMMON_YMIRJAR_WARRIOR_E
Definition boss_skadi.cpp:49
@ SPELL_SUMMON_YMIRJAR_WARRIOR_W
Definition boss_skadi.cpp:48
@ SPELL_SKADI_TELEPORT
Definition boss_skadi.cpp:37
@ SPELL_SUMMON_YMIRJAR_HARPOONER_W
Definition boss_skadi.cpp:50
@ SPELL_SUMMON_YMIRJAR_HARPOONER_E
Definition boss_skadi.cpp:51
@ SPELL_SUMMON_YMIRJAR_WITCH_DOCTOR_E
Definition boss_skadi.cpp:53
@ SPELL_FREEZING_CLOUD_RIGHT_AREA
Definition boss_skadi.cpp:43
@ SPELL_POISONED_SPEAR_PERIODIC
Definition boss_skadi.cpp:34
@ SPELL_POISONED_SPEAR
Definition boss_skadi.cpp:33
@ SPELL_GAUNTLET_RESET_CHECK
Definition boss_skadi.cpp:54
@ SPELL_LAUNCH_HARPOON
Definition boss_skadi.cpp:36
@ SPELL_FREEZING_CLOUD_RIGHT_PERIODIC
Definition boss_skadi.cpp:41
@ SPELL_GAUNTLET_EFFECT
Definition boss_skadi.cpp:55
@ SPELL_FREEZING_CLOUD_LEFT_AREA
Definition boss_skadi.cpp:44
@ SPELL_SUMMON_YMIRJAR_WITCH_DOCTOR_W
Definition boss_skadi.cpp:52
@ SPELL_WHIRLWIND
Definition boss_skadi.cpp:35
@ SPELL_SUMMON_GAUNTLET_MOBS_PERIODIC
Definition boss_skadi.cpp:47
@ SPELL_FREEZING_CLOUD
Definition boss_skadi.cpp:40
@ SPELL_CRUSH
Definition boss_skadi.cpp:32

◆ Texts

enum Texts
Enumerator
SAY_AGGRO 
SAY_KILL 
SAY_DEATH 
SAY_DRAKE_DEATH 
SAY_DRAKE_BREATH 
EMOTE_DEEP_BREATH 
EMOTE_ON_RANGE 
59{
60 SAY_AGGRO = 0,
61 SAY_KILL = 1,
62 SAY_DEATH = 3,
67};
@ SAY_DEATH
Definition boss_skadi.cpp:62
@ SAY_DRAKE_DEATH
Definition boss_skadi.cpp:63
@ EMOTE_DEEP_BREATH
Definition boss_skadi.cpp:65
@ SAY_AGGRO
Definition boss_skadi.cpp:60
@ SAY_KILL
Definition boss_skadi.cpp:61
@ SAY_DRAKE_BREATH
Definition boss_skadi.cpp:64
@ EMOTE_ON_RANGE
Definition boss_skadi.cpp:66

Function Documentation

◆ AddSC_boss_skadi()

void AddSC_boss_skadi ( )
699{
700 new boss_skadi();
701 new boss_skadi_grauf();
709}
#define RegisterSpellScript(spell_script)
Definition SpellScriptLoader.h:88
Definition boss_skadi.cpp:385
Definition boss_skadi.cpp:146
Definition boss_skadi.cpp:560
Definition boss_skadi.cpp:533
Definition boss_skadi.cpp:587
Definition boss_skadi.cpp:488
Definition boss_skadi.cpp:512
Definition boss_skadi.cpp:664
Definition boss_skadi.cpp:606

References RegisterSpellScript.

Referenced by AddNorthrendScripts().

Variable Documentation

◆ BreachFacing

float const BreachFacing = 2.670354f

◆ FirstWaveLocations

Position const FirstWaveLocations[FIRST_WAVE_SIZE]
Initial value:
=
{
{ 458.532f, -516.254f, 104.617f },
{ 429.424f, -517.562f, 104.894f },
{ 394.496f, -514.614f, 104.724f },
{ 362.286f, -515.877f, 104.754f },
{ 333.537f, -514.794f, 104.478f },
{ 457.611f, -508.836f, 104.401f },
{ 427.403f, -510.772f, 104.880f },
{ 392.511f, -507.943f, 104.743f },
{ 362.951f, -508.412f, 104.722f },
{ 333.536f, -506.081f, 104.426f },
{ 478.310f, -511.049f, 104.724f, 3.26377f },
{ 482.250f, -514.127f, 104.723f, 3.26377f },
{ 481.388f, -507.109f, 104.724f, 3.26377f },
}
100{
101 { 458.532f, -516.254f, 104.617f },
102 { 429.424f, -517.562f, 104.894f },
103 { 394.496f, -514.614f, 104.724f },
104 { 362.286f, -515.877f, 104.754f },
105 { 333.537f, -514.794f, 104.478f },
106 { 457.611f, -508.836f, 104.401f },
107 { 427.403f, -510.772f, 104.880f },
108 { 392.511f, -507.943f, 104.743f },
109 { 362.951f, -508.412f, 104.722f },
110 { 333.536f, -506.081f, 104.426f },
111 { 478.310f, -511.049f, 104.724f, 3.26377f },
112 { 482.250f, -514.127f, 104.723f, 3.26377f },
113 { 481.388f, -507.109f, 104.724f, 3.26377f },
114};

Referenced by boss_skadi::boss_skadiAI::SpawnFirstWave().

◆ GraufLoc

Position const GraufLoc = { 341.741f, -516.955f, 104.670f, 3.12414f }
96{ 341.741f, -516.955f, 104.670f, 3.12414f };

Referenced by boss_skadi::boss_skadiAI::Reset().

◆ PATH_INITIAL

uint32 const PATH_INITIAL = 2689300

◆ PATH_LEFT

uint32 const PATH_LEFT = 2689302

◆ PATH_RIGHT

uint32 const PATH_RIGHT = 2689301

◆ SecondaryWavesInitialPoint

Position const SecondaryWavesInitialPoint = { 478.743f, -505.576f, 104.724f }
116{ 478.743f, -505.576f, 104.724f };

Referenced by boss_skadi::boss_skadiAI::JustSummoned().

◆ SpawnLoc

Position const SpawnLoc = { 477.581f, -484.559f, 104.822f, 4.67748f }
97{ 477.581f, -484.559f, 104.822f, 4.67748f };

Referenced by boss_skadi::boss_skadiAI::DoAction(), and boss_skadi::boss_skadiAI::SpawnFirstWave().