refactor(Scripts/Instances): move spell ids for Heroic to dungeondifficulty_dbc (#23470)

This commit is contained in:
Tereneckla
2025-10-30 12:13:56 +00:00
committed by GitHub
parent aa61ae9a3e
commit e0685a1089
36 changed files with 410 additions and 413 deletions

View File

@@ -0,0 +1,151 @@
DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (50044,50774,50804,51153,51121,51110,51054,50785,61407,52774,52960,52961,52387,52237,52433,52429,51012,50988,51136,12167,15654,12734,50843,50810,50868,50761,50760,50752,50830,50831,50834,50840,50838,50895,50900,48261,48256,48136,48133,48130,48105,48140,48137,50234,50255,47579,15667,48294,48291,48529,48423,48380,42708,42669,42705,42729,42730,43667,43649,52445,52737,52771,52720,52722,52721,52696,52666,57725,52480,56855,56891,56926,55959,36176,34941,67774,68783,57058,56272,61693,57407,58459,58462,58463,58456,58455,58458,58457,60181,60182,31956,72395,72396,72397);
INSERT INTO `spelldifficulty_dbc` (`ID`,`DifficultySpellID_1`,`DifficultySpellID_2`,`DifficultySpellID_3`,`DifficultySpellID_4`) VALUES
-- Oculus
(50044,50044,59213,0,0),
-- Drakos
(50774,50774,59370,0,0),
-- Eregos
(50804,50804,59381,0,0),
(51153,51153,59382,0,0),
-- Urom
(51121,51121,59376,0,0),
(51110,51110,59377,0,0),
-- Varos
(51054,51054,59371,0,0),
(50785,50785,59372,0,0),
(61407,61407,62136,0,0),
-- Halls of Lightning
-- Bjarngrimm
(52774,52774,59160,0,0),
-- Loken
(52960,52960,59835,0,0),
(52961,52961,59836,0,0),
-- Volkhan
(52387,52387,59528,0,0),
(52237,52237,59529,0,0),
(52433,52433,59530,0,0),
(52429,52429,59527,0,0),
-- Halls of Stone
-- Brann
(51012,51012,59868,0,0),
(50988,50988,59870,0,0),
(51136,51136,59867,0,0),
(12167,12167,59863,0,0),
(15654,15654,59864,0,0),
(12734,12734,59865,0,0),
-- Krystallus
(50843,50843,59742,0,0),
(50810,50810,61546,0,0),
(50868,50868,58744,0,0),
-- Maiden of Grief
(50761,50761,59727,0,0),
(50760,50760,59726,0,0),
(50752,50752,59772,0,0),
-- Sjonnir
(50830,50830,59844,0,0),
(50831,50831,59845,0,0),
(50834,50834,59846,0,0),
(50840,50840,59848,0,0),
(50838,50838,59853,0,0),
(50895,50895,59851,0,0),
(50900,50900,59852,0,0),
-- Utgarde Keep
-- Palehoof
(48261,48261,59268,0,0),
(48256,48256,59267,0,0),
(48136,48136,59272,0,0),
(48133,48133,59271,0,0),
(48130,48130,59264,0,0),
(48105,48105,59263,0,0),
(48140,48140,59273,0,0),
(48137,48137,59265,0,0),
-- Skadi
(50234,50234,59330,0,0),
(50255,50255,59331,0,0),
(47579,47579,60020,0,0),
-- Svala
(15667,15667,59409,0,0),
-- Ymiron
(48294,48294,59301,0,0),
(48291,48291,59300,0,0),
(48529,48529,59305,0,0),
(48423,48423,59304,0,0),
(48380,48380,59320,0,0),
-- Ingvar
(42708,42708,59708,0,0),
(42669,42669,59706,0,0),
(42705,42705,59707,0,0),
(42729,42729,59734,0,0),
(42730,42730,59735,0,0),
-- Keleseth
(43667,43667,59389,0,0),
-- Skarvald
(43649,43649,59575,0,0),
-- Culling of Stratholm
(52445,52445,58822,0,0),
-- Epoch Hunter
(52737,52737,58829,0,0),
(52771,52771,58830,0,0),
-- Malganis
(52720,52720,58852,0,0),
(52722,52722,58850,0,0),
(52721,52721,58849,0,0),
-- Meathook
(52696,52696,58823,0,0),
(52666,52666,58824,0,0),
-- Salramm
(57725,57725,58827,0,0),
(52480,52480,58825,0,0),
-- Ahnkahet
-- Jedoga
(56855,56855,60030,0,0),
(56891,56891,60032,0,0),
(56926,56926,60029,0,0),
-- Taldaram
(55959,55959,59513,0,0),
-- Trial of the Champio
-- Argent Challenge
(36176,36176,67289,0,0),
(34941,34941,34942,0,0),
-- Grand Champions
(68783,68783,68784,0,0),
-- Eye of Eternity
(57058,57058,60073,0,0),
-- Malygos
(56272,56272,60072,0,0),
(61693,61693,61694,0,0),
(57407,57407,60936,0,0),
-- Violet Hold
(58459,58459,59256,0,0),
(58462,58462,59257,0,0),
(58463,58463,59258,0,0),
(58456,58456,59248,0,0),
(58455,58455,59245,0,0),
(58458,58458,59253,0,0),
(58457,58457,59251,0,0),
(60181,60181,60204,0,0),
(60182,60182,60205,0,0),
-- Halls Of Reflection
-- Falric
(72395,72395,72390,0,0),
(72396,72396,72391,0,0),
(72397,72397,72393,0,0),
-- Slave Pens
-- Rokmar
(31956,31956,38801,0,0);
DELETE FROM `spell_script_names` WHERE `spell_id` IN (67774,67879,67886);
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(67774, "spell_black_knight_ghoul_claw"),
(67879, "spell_black_knight_ghoul_claw"),
(67886, "spell_black_knight_ghoul_explode");

View File

@@ -53,7 +53,7 @@ enum Spells
SPELL_FAERIE_DRAGON_FORM = 27546, SPELL_FAERIE_DRAGON_FORM = 27546,
SPELL_ARCANE_EXPLOSION = 22271, SPELL_ARCANE_EXPLOSION = 22271,
SPELL_REFLECTION = 27564, SPELL_REFLECTION = 27564,
SPELL_CHAIN_LIGHTING = 27567, SPELL_CHAIN_LIGHTNING = 27567,
SPELL_SLEEP = 20663 // Guessed SPELL_SLEEP = 20663 // Guessed
}; };
@@ -68,7 +68,7 @@ enum Phases
std::vector<uint32> catSpells = { SPELL_SHRED, SPELL_RAKE, SPELL_FEROCIOUS_BITE }; std::vector<uint32> catSpells = { SPELL_SHRED, SPELL_RAKE, SPELL_FEROCIOUS_BITE };
std::vector<uint32> humanSpells = { SPELL_HURRICANE, SPELL_MOONFIRE, SPELL_SHOCK, SPELL_HEALING_TOUCH, SPELL_REJUVENATION }; std::vector<uint32> humanSpells = { SPELL_HURRICANE, SPELL_MOONFIRE, SPELL_SHOCK, SPELL_HEALING_TOUCH, SPELL_REJUVENATION };
std::vector<uint32> bearSpells = { SPELL_DEMORALIZING_ROAR, SPELL_MAUL, SPELL_SWIPE }; std::vector<uint32> bearSpells = { SPELL_DEMORALIZING_ROAR, SPELL_MAUL, SPELL_SWIPE };
std::vector<uint32> faerieSpells = { SPELL_ARCANE_EXPLOSION, SPELL_REFLECTION, SPELL_CHAIN_LIGHTING, SPELL_SLEEP }; std::vector<uint32> faerieSpells = { SPELL_ARCANE_EXPLOSION, SPELL_REFLECTION, SPELL_CHAIN_LIGHTNING, SPELL_SLEEP };
struct boss_mor_grayhoof : public BossAI struct boss_mor_grayhoof : public BossAI
{ {

View File

@@ -18,17 +18,16 @@
#include "CreatureScript.h" #include "CreatureScript.h"
#include "ScriptedCreature.h" #include "ScriptedCreature.h"
#include "SpellInfo.h" #include "SpellInfo.h"
#include "SpellMgr.h"
#include "culling_of_stratholme.h" #include "culling_of_stratholme.h"
enum Spells enum Spells
{ {
SPELL_CURSE_OF_EXERTION = 52772, SPELL_CURSE_OF_EXERTION = 52772,
SPELL_WOUNDING_STRIKE_N = 52771, SPELL_WOUNDING_STRIKE = 52771,
SPELL_WOUNDING_STRIKE_H = 58830,
SPELL_TIME_STOP = 58848, SPELL_TIME_STOP = 58848,
SPELL_TIME_WARP = 52766, SPELL_TIME_WARP = 52766,
SPELL_TIME_STEP_N = 52737, SPELL_TIME_STEP = 52737,
SPELL_TIME_STEP_H = 58829,
}; };
enum Events enum Events
@@ -87,7 +86,7 @@ public:
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
{ {
if (spellInfo->Id == SPELL_TIME_STEP_H || spellInfo->Id == SPELL_TIME_STEP_N) if (spellInfo->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_TIME_STEP, me))
{ {
if (target == me) if (target == me)
return; return;
@@ -98,7 +97,7 @@ public:
return; return;
} }
warps++; warps++;
me->CastSpell(target, DUNGEON_MODE(SPELL_TIME_STEP_N, SPELL_TIME_STEP_H), true); me->CastSpell(target, SPELL_TIME_STEP, true);
} }
} }
@@ -119,7 +118,7 @@ public:
events.Repeat(9s); events.Repeat(9s);
break; break;
case EVENT_SPELL_WOUNDING_STRIKE: case EVENT_SPELL_WOUNDING_STRIKE:
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_WOUNDING_STRIKE_N, SPELL_WOUNDING_STRIKE_H), false); me->CastSpell(me->GetVictim(), SPELL_WOUNDING_STRIKE, false);
events.Repeat(6s); events.Repeat(6s);
break; break;
case EVENT_SPELL_TIME_STOP: case EVENT_SPELL_TIME_STOP:
@@ -130,7 +129,7 @@ public:
Talk(SAY_TIME_WARP); Talk(SAY_TIME_WARP);
me->CastSpell(me, SPELL_TIME_WARP, false); me->CastSpell(me, SPELL_TIME_WARP, false);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, DUNGEON_MODE(SPELL_TIME_STEP_N, SPELL_TIME_STEP_H), true); me->CastSpell(target, SPELL_TIME_STEP, true);
events.Repeat(25s); events.Repeat(25s);
break; break;

View File

@@ -22,12 +22,9 @@
enum Spells enum Spells
{ {
SPELL_CARRION_SWARM_N = 52720, SPELL_CARRION_SWARM = 52720,
SPELL_CARRION_SWARM_H = 58852, SPELL_MIND_BLAST = 52722,
SPELL_MIND_BLAST_N = 52722, SPELL_SLEEP = 52721,
SPELL_MIND_BLAST_H = 58850,
SPELL_SLEEP_N = 52721,
SPELL_SLEEP_H = 58849,
SPELL_VAMPIRIC_TOUCH = 52723, SPELL_VAMPIRIC_TOUCH = 52723,
}; };
@@ -145,18 +142,18 @@ public:
switch (events.ExecuteEvent()) switch (events.ExecuteEvent())
{ {
case EVENT_SPELL_CARRION_SWARM: case EVENT_SPELL_CARRION_SWARM:
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_CARRION_SWARM_N, SPELL_CARRION_SWARM_H), false); me->CastSpell(me->GetVictim(), SPELL_CARRION_SWARM, false);
events.Repeat(7s); events.Repeat(7s);
break; break;
case EVENT_SPELL_MIND_BLAST: case EVENT_SPELL_MIND_BLAST:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, DUNGEON_MODE(SPELL_MIND_BLAST_N, SPELL_MIND_BLAST_H), false); me->CastSpell(target, SPELL_MIND_BLAST, false);
events.Repeat(6s); events.Repeat(6s);
break; break;
case EVENT_SPELL_SLEEP: case EVENT_SPELL_SLEEP:
Talk(SAY_SLEEP); Talk(SAY_SLEEP);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, DUNGEON_MODE(SPELL_SLEEP_N, SPELL_SLEEP_H), false); me->CastSpell(target, SPELL_SLEEP, false);
events.Repeat(17s); events.Repeat(17s);
break; break;
case EVENT_SPELL_VAMPIRIC_TOUCH: case EVENT_SPELL_VAMPIRIC_TOUCH:

View File

@@ -21,10 +21,8 @@
enum Spells enum Spells
{ {
SPELL_CONSTRICTING_CHAINS_N = 52696, SPELL_CONSTRICTING_CHAINS = 52696,
SPELL_CONSTRICTING_CHAINS_H = 58823, SPELL_DISEASE_EXPULSION = 52666,
SPELL_DISEASE_EXPULSION_N = 52666,
SPELL_DISEASE_EXPULSION_H = 58824,
SPELL_FRENZY = 58841, SPELL_FRENZY = 58841,
}; };
@@ -97,7 +95,7 @@ public:
switch (events.ExecuteEvent()) switch (events.ExecuteEvent())
{ {
case EVENT_SPELL_DISEASE_EXPULSION: case EVENT_SPELL_DISEASE_EXPULSION:
me->CastSpell(me, DUNGEON_MODE(SPELL_DISEASE_EXPULSION_N, SPELL_DISEASE_EXPULSION_H), false); me->CastSpell(me, SPELL_DISEASE_EXPULSION, false);
events.Repeat(6s); events.Repeat(6s);
break; break;
case EVENT_SPELL_FRENZY: case EVENT_SPELL_FRENZY:
@@ -106,7 +104,7 @@ public:
break; break;
case EVENT_SPELL_CONSTRICTING_CHAINS: case EVENT_SPELL_CONSTRICTING_CHAINS:
if (Unit* pTarget = SelectTarget(SelectTargetMethod::MinThreat, 0, 50.0f, true)) if (Unit* pTarget = SelectTarget(SelectTargetMethod::MinThreat, 0, 50.0f, true))
me->CastSpell(pTarget, DUNGEON_MODE(SPELL_CONSTRICTING_CHAINS_N, SPELL_CONSTRICTING_CHAINS_H), false); me->CastSpell(pTarget, SPELL_CONSTRICTING_CHAINS, false);
events.Repeat(14s); events.Repeat(14s);
break; break;
} }

View File

@@ -23,14 +23,12 @@
enum Spells enum Spells
{ {
SPELL_SHADOW_BOLT_N = 57725, SPELL_SHADOW_BOLT = 57725,
SPELL_SHADOW_BOLT_H = 58827,
SPELL_STEAL_FLESH_CHANNEL = 52708, SPELL_STEAL_FLESH_CHANNEL = 52708,
SPELL_STEAL_FLESH_TARGET = 52711, SPELL_STEAL_FLESH_TARGET = 52711,
SPELL_STEAL_FLESH_CASTER = 52712, SPELL_STEAL_FLESH_CASTER = 52712,
SPELL_SUMMON_GHOULS = 52451, SPELL_SUMMON_GHOULS = 52451,
SPELL_EXPLODE_GHOUL_N = 52480, SPELL_EXPLODE_GHOUL = 52480,
SPELL_EXPLODE_GHOUL_H = 58825,
SPELL_CURSE_OF_TWISTED_FAITH = 58845, SPELL_CURSE_OF_TWISTED_FAITH = 58845,
}; };
@@ -112,7 +110,7 @@ public:
if (Creature* cr = ObjectAccessor::GetCreature(*me, (*itr))) if (Creature* cr = ObjectAccessor::GetCreature(*me, (*itr)))
if (cr->IsAlive()) if (cr->IsAlive())
{ {
me->CastSpell(cr, DUNGEON_MODE(SPELL_EXPLODE_GHOUL_N, SPELL_EXPLODE_GHOUL_H), false); me->CastSpell(cr, SPELL_EXPLODE_GHOUL, false);
return; return;
} }
} }
@@ -129,7 +127,7 @@ public:
switch (events.ExecuteEvent()) switch (events.ExecuteEvent())
{ {
case EVENT_SPELL_SHADOW_BOLT: case EVENT_SPELL_SHADOW_BOLT:
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_N, SPELL_SHADOW_BOLT_H), false); me->CastSpell(me->GetVictim(), SPELL_SHADOW_BOLT, false);
events.Repeat(10s); events.Repeat(10s);
break; break;
case EVENT_SPELL_STEAL_FLESH: case EVENT_SPELL_STEAL_FLESH:

View File

@@ -141,8 +141,7 @@ enum Spells
{ {
// Combat spells // Combat spells
SPELL_ARTHAS_AURA = 52442, SPELL_ARTHAS_AURA = 52442,
SPELL_ARTHAS_EXORCISM_N = 52445, SPELL_ARTHAS_EXORCISM = 52445,
SPELL_ARTHAS_EXORCISM_H = 58822,
SPELL_ARTHAS_HOLY_LIGHT = 52444, SPELL_ARTHAS_HOLY_LIGHT = 52444,
// Visuals // Visuals
@@ -1178,7 +1177,7 @@ public:
{ {
case EVENT_COMBAT_EXORCISM: case EVENT_COMBAT_EXORCISM:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(target, DUNGEON_MODE(SPELL_ARTHAS_EXORCISM_N, SPELL_ARTHAS_EXORCISM_H), false); me->CastSpell(target, SPELL_ARTHAS_EXORCISM, false);
combatEvents.Repeat(7300ms); combatEvents.Repeat(7300ms);
break; break;

View File

@@ -54,12 +54,9 @@ enum Spells
// FIGHT // FIGHT
SPELL_GIFT_OF_THE_HERALD = 56219, SPELL_GIFT_OF_THE_HERALD = 56219,
SPELL_CYCLONE_STRIKE = 56855, // Self SPELL_CYCLONE_STRIKE = 56855,
SPELL_CYCLONE_STRIKE_H = 60030, SPELL_LIGHTNING_BOLT = 56891,
SPELL_LIGHTNING_BOLT = 56891, // 40Y SPELL_THUNDERSHOCK = 56926,
SPELL_LIGHTNING_BOLT_H = 60032, // 40Y
SPELL_THUNDERSHOCK = 56926, // 30Y
SPELL_THUNDERSHOCK_H = 60029 // 30Y
}; };
enum Events enum Events
@@ -461,7 +458,7 @@ struct boss_jedoga_shadowseeker : public BossAI
// Normal phase // Normal phase
case EVENT_JEDOGA_CYCLONE: case EVENT_JEDOGA_CYCLONE:
{ {
DoCastSelf(DUNGEON_MODE(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false); DoCastSelf(SPELL_CYCLONE_STRIKE, false);
events.Repeat(10s, 14s); events.Repeat(10s, 14s);
break; break;
} }
@@ -469,7 +466,7 @@ struct boss_jedoga_shadowseeker : public BossAI
{ {
if (Unit* pTarget = SelectTarget(SelectTargetMethod::Random, 0, 100, true)) if (Unit* pTarget = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
{ {
DoCast(pTarget, DUNGEON_MODE(SPELL_LIGHTNING_BOLT, SPELL_LIGHTNING_BOLT_H), false); DoCast(pTarget, SPELL_LIGHTNING_BOLT, false);
} }
events.Repeat(11s, 15s); events.Repeat(11s, 15s);
break; break;
@@ -478,7 +475,7 @@ struct boss_jedoga_shadowseeker : public BossAI
{ {
if (Unit* pTarget = SelectTarget(SelectTargetMethod::Random, 0, 100, true)) if (Unit* pTarget = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
{ {
DoCast(pTarget, DUNGEON_MODE(SPELL_THUNDERSHOCK, SPELL_THUNDERSHOCK_H), false); DoCast(pTarget, SPELL_THUNDERSHOCK, false);
} }
events.Repeat(16s, 22s); events.Repeat(16s, 22s);

View File

@@ -20,6 +20,7 @@
#include "Player.h" #include "Player.h"
#include "ScriptedCreature.h" #include "ScriptedCreature.h"
#include "SpellInfo.h" #include "SpellInfo.h"
#include "SpellMgr.h"
#include "SpellScript.h" #include "SpellScript.h"
#include "SpellScriptLoader.h" #include "SpellScriptLoader.h"
#include "ahnkahet.h" #include "ahnkahet.h"
@@ -38,11 +39,10 @@ enum Spells
SPELL_BEAM_VISUAL = 60342, SPELL_BEAM_VISUAL = 60342,
SPELL_VANISH = 55964, SPELL_VANISH = 55964,
SPELL_SHADOWSTEP = 55966, SPELL_SHADOWSTEP = 55966,
SPELL_HOVER_FALL = 60425 SPELL_HOVER_FALL = 60425,
SPELL_EMBRACE_OF_THE_VAMPYR = 55959,
}; };
#define SPELL_EMBRACE_OF_THE_VAMPYR DUNGEON_MODE(55959, 59513)
enum Spheres enum Spheres
{ {
NPC_FLAME_SPHERE_1 = 30106, NPC_FLAME_SPHERE_1 = 30106,
@@ -291,7 +291,7 @@ struct boss_taldaram : public BossAI
{ {
BossAI::DamageTaken(attacker, damage, damageType, school); BossAI::DamageTaken(attacker, damage, damageType, school);
if (me->FindCurrentSpellBySpellId(SPELL_EMBRACE_OF_THE_VAMPYR)) if (me->FindCurrentSpellBySpellId(sSpellMgr->GetSpellIdForDifficulty(SPELL_EMBRACE_OF_THE_VAMPYR, me)))
{ {
vanishDamage += damage; vanishDamage += damage;
if (vanishDamage >= DUNGEON_MODE<uint32>(MAX_EMBRACE_DMG, MAX_EMBRACE_DMG_H)) if (vanishDamage >= DUNGEON_MODE<uint32>(MAX_EMBRACE_DMG, MAX_EMBRACE_DMG_H))

View File

@@ -45,12 +45,9 @@ enum EadricEvents
enum PaletressSpells enum PaletressSpells
{ {
SPELL_SMITE_N = 66536, SPELL_SMITE = 66536,
SPELL_SMITE_H = 67674, SPELL_HOLY_FIRE = 66538,
SPELL_HOLY_FIRE_N = 66538, SPELL_RENEW = 66537,
SPELL_HOLY_FIRE_H = 67676,
SPELL_RENEW_N = 66537,
SPELL_RENEW_H = 67675,
SPELL_HOLY_NOVA = 66546, SPELL_HOLY_NOVA = 66546,
SPELL_SHIELD = 66515, SPELL_SHIELD = 66515,
@@ -58,21 +55,11 @@ enum PaletressSpells
SPELL_SUMMON_MEMORY = 66545, SPELL_SUMMON_MEMORY = 66545,
//Memory //Memory
SPELL_OLD_WOUNDS_N = 66620, SPELL_OLD_WOUNDS = 66620,
SPELL_OLD_WOUNDS_H = 67679, SPELL_SHADOWS_PAST = 66619,
SPELL_SHADOWS_PAST_N = 66619, SPELL_WAKING_NIGHTMARE = 66552,
SPELL_SHADOWS_PAST_H = 67678,
SPELL_WAKING_NIGHTMARE_N = 66552,
SPELL_WAKING_NIGHTMARE_H = 67677,
}; };
#define SPELL_SMITE DUNGEON_MODE(SPELL_SMITE_N, SPELL_SMITE_H)
#define SPELL_HOLY_FIRE DUNGEON_MODE(SPELL_HOLY_FIRE_N, SPELL_HOLY_FIRE_H)
#define SPELL_RENEW DUNGEON_MODE(SPELL_RENEW_N, SPELL_RENEW_H)
#define SPELL_OLD_WOUNDS DUNGEON_MODE(SPELL_OLD_WOUNDS_N, SPELL_OLD_WOUNDS_H)
#define SPELL_SHADOWS_PAST DUNGEON_MODE(SPELL_SHADOWS_PAST_N, SPELL_SHADOWS_PAST_H)
#define SPELL_WAKING_NIGHTMARE DUNGEON_MODE(SPELL_WAKING_NIGHTMARE_N, SPELL_WAKING_NIGHTMARE_H)
enum PaletressEvents enum PaletressEvents
{ {
EVENT_SPELL_SMITE = 1, EVENT_SPELL_SMITE = 1,
@@ -477,29 +464,22 @@ enum ArgentSoldierSpells
// monk // monk
SPELL_FLURRY_OF_BLOWS = 67233, SPELL_FLURRY_OF_BLOWS = 67233,
SPELL_PUMMEL = 67235, SPELL_PUMMEL = 67235,
SPELL_DIVINE_SHIELD_H = 67251, SPELL_DIVINE_SHIELD = 67251,
SPELL_FINAL_MEDITATION_H = 67255, SPELL_FINAL_MEDITATION = 67255,
// priestess // priestess
SPELL_HOLY_SMITE_N = 36176, SPELL_HOLY_SMITE = 36176,
SPELL_HOLY_SMITE_H = 67289,
SPELL_FOUNTAIN_OF_LIGHT = 67194, SPELL_FOUNTAIN_OF_LIGHT = 67194,
NPC_FOUNTAIN_OF_LIGHT = 35311, NPC_FOUNTAIN_OF_LIGHT = 35311,
SPELL_SHADOW_WORD_PAIN_N = 34941, SPELL_SHADOW_WORD_PAIN = 34941,
SPELL_SHADOW_WORD_PAIN_H = 34942, SPELL_MIND_CONTROL = 67229,
SPELL_MIND_CONTROL_H = 67229,
// lightwielder // lightwielder
SPELL_BLAZING_LIGHT_N = 67247, SPELL_BLAZING_LIGHT = 67247,
SPELL_BLAZING_LIGHT_H = 67290,
SPELL_CLEAVE = 15284, SPELL_CLEAVE = 15284,
SPELL_UNBALANCING_STRIKE_H = 67237, SPELL_UNBALANCING_STRIKE = 67237,
}; };
#define SPELL_HOLY_SMITE DUNGEON_MODE(SPELL_HOLY_SMITE_N, SPELL_HOLY_SMITE_H)
#define SPELL_SHADOW_WORD_PAIN DUNGEON_MODE(SPELL_SHADOW_WORD_PAIN_N, SPELL_SHADOW_WORD_PAIN_H)
#define SPELL_BLAZING_LIGHT DUNGEON_MODE(SPELL_BLAZING_LIGHT_N, SPELL_BLAZING_LIGHT_H)
enum ArgentSoldierEvents enum ArgentSoldierEvents
{ {
EVENT_MONK_SPELL_FLURRY_OF_BLOWS = 1, EVENT_MONK_SPELL_FLURRY_OF_BLOWS = 1,
@@ -507,10 +487,10 @@ enum ArgentSoldierEvents
EVENT_PRIESTESS_SPELL_HOLY_SMITE, EVENT_PRIESTESS_SPELL_HOLY_SMITE,
EVENT_PRIESTESS_SPELL_SHADOW_WORD_PAIN, EVENT_PRIESTESS_SPELL_SHADOW_WORD_PAIN,
EVENT_PRIESTESS_SPELL_FOUNTAIN_OF_LIGHT, EVENT_PRIESTESS_SPELL_FOUNTAIN_OF_LIGHT,
EVENT_PRIESTESS_SPELL_MIND_CONTROL_H, EVENT_PRIESTESS_SPELL_MIND_CONTROL,
EVENT_LIGHTWIELDER_SPELL_BLAZING_LIGHT, EVENT_LIGHTWIELDER_SPELL_BLAZING_LIGHT,
EVENT_LIGHTWIELDER_SPELL_CLEAVE, EVENT_LIGHTWIELDER_SPELL_CLEAVE,
EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE_H, EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE,
}; };
class npc_argent_soldier : public CreatureScript class npc_argent_soldier : public CreatureScript
@@ -619,8 +599,8 @@ public:
bCheck = false; bCheck = false;
damage = me->GetHealth() - 1; damage = me->GetHealth() - 1;
events.DelayEvents(10s); events.DelayEvents(10s);
me->CastSpell(me, SPELL_DIVINE_SHIELD_H, true); me->CastSpell(me, SPELL_DIVINE_SHIELD, true);
me->CastSpell((Unit*)nullptr, SPELL_FINAL_MEDITATION_H, true); me->CastSpell((Unit*)nullptr, SPELL_FINAL_MEDITATION, true);
} }
} }
@@ -639,13 +619,13 @@ public:
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_SHADOW_WORD_PAIN, 3s, 6s); events.RescheduleEvent(EVENT_PRIESTESS_SPELL_SHADOW_WORD_PAIN, 3s, 6s);
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_FOUNTAIN_OF_LIGHT, 8s, 15s); events.RescheduleEvent(EVENT_PRIESTESS_SPELL_FOUNTAIN_OF_LIGHT, 8s, 15s);
if (IsHeroic()) if (IsHeroic())
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_MIND_CONTROL_H, 12s); events.RescheduleEvent(EVENT_PRIESTESS_SPELL_MIND_CONTROL, 12s);
break; break;
case NPC_ARGENT_LIGHTWIELDER: case NPC_ARGENT_LIGHTWIELDER:
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_BLAZING_LIGHT, 12s, 15s); events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_BLAZING_LIGHT, 12s, 15s);
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_CLEAVE, 3s, 5s); events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_CLEAVE, 3s, 5s);
if (IsHeroic()) if (IsHeroic())
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE_H, 8s, 12s); events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE, 8s, 12s);
break; break;
} }
} }
@@ -691,9 +671,9 @@ public:
me->CastSpell((Unit*)nullptr, SPELL_FOUNTAIN_OF_LIGHT, false); me->CastSpell((Unit*)nullptr, SPELL_FOUNTAIN_OF_LIGHT, false);
events.Repeat(35s, 45s); events.Repeat(35s, 45s);
break; break;
case EVENT_PRIESTESS_SPELL_MIND_CONTROL_H: case EVENT_PRIESTESS_SPELL_MIND_CONTROL:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
me->CastSpell(target, SPELL_MIND_CONTROL_H, false); me->CastSpell(target, SPELL_MIND_CONTROL, false);
events.Repeat(22s, 30s); events.Repeat(22s, 30s);
break; break;
@@ -711,9 +691,9 @@ public:
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false); me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
events.Repeat(6s, 8s); events.Repeat(6s, 8s);
break; break;
case EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE_H: case EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE:
if (me->GetVictim()) if (me->GetVictim())
me->CastSpell(me->GetVictim(), SPELL_UNBALANCING_STRIKE_H, false); me->CastSpell(me->GetVictim(), SPELL_UNBALANCING_STRIKE, false);
events.Repeat(12s, 15s); events.Repeat(12s, 15s);
break; break;
} }

View File

@@ -18,7 +18,11 @@
#include "CreatureScript.h" #include "CreatureScript.h"
#include "ScriptedCreature.h" #include "ScriptedCreature.h"
#include "ScriptedEscortAI.h" #include "ScriptedEscortAI.h"
#include "SharedDefines.h"
#include "Spell.h"
#include "SpellInfo.h" #include "SpellInfo.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "trial_of_the_champion.h" #include "trial_of_the_champion.h"
enum Spells enum Spells
@@ -30,49 +34,29 @@ enum Spells
SPELL_BK_KILL_CREDIT = 68663, SPELL_BK_KILL_CREDIT = 68663,
// phase 1 // phase 1
SPELL_PLAGUE_STRIKE_N = 67724, SPELL_PLAGUE_STRIKE = 67724,
SPELL_PLAGUE_STRIKE_H = 67884, SPELL_ICY_TOUCH = 67718,
SPELL_ICY_TOUCH_N = 67718, SPELL_DEATH_RESPITE = 67745,
SPELL_ICY_TOUCH_H = 67881,
SPELL_DEATH_RESPITE_N = 67745,
SPELL_DEATH_RESPITE_H = 68306,
SPELL_DEATH_RESPITE_DUMMY = 66798, SPELL_DEATH_RESPITE_DUMMY = 66798,
SPELL_OBLITERATE_N = 67725, SPELL_OBLITERATE = 67725,
SPELL_OBLITERATE_H = 67883,
// phase 2 (+ abilities from phase 1 without death respite) // phase 2 (+ abilities from phase 1 without death respite)
SPELL_ARMY_DEAD_N = 67761, SPELL_ARMY_DEAD = 67761,
SPELL_ARMY_DEAD_H = 67874, SPELL_DESECRATION = 67778,
SPELL_DESECRATION_N = 67778,
SPELL_DESECRATION_H = 67877,
SPELL_DESECRATION_SUMMON = 67779, SPELL_DESECRATION_SUMMON = 67779,
SPELL_BK_GHOUL_EXPLODE = 67751, SPELL_BK_GHOUL_EXPLODE = 67751,
// phase 3 // phase 3
SPELL_DEATH_BITE_N = 67808, SPELL_DEATH_BITE = 67808,
SPELL_DEATH_BITE_H = 67875, SPELL_MARKED_DEATH = 67823,
SPELL_MARKED_DEATH_N = 67823,
SPELL_MARKED_DEATH_H = 67882,
// ghouls // ghouls
SPELL_CLAW_N = 67774, SPELL_CLAW = 67774,
SPELL_CLAW_H = 67879, SPELL_CLAW_H = 67879,
SPELL_EXPLODE_N = 67729, SPELL_EXPLODE = 67729,
SPELL_EXPLODE_H = 67886, SPELL_EXPLODE_H = 67886,
SPELL_LEAP_N = 67749, SPELL_LEAP = 67749,
SPELL_LEAP_H = 67880,
}; };
#define SPELL_LEAP DUNGEON_MODE(SPELL_LEAP_N, SPELL_LEAP_H)
#define SPELL_EXPLODE DUNGEON_MODE(SPELL_EXPLODE_N, SPELL_EXPLODE_H)
#define SPELL_PLAGUE_STRIKE DUNGEON_MODE(SPELL_PLAGUE_STRIKE_N, SPELL_PLAGUE_STRIKE_H)
#define SPELL_ICY_TOUCH DUNGEON_MODE(SPELL_ICY_TOUCH_N, SPELL_ICY_TOUCH_H)
#define SPELL_DEATH_RESPITE DUNGEON_MODE(SPELL_DEATH_RESPITE_N, SPELL_DEATH_RESPITE_H)
#define SPELL_OBLITERATE DUNGEON_MODE(SPELL_OBLITERATE_N, SPELL_OBLITERATE_H)
#define SPELL_ARMY_DEAD DUNGEON_MODE(SPELL_ARMY_DEAD_N, SPELL_ARMY_DEAD_H)
#define SPELL_DESECRATION DUNGEON_MODE(SPELL_DESECRATION_N, SPELL_DESECRATION_H)
#define SPELL_DEATH_BITE DUNGEON_MODE(SPELL_DEATH_BITE_N, SPELL_DEATH_BITE_H)
#define SPELL_MARKED_DEATH DUNGEON_MODE(SPELL_MARKED_DEATH_N, SPELL_MARKED_DEATH_H)
enum Events enum Events
{ {
@@ -420,27 +404,6 @@ public:
} }
} }
void SpellHitTarget(Unit* target, SpellInfo const* spell) override
{
switch (spell->Id)
{
case SPELL_CLAW_N:
case SPELL_CLAW_H:
DoResetThreatList();
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f))
{
me->AddThreat(target, 100.0f);
AttackStart(target);
}
break;
case SPELL_EXPLODE_H:
if (target && target->IsPlayer())
if (pInstance)
pInstance->SetData(DATA_ACHIEV_IVE_HAD_WORSE, 0);
break;
}
}
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
{ {
if (!UpdateVictim()) if (!UpdateVictim())
@@ -467,7 +430,7 @@ public:
break; break;
case 2: // claw case 2: // claw
if (Unit* target = me->GetVictim()) if (Unit* target = me->GetVictim())
me->CastSpell(target, SPELL_CLAW_N, false); me->CastSpell(target, SPELL_CLAW, false);
events.Repeat(6s, 8s); events.Repeat(6s, 8s);
break; break;
} }
@@ -482,9 +445,51 @@ public:
} }
}; };
//67774,67879
class spell_black_knight_ghoul_claw : public SpellScript
{
PrepareSpellScript(spell_black_knight_ghoul_claw);
void HandleSpellHit(SpellEffIndex /*effIndex*/)
{
if (Unit* caster = GetCaster())
{
GetCaster()->GetThreatMgr().ResetAllThreat();
if (Unit* target = caster->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 30.0f))
{
caster->AddThreat(target, 100.0f);
caster->GetAI()->AttackStart(target);
}
}
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_black_knight_ghoul_claw::HandleSpellHit, EFFECT_0, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE);
}
};
//67886
class spell_black_knight_ghoul_explode : public SpellScript
{
PrepareSpellScript(spell_black_knight_ghoul_explode);
void HandleSpellHit(SpellEffIndex /*effIndex*/)
{
if (GetHitUnit()->IsPlayer())
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
instance->SetData(DATA_ACHIEV_IVE_HAD_WORSE, 0);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_black_knight_ghoul_explode::HandleSpellHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
void AddSC_boss_black_knight() void AddSC_boss_black_knight()
{ {
new boss_black_knight(); new boss_black_knight();
new npc_black_knight_skeletal_gryphon(); new npc_black_knight_skeletal_gryphon();
new npc_black_knight_ghoul(); new npc_black_knight_ghoul();
RegisterSpellScript(spell_black_knight_ghoul_claw);
RegisterSpellScript(spell_black_knight_ghoul_explode);
} }

View File

@@ -56,38 +56,30 @@ enum MountSpells
enum ChampionSpells enum ChampionSpells
{ {
// Mage (Ambrose Boltspark, Eressea Dawnsinger) // Mage (Ambrose Boltspark, Eressea Dawnsinger)
SPELL_FIREBALL_N = 66042, SPELL_FIREBALL = 66042,
SPELL_FIREBALL_H = 68310, SPELL_BLAST_WAVE = 66044,
SPELL_BLAST_WAVE_N = 66044,
SPELL_BLAST_WAVE_H = 68312,
SPELL_HASTE = 66045, SPELL_HASTE = 66045,
SPELL_POLYMORPH_N = 66043, SPELL_POLYMORPH = 66043,
SPELL_POLYMORPH_H = 68311,
// Shaman (Colosos, Runok Wildmane) // Shaman (Colosos, Runok Wildmane)
SPELL_CHAIN_LIGHTNING_N = 67529, SPELL_CHAIN_LIGHTNING = 67529,
SPELL_CHAIN_LIGHTNING_H = 68319,
SPELL_EARTH_SHIELD = 67530, SPELL_EARTH_SHIELD = 67530,
SPELL_HEALING_WAVE_N = 67528, SPELL_HEALING_WAVE = 67528,
SPELL_HEALING_WAVE_H = 68318,
SPELL_HEX_OF_MENDING = 67534, SPELL_HEX_OF_MENDING = 67534,
// Hunter (Jaelyne Evensong, Zul'tore) // Hunter (Jaelyne Evensong, Zul'tore)
SPELL_DISENGAGE = 68339, SPELL_DISENGAGE = 68339,
SPELL_LIGHTNING_ARROWS = 66083, SPELL_LIGHTNING_ARROWS = 66083,
SPELL_MULTI_SHOT = 66081, SPELL_MULTI_SHOT = 66081,
SPELL_SHOOT_N = 65868, SPELL_SHOOT = 65868,
SPELL_SHOOT_H = 67988,
// Rogue (Lana Stouthammer Evensong, Deathstalker Visceri) // Rogue (Lana Stouthammer Evensong, Deathstalker Visceri)
SPELL_EVISCERATE_N = 67709, SPELL_EVISCERATE = 67709,
SPELL_EVISCERATE_H = 68317,
SPELL_FAN_OF_KNIVES = 67706, SPELL_FAN_OF_KNIVES = 67706,
SPELL_POISON_BOTTLE = 67701, SPELL_POISON_BOTTLE = 67701,
// Warrior (Marshal Jacob Alerius, Mokra the Skullcrusher) // Warrior (Marshal Jacob Alerius, Mokra the Skullcrusher)
SPELL_MORTAL_STRIKE_N = 68783, SPELL_MORTAL_STRIKE = 68783,
SPELL_MORTAL_STRIKE_H = 68784,
SPELL_BLADESTORM = 63784, SPELL_BLADESTORM = 63784,
SPELL_INTERCEPT = 67540, SPELL_INTERCEPT = 67540,
SPELL_ROLLING_THROW = 67546, // not implemented yet! SPELL_ROLLING_THROW = 67546, // not implemented yet!
@@ -98,15 +90,6 @@ enum Texts
SAY_TRAMPLED = 0, SAY_TRAMPLED = 0,
}; };
#define SPELL_FIREBALL DUNGEON_MODE(SPELL_FIREBALL_N, SPELL_FIREBALL_H)
#define SPELL_BLAST_WAVE DUNGEON_MODE(SPELL_BLAST_WAVE_N, SPELL_BLAST_WAVE_H)
#define SPELL_POLYMORPH DUNGEON_MODE(SPELL_POLYMORPH_N, SPELL_POLYMORPH_H)
#define SPELL_CHAIN_LIGHTNING DUNGEON_MODE(SPELL_CHAIN_LIGHTNING_N, SPELL_CHAIN_LIGHTNING_H)
#define SPELL_HEALING_WAVE DUNGEON_MODE(SPELL_HEALING_WAVE_N, SPELL_HEALING_WAVE_H)
#define SPELL_SHOOT DUNGEON_MODE(SPELL_SHOOT_N, SPELL_SHOOT_H)
#define SPELL_EVISCERATE DUNGEON_MODE(SPELL_EVISCERATE_N, SPELL_EVISCERATE_H)
#define SPELL_MORTAL_STRIKE DUNGEON_MODE(SPELL_MORTAL_STRIKE_N, SPELL_MORTAL_STRIKE_H)
enum MountEvents enum MountEvents
{ {
EVENT_NONE = 0, EVENT_NONE = 0,

View File

@@ -18,6 +18,7 @@
#include "CreatureScript.h" #include "CreatureScript.h"
#include "halls_of_reflection.h" #include "halls_of_reflection.h"
#include "ScriptedCreature.h" #include "ScriptedCreature.h"
#include "SpellMgr.h"
enum Yells enum Yells
{ {
@@ -44,7 +45,7 @@ enum Events
EVENT_UNROOT, EVENT_UNROOT,
}; };
const uint32 hopelessnessId[3][2] = { {72395, 72390}, {72396, 72391}, {72397, 72393} }; const uint32 hopelessnessId[3] = { 72395, 72396, 72397 };
class boss_falric : public CreatureScript class boss_falric : public CreatureScript
{ {
@@ -143,8 +144,9 @@ public:
if ((uiHopelessnessCount == 0 && HealthBelowPct(67)) || (uiHopelessnessCount == 1 && HealthBelowPct(34)) || (uiHopelessnessCount == 2 && HealthBelowPct(11))) if ((uiHopelessnessCount == 0 && HealthBelowPct(67)) || (uiHopelessnessCount == 1 && HealthBelowPct(34)) || (uiHopelessnessCount == 2 && HealthBelowPct(11)))
{ {
if (uiHopelessnessCount) if (uiHopelessnessCount)
me->RemoveOwnedAura(hopelessnessId[uiHopelessnessCount - 1][DUNGEON_MODE(0, 1)]); me->RemoveOwnedAura(sSpellMgr->GetSpellIdForDifficulty(hopelessnessId[uiHopelessnessCount - 1], me));
me->CastSpell((Unit*)nullptr, hopelessnessId[uiHopelessnessCount][DUNGEON_MODE(0, 1)], true);
me->CastSpell((Unit*)nullptr, hopelessnessId[uiHopelessnessCount], true);
++uiHopelessnessCount; ++uiHopelessnessCount;
} }

View File

@@ -57,10 +57,8 @@ enum MovementInformPoints
enum MalygosSpells enum MalygosSpells
{ {
SPELL_BERSERK = 64238, SPELL_BERSERK = 64238,
SPELL_ARCANE_BREATH_N = 56272, SPELL_ARCANE_BREATH = 56272,
SPELL_ARCANE_BREATH_H = 60072, SPELL_ARCANE_STORM = 61693,
SPELL_ARCANE_STORM_N = 61693,
SPELL_ARCANE_STORM_H = 61694,
SPELL_VORTEX_VISUAL = 55873, SPELL_VORTEX_VISUAL = 55873,
SPELL_VORTEX_CONTROL_VEHICLE = 56263, SPELL_VORTEX_CONTROL_VEHICLE = 56263,
@@ -80,8 +78,7 @@ enum MalygosSpells
SPELL_DESTROY_PLATFORM_VISUAL = 59084, SPELL_DESTROY_PLATFORM_VISUAL = 59084,
SPELL_ARCANE_PULSE = 57432, SPELL_ARCANE_PULSE = 57432,
SPELL_PH3_SURGE_OF_POWER_N = 57407, SPELL_PH3_SURGE_OF_POWER = 57407,
SPELL_PH3_SURGE_OF_POWER_H = 60936,
SPELL_STATIC_FIELD_MAIN = 57430, SPELL_STATIC_FIELD_MAIN = 57430,
SPELL_STATIC_FIELD_SUMMON = 57431, SPELL_STATIC_FIELD_SUMMON = 57431,
@@ -89,10 +86,6 @@ enum MalygosSpells
SPELL_STATIC_FIELD_DAMAGE = 57429, SPELL_STATIC_FIELD_DAMAGE = 57429,
}; };
#define SPELL_ARCANE_BREATH DUNGEON_MODE(SPELL_ARCANE_BREATH_N, SPELL_ARCANE_BREATH_H)
#define SPELL_ARCANE_STORM DUNGEON_MODE(SPELL_ARCANE_STORM_N, SPELL_ARCANE_STORM_H)
#define SPELL_PH3_SURGE_OF_POWER DUNGEON_MODE(SPELL_PH3_SURGE_OF_POWER_N, SPELL_PH3_SURGE_OF_POWER_H)
enum MalygosEvents enum MalygosEvents
{ {
EVENT_INTRO_MOVE_CENTER = 1, EVENT_INTRO_MOVE_CENTER = 1,

View File

@@ -71,15 +71,12 @@ enum eSpells
SPELL_TELEPORT_VISUAL = 52096, SPELL_TELEPORT_VISUAL = 52096,
SPELL_SCION_ARCANE_BARRAGE = 56397, SPELL_SCION_ARCANE_BARRAGE = 56397,
SPELL_ARCANE_SHOCK_N = 57058, SPELL_ARCANE_SHOCK = 57058,
SPELL_ARCANE_SHOCK_H = 60073,
SPELL_HASTE = 57060, SPELL_HASTE = 57060,
SPELL_ALEXSTRASZA_GIFT = 61028, SPELL_ALEXSTRASZA_GIFT = 61028,
}; };
#define SPELL_ARCANE_SHOCK DUNGEON_MODE(SPELL_ARCANE_SHOCK_N, SPELL_ARCANE_SHOCK_H)
enum eAchiev enum eAchiev
{ {
ACHIEV_CRITERIA_DENYIN_THE_SCION_10 = 7573, ACHIEV_CRITERIA_DENYIN_THE_SCION_10 = 7573,

View File

@@ -22,8 +22,7 @@
enum Spells enum Spells
{ {
SPELL_MAGIC_PULL = 51336, SPELL_MAGIC_PULL = 51336,
SPELL_THUNDERING_STOMP_N = 50774, SPELL_THUNDERING_STOMP = 50774,
SPELL_THUNDERING_STOMP_H = 59370,
SPELL_UNSTABLE_SPHERE_PASSIVE = 50756, SPELL_UNSTABLE_SPHERE_PASSIVE = 50756,
SPELL_UNSTABLE_SPHERE_PULSE = 50757, SPELL_UNSTABLE_SPHERE_PULSE = 50757,
@@ -44,8 +43,6 @@ enum Events
EVENT_SUMMON_x4 = 4, EVENT_SUMMON_x4 = 4,
}; };
#define SPELL_THUNDERING_STOMP DUNGEON_MODE(SPELL_THUNDERING_STOMP_N, SPELL_THUNDERING_STOMP_H)
enum Yells enum Yells
{ {
SAY_AGGRO = 0, SAY_AGGRO = 0,

View File

@@ -22,10 +22,8 @@
enum Spells enum Spells
{ {
SPELL_ARCANE_BARRAGE_N = 50804, SPELL_ARCANE_BARRAGE = 50804,
SPELL_ARCANE_BARRAGE_H = 59381, SPELL_ARCANE_VOLLEY = 51153,
SPELL_ARCANE_VOLLEY_N = 51153,
SPELL_ARCANE_VOLLEY_H = 59382,
SPELL_ENRAGED_ASSAULT = 51170, SPELL_ENRAGED_ASSAULT = 51170,
SPELL_PLANAR_ANOMALIES = 57959, SPELL_PLANAR_ANOMALIES = 57959,
SPELL_PLANAR_SHIFT = 51162, SPELL_PLANAR_SHIFT = 51162,
@@ -38,9 +36,6 @@ enum Spells
SPELL_DRAKE_STOP_TIME = 49838, SPELL_DRAKE_STOP_TIME = 49838,
}; };
#define SPELL_ARCANE_BARRAGE DUNGEON_MODE(SPELL_ARCANE_BARRAGE_N, SPELL_ARCANE_BARRAGE_H)
#define SPELL_ARCANE_VOLLEY DUNGEON_MODE(SPELL_ARCANE_VOLLEY_N, SPELL_ARCANE_VOLLEY_H)
enum VarosNPCs enum VarosNPCs
{ {
NPC_LEY_GUARDIAN_WHELP = 28276, NPC_LEY_GUARDIAN_WHELP = 28276,

View File

@@ -29,15 +29,10 @@ enum Spells
SPELL_TELEPORT = 51112, SPELL_TELEPORT = 51112,
SPELL_FROSTBOMB = 51103, SPELL_FROSTBOMB = 51103,
SPELL_TIME_BOMB_N = 51121, SPELL_TIME_BOMB = 51121,
SPELL_TIME_BOMB_H = 59376, SPELL_EMPOWERED_ARCANE_EXPLOSION = 51110,
SPELL_EMPOWERED_ARCANE_EXPLOSION_N = 51110,
SPELL_EMPOWERED_ARCANE_EXPLOSION_H = 59377,
}; };
#define SPELL_EMPOWERED_ARCANE_EXPLOSION DUNGEON_MODE(SPELL_EMPOWERED_ARCANE_EXPLOSION_N, SPELL_EMPOWERED_ARCANE_EXPLOSION_H)
//#define SPELL_TIME_BOMB DUNGEON_MODE(SPELL_TIME_BOMB_N, SPELL_TIME_BOMB_H)
enum UromNPCs enum UromNPCs
{ {
NPC_PHANTASMAL_CLOUDSCRAPER = 27645, NPC_PHANTASMAL_CLOUDSCRAPER = 27645,
@@ -298,7 +293,7 @@ public:
//At this point we are still in casting state so we need to clear it for DoCastAOE not to fail //At this point we are still in casting state so we need to clear it for DoCastAOE not to fail
me->ClearUnitState(UNIT_STATE_CASTING); me->ClearUnitState(UNIT_STATE_CASTING);
DoCastAOE(DUNGEON_MODE(SPELL_EMPOWERED_ARCANE_EXPLOSION_N, SPELL_EMPOWERED_ARCANE_EXPLOSION_H)); DoCastAOE(SPELL_EMPOWERED_ARCANE_EXPLOSION);
me->AddUnitState(UNIT_STATE_CASTING); me->AddUnitState(UNIT_STATE_CASTING);
events.RescheduleEvent(EVENT_TELE_BACK, DUNGEON_MODE(9s, 7s)); events.RescheduleEvent(EVENT_TELE_BACK, DUNGEON_MODE(9s, 7s));
default: default:
@@ -347,7 +342,7 @@ public:
break; break;
case EVENT_TIME_BOMB: case EVENT_TIME_BOMB:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true))
DoCast(target, DUNGEON_MODE(SPELL_TIME_BOMB_N, SPELL_TIME_BOMB_H)); DoCast(target, SPELL_TIME_BOMB);
events.Repeat(20s, 25s); events.Repeat(20s, 25s);
break; break;
case EVENT_TELEPORT_TO_CENTER: case EVENT_TELEPORT_TO_CENTER:

View File

@@ -23,13 +23,10 @@ enum Spells
{ {
SPELL_CORE_AURA_PASSIVE = 50798, SPELL_CORE_AURA_PASSIVE = 50798,
SPELL_AMPLIFY_MAGIC_N = 51054, SPELL_AMPLIFY_MAGIC = 51054,
SPELL_AMPLIFY_MAGIC_H = 59371,
SPELL_ENERGIZE_CORES_N = 50785, SPELL_ENERGIZE_CORES = 50785,
SPELL_ENERGIZE_CORES_H = 59372, SPELL_ENERGIZE_CORES_THIN = 61407,
SPELL_ENERGIZE_CORES_THIN_N = 61407,
SPELL_ENERGIZE_CORES_THIN_H = 62136,
SPELL_ENERGIZE_CORES_TRIGGER_1 = 54069, SPELL_ENERGIZE_CORES_TRIGGER_1 = 54069,
SPELL_ENERGIZE_CORES_TRIGGER_2 = 56251, SPELL_ENERGIZE_CORES_TRIGGER_2 = 56251,
@@ -63,10 +60,6 @@ enum Events
EVENT_ENERGIZE_CORES_DAMAGE = 7, EVENT_ENERGIZE_CORES_DAMAGE = 7,
}; };
#define SPELL_AMPLIFY_MAGIC DUNGEON_MODE(SPELL_AMPLIFY_MAGIC_N, SPELL_AMPLIFY_MAGIC_H)
#define SPELL_ENERGIZE_CORES DUNGEON_MODE(SPELL_ENERGIZE_CORES_N, SPELL_ENERGIZE_CORES_H)
#define SPELL_ENERGIZE_CORES_THIN DUNGEON_MODE(SPELL_ENERGIZE_CORES_THIN_N, SPELL_ENERGIZE_CORES_THIN_H)
enum Says enum Says
{ {
SAY_AGGRO = 0, SAY_AGGRO = 0,

View File

@@ -38,7 +38,6 @@ enum Drakes
// Centrifuge Constructs // Centrifuge Constructs
SPELL_EMPOWERING_BLOWS = 50044, SPELL_EMPOWERING_BLOWS = 50044,
H_SPELL_EMPOWERING_BLOWS = 59213,
SPELL_AMBER_SHOCK_CHARGE = 49836, SPELL_AMBER_SHOCK_CHARGE = 49836,
SPELL_RUBY_EVASIVE_CHARGES = 50241, SPELL_RUBY_EVASIVE_CHARGES = 50241,
@@ -490,7 +489,7 @@ public:
void JustEngagedWith(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoCast(IsHeroic() ? H_SPELL_EMPOWERING_BLOWS : SPELL_EMPOWERING_BLOWS); DoCast(SPELL_EMPOWERING_BLOWS);
} }
void UpdateAI(uint32 /*diff*/) override void UpdateAI(uint32 /*diff*/) override

View File

@@ -49,8 +49,7 @@ enum BjarngrimSpells
// STORMFORGED LIEUTENANT // STORMFORGED LIEUTENANT
SPELL_ARC_WELD = 59085, SPELL_ARC_WELD = 59085,
SPELL_RENEW_STEEL_N = 52774, SPELL_RENEW_STEEL = 52774,
SPELL_RENEW_STEEL_H = 59160,
}; };
enum BjarngrimOther enum BjarngrimOther
@@ -395,7 +394,7 @@ struct npc_stormforged_lieutenant : public ScriptedAI
case EVENT_RENEW_STEEL: case EVENT_RENEW_STEEL:
if (Creature* bjarngrim = ObjectAccessor::GetCreature(*me, BjarngrimGUID)) if (Creature* bjarngrim = ObjectAccessor::GetCreature(*me, BjarngrimGUID))
if (bjarngrim->IsAlive()) if (bjarngrim->IsAlive())
me->CastSpell(bjarngrim, me->GetMap()->IsHeroic() ? SPELL_RENEW_STEEL_H : SPELL_RENEW_STEEL_N, true); me->CastSpell(bjarngrim, SPELL_RENEW_STEEL, true);
events.Repeat(10s, 14s); events.Repeat(10s, 14s);
break; break;

View File

@@ -25,13 +25,11 @@
enum LokenSpells enum LokenSpells
{ {
SPELL_ARC_LIGHTNING = 52921, SPELL_ARC_LIGHTNING = 52921,
SPELL_LIGHTNING_NOVA_N = 52960, SPELL_LIGHTNING_NOVA = 52960,
SPELL_LIGHTNING_NOVA_H = 59835,
SPELL_LIGHTNING_NOVA_VISUAL = 56502, SPELL_LIGHTNING_NOVA_VISUAL = 56502,
SPELL_LIGHTNING_NOVA_THUNDERS = 52663, SPELL_LIGHTNING_NOVA_THUNDERS = 52663,
SPELL_PULSING_SHOCKWAVE_N = 52961, SPELL_PULSING_SHOCKWAVE = 52961,
SPELL_PULSING_SHOCKWAVE_H = 59836,
// Achievement // Achievement
ACHIEVEMENT_TIMELY_DEATH = 20384 ACHIEVEMENT_TIMELY_DEATH = 20384
@@ -146,10 +144,10 @@ struct boss_loken : public BossAI
events.DelayEvents(5s); events.DelayEvents(5s);
events.ScheduleEvent(EVENT_AURA_REMOVE, me->GetMap()->IsHeroic() ? 4s : 5s); events.ScheduleEvent(EVENT_AURA_REMOVE, me->GetMap()->IsHeroic() ? 4s : 5s);
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_LIGHTNING_NOVA_H : SPELL_LIGHTNING_NOVA_N, false); me->CastSpell(me, SPELL_LIGHTNING_NOVA, false);
break; break;
case EVENT_SHOCKWAVE: case EVENT_SHOCKWAVE:
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_PULSING_SHOCKWAVE_H : SPELL_PULSING_SHOCKWAVE_N, false); me->CastSpell(me, SPELL_PULSING_SHOCKWAVE, false);
break; break;
case EVENT_ARC_LIGHTNING: case EVENT_ARC_LIGHTNING:
if (Unit* target = SelectTargetFromPlayerList(100, SPELL_ARC_LIGHTNING)) if (Unit* target = SelectTargetFromPlayerList(100, SPELL_ARC_LIGHTNING))

View File

@@ -23,19 +23,15 @@
enum VolkahnSpells enum VolkahnSpells
{ {
// Volkhan // Volkhan
SPELL_HEAT_N = 52387, SPELL_HEAT = 52387,
SPELL_HEAT_H = 59528, SPELL_SHATTERING_STOMP = 52237,
SPELL_SHATTERING_STOMP_N = 52237,
SPELL_SHATTERING_STOMP_H = 59529,
SPELL_TEMPER = 52238, SPELL_TEMPER = 52238,
SPELL_SUMMON_MOLTEN_GOLEM = 52405, SPELL_SUMMON_MOLTEN_GOLEM = 52405,
//Molten Golem //Molten Golem
SPELL_BLAST_WAVE = 23113, SPELL_BLAST_WAVE = 23113,
SPELL_IMMOLATION_STRIKE_N = 52433, SPELL_IMMOLATION_STRIKE = 52433,
SPELL_IMMOLATION_STRIKE_H = 59530, SPELL_SHATTER = 52429,
SPELL_SHATTER_N = 52429,
SPELL_SHATTER_H = 59527,
}; };
enum VolkhanOther enum VolkhanOther
@@ -252,7 +248,7 @@ struct boss_volkhan : public BossAI
switch (events.ExecuteEvent()) switch (events.ExecuteEvent())
{ {
case EVENT_HEAT: case EVENT_HEAT:
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_HEAT_H : SPELL_HEAT_N, true); me->CastSpell(me, SPELL_HEAT, true);
events.Repeat(8s); events.Repeat(8s);
break; break;
case EVENT_CHECK_HEALTH: case EVENT_CHECK_HEALTH:
@@ -337,7 +333,7 @@ struct npc_molten_golem : public ScriptedAI
if (Creature* volkhan = m_pInstance->GetCreature(DATA_VOLKHAN)) if (Creature* volkhan = m_pInstance->GetCreature(DATA_VOLKHAN))
volkhan->AI()->DoAction(ACTION_DESTROYED); volkhan->AI()->DoAction(ACTION_DESTROYED);
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_SHATTER_H : SPELL_SHATTER_N, true); me->CastSpell(me, SPELL_SHATTER, true);
me->DespawnOrUnsummon(500ms); me->DespawnOrUnsummon(500ms);
} }
} }
@@ -360,7 +356,7 @@ struct npc_molten_golem : public ScriptedAI
events.Repeat(14s); events.Repeat(14s);
break; break;
case EVENT_IMMOLATION: case EVENT_IMMOLATION:
me->CastSpell(me->GetVictim(), me->GetMap()->IsHeroic() ? SPELL_IMMOLATION_STRIKE_H : SPELL_IMMOLATION_STRIKE_N, false); me->CastSpell(me->GetVictim(), SPELL_IMMOLATION_STRIKE, false);
events.Repeat(5s); events.Repeat(5s);
break; break;
} }

View File

@@ -24,16 +24,13 @@
enum spells enum spells
{ {
GROUND_SPIKE_H = 59750, SPELL_GROUND_SPIKE = 59750,
BOULDER_TOSS = 50843, SPELL_BOULDER_TOSS = 50843,
BOULDER_TOSS_H = 59742, SPELL_SHATTER = 50810,
SHATTER = 50810, SPELL_STOMP = 50868,
SHATTER_H = 61546, SPELL_GROUND_SLAM = 50827,
STOMP = 50868, SPELL_GROUND_SLAM_STONED_EFFECT = 50812,
STOMP_H = 59744, SPELL_SHATTER_EFFECT = 50811,
GROUND_SLAM = 50827,
GROUND_SLAM_STONED_EFFECT = 50812,
SPELL_SHATTER_EFFECT = 50811,
}; };
enum events enum events
@@ -105,7 +102,7 @@ public:
Map::PlayerList const& players = map->GetPlayers(); Map::PlayerList const& players = map->GetPlayers();
for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
if (itr->GetSource()->IsAlive()) if (itr->GetSource()->IsAlive())
itr->GetSource()->RemoveAura(GROUND_SLAM_STONED_EFFECT); itr->GetSource()->RemoveAura(SPELL_GROUND_SLAM_STONED_EFFECT);
} }
} }
@@ -124,34 +121,34 @@ public:
case EVENT_BOULDER: case EVENT_BOULDER:
{ {
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0))
me->CastSpell(target, DUNGEON_MODE(BOULDER_TOSS, BOULDER_TOSS_H), false); me->CastSpell(target, SPELL_BOULDER_TOSS, false);
events.Repeat(5s, 7s); events.Repeat(5s, 7s);
break; break;
} }
case EVENT_GROUND_SPIKE: case EVENT_GROUND_SPIKE:
{ {
me->CastSpell(me->GetVictim(), GROUND_SPIKE_H, false); // current enemy target me->CastSpell(me->GetVictim(), SPELL_GROUND_SPIKE, false); // current enemy target
events.Repeat(8s, 11s); events.Repeat(8s, 11s);
break; break;
} }
case EVENT_STOMP: case EVENT_STOMP:
{ {
me->CastSpell(me, DUNGEON_MODE(STOMP, STOMP_H), false); me->CastSpell(me, SPELL_STOMP, false);
events.Repeat(13s, 18s); events.Repeat(13s, 18s);
break; break;
} }
case EVENT_GROUND_SLAM: case EVENT_GROUND_SLAM:
{ {
events.Repeat(10s, 13s); events.Repeat(10s, 13s);
me->CastSpell(me->GetVictim(), GROUND_SLAM, true); me->CastSpell(me->GetVictim(), SPELL_GROUND_SLAM, true);
events.DelayEvents(10s); events.DelayEvents(10s);
events.RescheduleEvent(EVENT_SHATTER, 8s); events.RescheduleEvent(EVENT_SHATTER, 8s);
break; break;
} }
case EVENT_SHATTER: case EVENT_SHATTER:
{ {
me->CastSpell((Unit*)nullptr, DUNGEON_MODE(SHATTER, SHATTER_H), false); me->CastSpell((Unit*)nullptr, SPELL_SHATTER, false);
Talk(SAY_SHATTER); Talk(SAY_SHATTER);
events.RescheduleEvent(EVENT_REMOVE_STONED, 1500ms); events.RescheduleEvent(EVENT_REMOVE_STONED, 1500ms);
break; break;
@@ -193,7 +190,7 @@ class spell_krystallus_shatter : public SpellScript
{ {
if (Unit* target = GetHitUnit()) if (Unit* target = GetHitUnit())
{ {
target->RemoveAurasDueToSpell(GROUND_SLAM_STONED_EFFECT); target->RemoveAurasDueToSpell(SPELL_GROUND_SLAM_STONED_EFFECT);
target->CastSpell((Unit*)nullptr, SPELL_SHATTER_EFFECT, true); target->CastSpell((Unit*)nullptr, SPELL_SHATTER_EFFECT, true);
} }
} }

View File

@@ -21,13 +21,10 @@
enum spells enum spells
{ {
PARTING_SORROW = 59723, SPELL_PARTING_SORROW = 59723,
PILLAR_OF_WOE = 50761, SPELL_PILLAR_OF_WOE = 50761,
PILLAR_OF_WOE_H = 59727, SPELL_SHOCK_OF_SORROW = 50760,
SHOCK_OF_SORROW = 50760, SPELL_STORM_OF_GRIEF = 50752,
SHOCK_OF_SORROW_H = 59726,
STORM_OF_GRIEF = 50752,
STORM_OF_GRIEF_H = 59772,
ACHIEVEMENT_GOOD_GRIEF = 20383, ACHIEVEMENT_GOOD_GRIEF = 20383,
}; };
@@ -107,13 +104,13 @@ public:
{ {
case EVENT_STORM: case EVENT_STORM:
{ {
me->CastSpell(me->GetVictim(), DUNGEON_MODE(STORM_OF_GRIEF, STORM_OF_GRIEF_H), true); me->CastSpell(me->GetVictim(), SPELL_STORM_OF_GRIEF, true);
events.Repeat(10s); events.Repeat(10s);
break; break;
} }
case EVENT_SHOCK: case EVENT_SHOCK:
{ {
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SHOCK_OF_SORROW, SHOCK_OF_SORROW_H), false); me->CastSpell(me->GetVictim(), SPELL_SHOCK_OF_SORROW, false);
Talk(SAY_STUN); Talk(SAY_STUN);
events.Repeat(16s, 22s); events.Repeat(16s, 22s);
@@ -122,7 +119,7 @@ public:
case EVENT_PILLAR: case EVENT_PILLAR:
{ {
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0))
me->CastSpell(target, DUNGEON_MODE(PILLAR_OF_WOE, PILLAR_OF_WOE_H), false); me->CastSpell(target, SPELL_PILLAR_OF_WOE, false);
events.Repeat(12s, 20s); events.Repeat(12s, 20s);
break; break;
@@ -130,7 +127,7 @@ public:
case EVENT_PARTING: case EVENT_PARTING:
{ {
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0))
me->CastSpell(target, PARTING_SORROW, false); me->CastSpell(target, SPELL_PARTING_SORROW, false);
events.Repeat(6s, 16s); events.Repeat(6s, 16s);
break; break;

View File

@@ -25,25 +25,18 @@ enum Spells
// SJONNIR // SJONNIR
SPELL_FRENZY = 28747, //at 20% hp SPELL_FRENZY = 28747, //at 20% hp
SPELL_CHAIN_LIGHTNING = 50830, SPELL_CHAIN_LIGHTNING = 50830,
SPELL_CHAIN_LIGHTNING_H = 59844,
SPELL_LIGHTNING_SHIELD = 50831, SPELL_LIGHTNING_SHIELD = 50831,
SPELL_LIGHTNING_SHIELD_H = 59845,
SPELL_STATIC_CHARGE = 50834, SPELL_STATIC_CHARGE = 50834,
SPELL_STATIC_CHARGE_H = 59846,
SPELL_LIGHTNING_RING = 50840, SPELL_LIGHTNING_RING = 50840,
SPELL_LIGHTNING_RING_H = 59848,
// IRON SLUDGE // IRON SLUDGE
SPELL_TOXIC_VOLLEY = 50838, SPELL_TOXIC_VOLLEY = 50838,
SPELL_TOXIC_VOLLEY_H = 59853,
// FORGED IRON DWARF // FORGED IRON DWARF
SPELL_LIGHTNING_TETHER = 50895, SPELL_LIGHTNING_TETHER = 50895,
SPELL_LIGHTNING_TETHER_H = 59851,
// FORGED IRON TROGG // FORGED IRON TROGG
SPELL_LIGHTNING_SHOCK = 50900, SPELL_LIGHTNING_SHOCK = 50900,
SPELL_LIGHTNING_SHOCK_H = 59852,
}; };
enum Npc enum Npc
@@ -241,14 +234,14 @@ public:
} }
case EVENT_SHIELD: case EVENT_SHIELD:
{ {
me->CastSpell(me, DUNGEON_MODE(SPELL_LIGHTNING_SHIELD, SPELL_LIGHTNING_SHIELD_H), false); me->CastSpell(me, SPELL_LIGHTNING_SHIELD, false);
events.Repeat(14s, 19s); events.Repeat(14s, 19s);
break; break;
} }
case EVENT_CHAIN_LIGHTNING: case EVENT_CHAIN_LIGHTNING:
{ {
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0))
me->CastSpell(target, DUNGEON_MODE(SPELL_CHAIN_LIGHTNING, SPELL_CHAIN_LIGHTNING_H), false); me->CastSpell(target, SPELL_CHAIN_LIGHTNING, false);
events.Repeat(6s, 12s); events.Repeat(6s, 12s);
break; break;
@@ -256,14 +249,14 @@ public:
case EVENT_STATIC_CHARGE: case EVENT_STATIC_CHARGE:
{ {
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true, 0))
me->CastSpell(target, DUNGEON_MODE(SPELL_STATIC_CHARGE, SPELL_STATIC_CHARGE_H), false); me->CastSpell(target, SPELL_STATIC_CHARGE, false);
events.Repeat(20s); events.Repeat(20s);
break; break;
} }
case EVENT_LIGHTNING_RING: case EVENT_LIGHTNING_RING:
{ {
me->CastSpell(me, DUNGEON_MODE(SPELL_LIGHTNING_RING, SPELL_LIGHTNING_RING_H), false); me->CastSpell(me, SPELL_LIGHTNING_RING, false);
events.Repeat(25s, 31s); events.Repeat(25s, 31s);
events.DelayEvents(10s); // Channel duration events.DelayEvents(10s); // Channel duration
break; break;
@@ -399,7 +392,7 @@ public:
if (!UpdateVictim()) if (!UpdateVictim())
return; return;
DoSpellAttackIfReady((me->GetEntry() == NPC_FORGED_IRON_DWARF) ? DUNGEON_MODE(SPELL_LIGHTNING_TETHER, SPELL_LIGHTNING_TETHER_H) : DUNGEON_MODE(SPELL_LIGHTNING_SHOCK, SPELL_LIGHTNING_SHOCK_H)); DoSpellAttackIfReady((me->GetEntry() == NPC_FORGED_IRON_DWARF) ? SPELL_LIGHTNING_TETHER : SPELL_LIGHTNING_SHOCK);
} }
}; };
}; };
@@ -448,7 +441,7 @@ public:
// Every 5 seconds // Every 5 seconds
case EVENT_TOXIC_VOLLEY: case EVENT_TOXIC_VOLLEY:
{ {
me->CastSpell(me, DUNGEON_MODE(SPELL_TOXIC_VOLLEY, SPELL_TOXIC_VOLLEY_H), false); me->CastSpell(me, SPELL_TOXIC_VOLLEY, false);
events.Repeat(5s); events.Repeat(5s);
break; break;
} }

View File

@@ -48,13 +48,10 @@ enum Misc
{ {
// BRANN EVENT // BRANN EVENT
SPELL_GLARE_OF_THE_TRIBUNAL = 50988, SPELL_GLARE_OF_THE_TRIBUNAL = 50988,
SPELL_GLARE_OF_THE_TRIBUNAL_H = 59870,
SPELL_DARK_MATTER_VISUAL = 51000, SPELL_DARK_MATTER_VISUAL = 51000,
SPELL_DARK_MATTER_VISUAL_CHANNEL= 51001, SPELL_DARK_MATTER_VISUAL_CHANNEL= 51001,
SPELL_DARK_MATTER = 51012, SPELL_DARK_MATTER = 51012,
SPELL_DARK_MATTER_H = 59868,
SPELL_SEARING_GAZE = 51136, SPELL_SEARING_GAZE = 51136,
SPELL_SEARING_GAZE_H = 59867,
// DARK RUNE PROTECTOR // DARK RUNE PROTECTOR
SPELL_DRP_CHARGE = 22120, SPELL_DRP_CHARGE = 22120,
@@ -62,14 +59,11 @@ enum Misc
// DARK RUNE STORMCALLER // DARK RUNE STORMCALLER
SPELL_DRS_LIGHTING_BOLT = 12167, SPELL_DRS_LIGHTING_BOLT = 12167,
SPELL_DRS_LIGHTING_BOLT_H = 59863,
SPELL_DRS_SHADOW_WORD_PAIN = 15654, SPELL_DRS_SHADOW_WORD_PAIN = 15654,
SPELL_DRS_SHADOW_WORD_PAIN_H = 59864,
// IRON GOLEM CUSTODIAN // IRON GOLEM CUSTODIAN
SPELL_IGC_CRUSH_ARMOR = 33661, SPELL_IGC_CRUSH_ARMOR = 33661,
SPELL_IGC_GROUND_SMASH = 12734, SPELL_IGC_GROUND_SMASH = 12734,
SPELL_IGC_GROUND_SMASH_H = 59865,
// QUESTS // QUESTS
QUEST_HALLS_OF_STONE = 13207, QUEST_HALLS_OF_STONE = 13207,
@@ -505,7 +499,7 @@ public:
if (Creature* kaddrak = GetKaddrak()) if (Creature* kaddrak = GetKaddrak())
{ {
if (Player* plr = SelectTargetFromPlayerList(100.0f)) if (Player* plr = SelectTargetFromPlayerList(100.0f))
kaddrak->CastSpell(plr, DUNGEON_MODE(SPELL_GLARE_OF_THE_TRIBUNAL, SPELL_GLARE_OF_THE_TRIBUNAL_H), true); kaddrak->CastSpell(plr, SPELL_GLARE_OF_THE_TRIBUNAL, true);
} }
events.RescheduleEvent(EVENT_KADDRAK_SWITCH_EYE, 1s); events.RescheduleEvent(EVENT_KADDRAK_SWITCH_EYE, 1s);
@@ -593,7 +587,7 @@ public:
{ {
if (Creature* darkMatterTarget = ObjectAccessor::GetCreature(*me, darkMatterTargetGUID)) if (Creature* darkMatterTarget = ObjectAccessor::GetCreature(*me, darkMatterTargetGUID))
{ {
darkMatterTarget->CastSpell(darkMatterTarget, darkMatterTarget->GetMap()->IsHeroic() ? SPELL_DARK_MATTER_H : SPELL_DARK_MATTER, true); darkMatterTarget->CastSpell(darkMatterTarget, SPELL_DARK_MATTER, true);
darkMatterTarget->DespawnOrUnsummon(500ms); darkMatterTarget->DespawnOrUnsummon(500ms);
} }
break; break;
@@ -612,7 +606,7 @@ public:
{ {
// summon another abedneum to create double beam, despawn just after trigger despawn // summon another abedneum to create double beam, despawn just after trigger despawn
me->SummonCreature(NPC_ABEDNEUM, 897.0f, 326.9f, 223.5f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 12000); me->SummonCreature(NPC_ABEDNEUM, 897.0f, 326.9f, 223.5f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 12000);
cr->CastSpell(cr, DUNGEON_MODE(SPELL_SEARING_GAZE, SPELL_SEARING_GAZE_H), true); cr->CastSpell(cr, SPELL_SEARING_GAZE, true);
} }
} }
events.Repeat(15s); events.Repeat(15s);
@@ -1062,13 +1056,13 @@ public:
{ {
case EVENT_DRS_LIGHTNING_BOLD: case EVENT_DRS_LIGHTNING_BOLD:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_DRS_LIGHTING_BOLT_H : SPELL_DRS_LIGHTING_BOLT, false); me->CastSpell(me->GetVictim(), SPELL_DRS_LIGHTING_BOLT, false);
events.Repeat(5s); events.Repeat(5s);
break; break;
} }
case EVENT_DRS_SHADOW_WORD_PAIN: case EVENT_DRS_SHADOW_WORD_PAIN:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_DRS_SHADOW_WORD_PAIN_H : SPELL_DRS_SHADOW_WORD_PAIN, false); me->CastSpell(me->GetVictim(), SPELL_DRS_SHADOW_WORD_PAIN, false);
events.Repeat(12s); events.Repeat(12s);
break; break;
} }
@@ -1122,7 +1116,7 @@ public:
} }
case EVENT_IGC_GROUND_SMASH: case EVENT_IGC_GROUND_SMASH:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_IGC_GROUND_SMASH_H : SPELL_IGC_GROUND_SMASH, false); me->CastSpell(me->GetVictim(), SPELL_IGC_GROUND_SMASH, false);
events.Repeat(5s); events.Repeat(5s);
break; break;
} }
@@ -1139,13 +1133,13 @@ class spell_hos_dark_matter : public AuraScript
bool Validate(SpellInfo const* /*spellInfo*/) override bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
return ValidateSpellInfo({ SPELL_DARK_MATTER_H, SPELL_DARK_MATTER }); return ValidateSpellInfo({ SPELL_DARK_MATTER });
} }
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{ {
if (Unit* caster = GetCaster()) if (Unit* caster = GetCaster())
caster->CastSpell(caster, caster->GetMap()->IsHeroic() ? SPELL_DARK_MATTER_H : SPELL_DARK_MATTER, true); caster->CastSpell(caster, SPELL_DARK_MATTER, true);
} }
void Register() override void Register() override

View File

@@ -56,28 +56,17 @@ enum eSpells
SPELL_RESURRECTION_HEAL = 42704, SPELL_RESURRECTION_HEAL = 42704,
SPELL_INGVAR_TRANSFORM = 42796, SPELL_INGVAR_TRANSFORM = 42796,
SPELL_STAGGERING_ROAR_N = 42708, SPELL_STAGGERING_ROAR = 42708,
SPELL_STAGGERING_ROAR_H = 59708,
SPELL_CLEAVE = 42724, SPELL_CLEAVE = 42724,
SPELL_SMASH_N = 42669, SPELL_SMASH = 42669,
SPELL_SMASH_H = 59706, SPELL_ENRAGE = 42705,
SPELL_ENRAGE_N = 42705,
SPELL_ENRAGE_H = 59707,
SPELL_DREADFUL_ROAR_N = 42729, SPELL_DREADFUL_ROAR = 42729,
SPELL_DREADFUL_ROAR_H = 59734, SPELL_WOE_STRIKE = 42730,
SPELL_WOE_STRIKE_N = 42730,
SPELL_WOE_STRIKE_H = 59735,
SPELL_DARK_SMASH = 42723, SPELL_DARK_SMASH = 42723,
SPELL_SHADOW_AXE = 42749, SPELL_SHADOW_AXE = 42749,
}; };
#define SPELL_STAGGERING_ROAR DUNGEON_MODE(SPELL_STAGGERING_ROAR_N, SPELL_STAGGERING_ROAR_H)
#define SPELL_DREADFUL_ROAR DUNGEON_MODE(SPELL_DREADFUL_ROAR_N, SPELL_DREADFUL_ROAR_H)
#define SPELL_WOE_STRIKE DUNGEON_MODE(SPELL_WOE_STRIKE_N, SPELL_WOE_STRIKE_H)
#define SPELL_SMASH DUNGEON_MODE(SPELL_SMASH_N, SPELL_SMASH_H)
#define SPELL_ENRAGE DUNGEON_MODE(SPELL_ENRAGE_N, SPELL_ENRAGE_H)
enum eEvents enum eEvents
{ {
EVENT_START_RESURRECTION = 1, EVENT_START_RESURRECTION = 1,
@@ -307,9 +296,6 @@ struct boss_ingvar_the_plunderer : public ScriptedAI
case EVENT_SPELL_ROAR: case EVENT_SPELL_ROAR:
Talk(EMOTE_ROAR); Talk(EMOTE_ROAR);
me->_AddCreatureSpellCooldown(SPELL_STAGGERING_ROAR, 0, 0);
me->_AddCreatureSpellCooldown(SPELL_DREADFUL_ROAR, 0, 0);
if (me->GetDisplayId() == DISPLAYID_DEFAULT) if (me->GetDisplayId() == DISPLAYID_DEFAULT)
me->CastSpell((Unit*)nullptr, SPELL_STAGGERING_ROAR, false); me->CastSpell((Unit*)nullptr, SPELL_STAGGERING_ROAR, false);
else else

View File

@@ -45,12 +45,9 @@ enum eSpells
SPELL_FROST_TOMB_SUMMON = 42714, SPELL_FROST_TOMB_SUMMON = 42714,
SPELL_FROST_TOMB_AURA = 48400, SPELL_FROST_TOMB_AURA = 48400,
SPELL_SHADOWBOLT_N = 43667, SPELL_SHADOWBOLT = 43667,
SPELL_SHADOWBOLT_H = 59389,
}; };
#define SPELL_SHADOWBOLT DUNGEON_MODE(SPELL_SHADOWBOLT_N, SPELL_SHADOWBOLT_H)
struct npc_frost_tomb : public NullCreatureAI struct npc_frost_tomb : public NullCreatureAI
{ {
npc_frost_tomb(Creature* c) : NullCreatureAI(c) npc_frost_tomb(Creature* c) : NullCreatureAI(c)

View File

@@ -44,8 +44,7 @@ enum eSpells
SPELL_ENRAGE = 48193, SPELL_ENRAGE = 48193,
SPELL_SUMMON_SKARVALD_GHOST = 48613, SPELL_SUMMON_SKARVALD_GHOST = 48613,
// Dalronn // Dalronn
SPELL_SHADOW_BOLT_N = 43649, SPELL_SHADOW_BOLT = 43649,
SPELL_SHADOW_BOLT_H = 59575,
SPELL_DEBILITATE = 43650, SPELL_DEBILITATE = 43650,
SPELL_SUMMON_SKELETONS = 52611, SPELL_SUMMON_SKELETONS = 52611,
SPELL_SUMMON_DALRONN_GHOST = 48612 SPELL_SUMMON_DALRONN_GHOST = 48612
@@ -353,7 +352,7 @@ struct boss_dalronn_the_controller : public ScriptedAI
case EVENT_SHADOW_BOLT: case EVENT_SHADOW_BOLT:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
{ {
me->CastSpell(target, DUNGEON_MODE(SPELL_SHADOW_BOLT_N, SPELL_SHADOW_BOLT_H), false); me->CastSpell(target, SPELL_SHADOW_BOLT, false);
} }
events.Repeat(2s); events.Repeat(2s);
break; break;

View File

@@ -34,36 +34,28 @@ enum Misc
// PALEHOOF // PALEHOOF
SPELL_ARCING_SMASH = 48260, SPELL_ARCING_SMASH = 48260,
SPELL_IMPALE_N = 48261, SPELL_IMPALE = 48261,
SPELL_IMPALE_H = 59268, SPELL_WITHERING_ROAR = 48256,
SPELL_WITHERING_ROAR_N = 48256,
SPELL_WITHERING_ROAR_H = 59267,
SPELL_FREEZE = 16245, SPELL_FREEZE = 16245,
// Massive Jormungar // Massive Jormungar
SPELL_ACID_SPIT = 48132, SPELL_ACID_SPIT = 48132,
SPELL_ACID_SPLATTER_N = 48136, SPELL_ACID_SPLATTER = 48136,
SPELL_ACID_SPLATTER_H = 59272, SPELL_POISON_BREATH = 48133,
SPELL_POISON_BREATH_N = 48133,
SPELL_POISON_BREATH_H = 59271,
NPC_JORMUNGAR_WORM = 27228, NPC_JORMUNGAR_WORM = 27228,
// Ferocious Rhino // Ferocious Rhino
SPELL_GORE_N = 48130, SPELL_GORE = 48130,
SPELL_GORE_H = 59264, SPELL_GRIEVOUS_WOUND = 48105,
SPELL_GRIEVOUS_WOUND_N = 48105,
SPELL_GRIEVOUS_WOUND_H = 59263,
SPELL_STOMP = 48131, SPELL_STOMP = 48131,
// Ravenous Furbolg // Ravenous Furbolg
SPELL_CHAIN_LIGHTING_N = 48140, SPELL_CHAIN_LIGHTNING = 48140,
SPELL_CHAIN_LIGHTING_H = 59273,
SPELL_CRAZED = 48139, SPELL_CRAZED = 48139,
SPELL_TERRIFYING_ROAR = 48144, SPELL_TERRIFYING_ROAR = 48144,
// Frenzied Worgen // Frenzied Worgen
SPELL_MORTAL_WOUND_N = 48137, SPELL_MORTAL_WOUND = 48137,
SPELL_MORTAL_WOUND_H = 59265,
SPELL_ENRAGE_1 = 48138, SPELL_ENRAGE_1 = 48138,
SPELL_ENRAGE_2 = 48142, SPELL_ENRAGE_2 = 48142,
@@ -296,14 +288,14 @@ public:
} }
case EVENT_PALEHOOF_WITHERING_ROAR: case EVENT_PALEHOOF_WITHERING_ROAR:
{ {
me->CastSpell(me, IsHeroic() ? SPELL_WITHERING_ROAR_H : SPELL_WITHERING_ROAR_N, false); me->CastSpell(me, SPELL_WITHERING_ROAR, false);
events.Repeat(8s, 12s); events.Repeat(8s, 12s);
break; break;
} }
case EVENT_PALEHOOF_IMPALE: case EVENT_PALEHOOF_IMPALE:
{ {
if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(tgt, IsHeroic() ? SPELL_IMPALE_H : SPELL_IMPALE_N, false); me->CastSpell(tgt, SPELL_IMPALE, false);
events.Repeat(8s, 12s); events.Repeat(8s, 12s);
break; break;
@@ -424,7 +416,7 @@ public:
} }
case EVENT_JORMUNGAR_ACID_SPLATTER: case EVENT_JORMUNGAR_ACID_SPLATTER:
{ {
me->CastSpell(me, IsHeroic() ? SPELL_ACID_SPLATTER_H : SPELL_ACID_SPLATTER_N, false); me->CastSpell(me, SPELL_ACID_SPLATTER, false);
// Aura summon wont work because of duration // Aura summon wont work because of duration
float x, y, z; float x, y, z;
@@ -443,7 +435,7 @@ public:
case EVENT_JORMUNGAR_POISON_BREATH: case EVENT_JORMUNGAR_POISON_BREATH:
{ {
if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(tgt, IsHeroic() ? SPELL_POISON_BREATH_H : SPELL_POISON_BREATH_N, false); me->CastSpell(tgt, SPELL_POISON_BREATH, false);
events.Repeat(8s, 12s); events.Repeat(8s, 12s);
break; break;
@@ -546,14 +538,14 @@ public:
} }
case EVENT_RHINO_GORE: case EVENT_RHINO_GORE:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_GORE_H : SPELL_GORE_N, false); me->CastSpell(me->GetVictim(), SPELL_GORE, false);
events.Repeat(13s, 17s); events.Repeat(13s, 17s);
break; break;
} }
case EVENT_RHINO_WOUND: case EVENT_RHINO_WOUND:
{ {
if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(tgt, IsHeroic() ? SPELL_GRIEVOUS_WOUND_H : SPELL_GRIEVOUS_WOUND_N, false); me->CastSpell(tgt, SPELL_GRIEVOUS_WOUND, false);
events.Repeat(18s, 22s); events.Repeat(18s, 22s);
break; break;
@@ -650,7 +642,7 @@ public:
{ {
case EVENT_FURBOLG_CHAIN: case EVENT_FURBOLG_CHAIN:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_CHAIN_LIGHTING_H : SPELL_CHAIN_LIGHTING_N, false); me->CastSpell(me->GetVictim(), SPELL_CHAIN_LIGHTNING, false);
events.Repeat(4s, 7s); events.Repeat(4s, 7s);
break; break;
} }
@@ -758,7 +750,7 @@ public:
{ {
case EVENT_WORGEN_MORTAL: case EVENT_WORGEN_MORTAL:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_MORTAL_WOUND_H : SPELL_MORTAL_WOUND_N, false); me->CastSpell(me->GetVictim(), SPELL_MORTAL_WOUND, false);
events.Repeat(4s, 7s); events.Repeat(4s, 7s);
break; break;
} }

View File

@@ -38,16 +38,12 @@ enum Misc
EMOTE_RANGE = 1, EMOTE_RANGE = 1,
// SPELLS // SPELLS
SPELL_CRUSH_N = 50234, SPELL_CRUSH = 50234,
SPELL_CRUSH_H = 59330, SPELL_POISONED_SPEAR = 50255,
SPELL_POISONED_SPEAR_N = 50255, SPELL_WHIRLWIND = 50228,
SPELL_POISONED_SPEAR_H = 59331,
SPELL_WHIRLWIND_N = 50228,
SPELL_WHIRLWIND_H = 50228,
SPELL_FREEZING_CLOUD_VISUAL = 47592, SPELL_FREEZING_CLOUD_VISUAL = 47592,
SPELL_FREEZING_CLOUD_N = 47579, SPELL_FREEZING_CLOUD = 47579,
SPELL_FREEZING_CLOUD_H = 60020,
SPELL_LAUNCH_HARPOON = 48642, SPELL_LAUNCH_HARPOON = 48642,
@@ -219,21 +215,21 @@ public:
} }
case EVENT_SKADI_CRUSH: case EVENT_SKADI_CRUSH:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_CRUSH_H : SPELL_CRUSH_N, false); me->CastSpell(me->GetVictim(), SPELL_CRUSH, false);
events.Repeat(8s); events.Repeat(8s);
break; break;
} }
case EVENT_SKADI_SPEAR: case EVENT_SKADI_SPEAR:
{ {
if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(tgt, IsHeroic() ? SPELL_POISONED_SPEAR_H : SPELL_POISONED_SPEAR_N, false); me->CastSpell(tgt, SPELL_POISONED_SPEAR, false);
events.Repeat(10s); events.Repeat(10s);
break; break;
} }
case EVENT_SKADI_WHIRLWIND: case EVENT_SKADI_WHIRLWIND:
{ {
me->CastSpell(me, IsHeroic() ? SPELL_WHIRLWIND_H : SPELL_WHIRLWIND_N, false); me->CastSpell(me, SPELL_WHIRLWIND, false);
events.Repeat(15s, 20s); events.Repeat(15s, 20s);
events.DelayEvents(10s); events.DelayEvents(10s);
break; break;
@@ -323,7 +319,7 @@ public:
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
{ {
if (spellInfo->Id == 47593) // SPELL_FREEZING_CLOUD_VISUAL trigger if (spellInfo->Id == 47593) // SPELL_FREEZING_CLOUD_VISUAL trigger
target->CastSpell(target, me->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true); target->CastSpell(target, SPELL_FREEZING_CLOUD, true);
} }
void SpawnFlameTriggers(uint8 point) void SpawnFlameTriggers(uint8 point)
@@ -340,13 +336,13 @@ public:
{ {
Creature* cr; Creature* cr;
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 483, -484.9f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))) if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 483, -484.9f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true); cr->CastSpell(cr, SPELL_FREEZING_CLOUD, true);
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 471.0f, -484.7f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))) if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 471.0f, -484.7f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true); cr->CastSpell(cr, SPELL_FREEZING_CLOUD, true);
for (uint8 j = 0; j < 7; j++) for (uint8 j = 0; j < 7; j++)
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 477.0f, -507.0f + (j * 3), 105.0f, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))) if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 477.0f, -507.0f + (j * 3), 105.0f, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true); cr->CastSpell(cr, SPELL_FREEZING_CLOUD, true);
} }
} }

View File

@@ -47,8 +47,7 @@ enum Misc
SPELL_BALL_OF_FLAME = 48246, SPELL_BALL_OF_FLAME = 48246,
SPELL_RITUAL_OF_THE_SWORD = 48276, SPELL_RITUAL_OF_THE_SWORD = 48276,
SPELL_RITUAL_STRIKE = 48331, SPELL_RITUAL_STRIKE = 48331,
SPELL_SINSTER_STRIKE_N = 15667, SPELL_SINISTER_STRIKE = 15667,
SPELL_SINSTER_STRIKE_H = 59409,
EQUIP_SWORD = 40343, EQUIP_SWORD = 40343,
// CHANNELERS // CHANNELERS
@@ -303,7 +302,7 @@ public:
switch (events.ExecuteEvent()) switch (events.ExecuteEvent())
{ {
case EVENT_SORROWGRAVE_SS: case EVENT_SORROWGRAVE_SS:
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_SINSTER_STRIKE_H : SPELL_SINSTER_STRIKE_N, false); me->CastSpell(me->GetVictim(), SPELL_SINISTER_STRIKE, false);
events.ScheduleEvent(EVENT_SORROWGRAVE_SS, 3s, 5s); events.ScheduleEvent(EVENT_SORROWGRAVE_SS, 3s, 5s);
break; break;
case EVENT_SORROWGRAVE_FLAMES: case EVENT_SORROWGRAVE_FLAMES:

View File

@@ -32,16 +32,12 @@ enum Misc
SAY_SUMMON_TORGYN = 6, SAY_SUMMON_TORGYN = 6,
// SPELLS // SPELLS
SPELL_BANE_N = 48294, SPELL_BANE = 48294,
SPELL_BANE_H = 59301,
SPELL_DARK_SLASH = 48292, SPELL_DARK_SLASH = 48292,
SPELL_FETID_ROT_N = 48291, SPELL_FETID_ROT = 48291,
SPELL_FETID_ROT_H = 59300,
SPELL_SCREAMS_OF_THE_DEAD = 51750, SPELL_SCREAMS_OF_THE_DEAD = 51750,
SPELL_SPIRIT_BURST_N = 48529, // when Ranulf SPELL_SPIRIT_BURST = 48529, // when Ranulf
SPELL_SPIRIT_BURST_H = 59305, // when Ranulf SPELL_SPIRIT_STRIKE = 48423, // when Haldor
SPELL_SPIRIT_STRIKE_N = 48423, // when Haldor
SPELL_SPIRIT_STRIKE_H = 59304, // when Haldor
SPELL_SUMMON_AVENGING_SPIRIT = 48592, SPELL_SUMMON_AVENGING_SPIRIT = 48592,
SPELL_SUMMON_SPIRIT_FOUNT = 48386, SPELL_SUMMON_SPIRIT_FOUNT = 48386,
@@ -49,8 +45,7 @@ enum Misc
SPELL_CHANNEL_SPIRIT_TO_YMIRON = 48316, SPELL_CHANNEL_SPIRIT_TO_YMIRON = 48316,
SPELL_CHANNEL_YMIRON_TO_SPIRIT = 48307, SPELL_CHANNEL_YMIRON_TO_SPIRIT = 48307,
SPELL_SPIRIT_FOUNT_N = 48380, SPELL_SPIRIT_FOUNT = 48380,
SPELL_SPIRIT_FOUNT_H = 59320,
SPELL_FLAMES = 39199, SPELL_FLAMES = 39199,
@@ -242,13 +237,13 @@ public:
} }
case EVENT_YMIRON_BANE: case EVENT_YMIRON_BANE:
{ {
me->CastSpell(me, IsHeroic() ? SPELL_BANE_H : SPELL_BANE_N, false); me->CastSpell(me, SPELL_BANE, false);
events.Repeat(20s, 25s); events.Repeat(20s, 25s);
break; break;
} }
case EVENT_YMIRON_FETID_ROT: case EVENT_YMIRON_FETID_ROT:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_FETID_ROT_H : SPELL_FETID_ROT_N, false); me->CastSpell(me->GetVictim(), SPELL_FETID_ROT, false);
events.Repeat(10s, 13s); events.Repeat(10s, 13s);
break; break;
} }
@@ -297,7 +292,7 @@ public:
{ {
summons.Summon(sf); summons.Summon(sf);
sf->SetSpeed(MOVE_RUN, 0.4f); sf->SetSpeed(MOVE_RUN, 0.4f);
sf->AddAura(IsHeroic() ? SPELL_SPIRIT_FOUNT_H : SPELL_SPIRIT_FOUNT_N, sf); sf->AddAura(SPELL_SPIRIT_FOUNT, sf);
sf->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); sf->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
sf->GetMotionMaster()->MoveFollow(me->GetVictim(), 0, rand_norm()*M_PI * 2, MOTION_SLOT_ACTIVE, false, false); sf->GetMotionMaster()->MoveFollow(me->GetVictim(), 0, rand_norm()*M_PI * 2, MOTION_SLOT_ACTIVE, false, false);
} }
@@ -305,13 +300,13 @@ public:
} }
case EVENT_YMIRON_HALDOR_ABILITY: case EVENT_YMIRON_HALDOR_ABILITY:
{ {
me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_SPIRIT_STRIKE_H : SPELL_SPIRIT_STRIKE_N, false); me->CastSpell(me->GetVictim(), SPELL_SPIRIT_STRIKE, false);
events.Repeat(5s); events.Repeat(5s);
break; break;
} }
case EVENT_YMIRON_RANULF_ABILITY: case EVENT_YMIRON_RANULF_ABILITY:
{ {
me->CastSpell(me, IsHeroic() ? SPELL_SPIRIT_BURST_H : SPELL_SPIRIT_BURST_N, false); me->CastSpell(me, SPELL_SPIRIT_BURST, false);
events.Repeat(10s); events.Repeat(10s);
break; break;
} }

View File

@@ -422,73 +422,55 @@ struct violet_hold_trashAI : public npc_escortAI
enum AzureInvaderSpells enum AzureInvaderSpells
{ {
SPELL_CLEAVE = 15496, SPELL_CLEAVE = 15496,
SPELL_IMPALE_N = 58459, SPELL_IMPALE = 58459,
SPELL_IMPALE_H = 59256,
SPELL_BRUTAL_STRIKE = 58460, SPELL_BRUTAL_STRIKE = 58460,
SPELL_SUNDER_ARMOR = 58461, SPELL_SUNDER_ARMOR = 58461,
}; };
#define SPELL_IMPALE DUNGEON_MODE(SPELL_IMPALE_N, SPELL_IMPALE_H)
enum AzureSpellbreakerSpells enum AzureSpellbreakerSpells
{ {
SPELL_ARCANE_BLAST_N = 58462, SPELL_ARCANE_BLAST = 58462,
SPELL_ARCANE_BLAST_H = 59257, SPELL_SLOW = 25603,
SPELL_SLOW = 25603,
SPELL_CHAINS_OF_ICE = 58464, SPELL_CHAINS_OF_ICE = 58464,
SPELL_CONE_OF_COLD_N = 58463, SPELL_CONE_OF_COLD = 58463,
SPELL_CONE_OF_COLD_H = 59258
}; };
#define SPELL_ARCANE_BLAST DUNGEON_MODE(SPELL_ARCANE_BLAST_N, SPELL_ARCANE_BLAST_H)
#define SPELL_CONE_OF_COLD DUNGEON_MODE(SPELL_CONE_OF_COLD_N, SPELL_CONE_OF_COLD_H)
enum AzureBinderSpells enum AzureBinderSpells
{ {
SPELL_ARCANE_BARRAGE_N = 58456, SPELL_ARCANE_BARRAGE = 58456,
SPELL_ARCANE_BARRAGE_H = 59248, SPELL_ARCANE_EXPLOSION = 58455,
SPELL_ARCANE_EXPLOSION_N = 58455, SPELL_FROST_NOVA = 58458,
SPELL_ARCANE_EXPLOSION_H = 59245, SPELL_FROSTBOLT = 58457,
SPELL_FROST_NOVA_N = 58458,
SPELL_FROST_NOVA_H = 59253,
SPELL_FROSTBOLT_N = 58457,
SPELL_FROSTBOLT_H = 59251,
}; };
#define SPELL_ARCANE_BARRAGE DUNGEON_MODE(SPELL_ARCANE_BARRAGE_N, SPELL_ARCANE_BARRAGE_H)
#define SPELL_ARCANE_EXPLOSION DUNGEON_MODE(SPELL_ARCANE_EXPLOSION_N, SPELL_ARCANE_EXPLOSION_H)
#define SPELL_FROST_NOVA DUNGEON_MODE(SPELL_FROST_NOVA_N, SPELL_FROST_NOVA_H)
#define SPELL_FROSTBOLT DUNGEON_MODE(SPELL_FROSTBOLT_N, SPELL_FROSTBOLT_H)
enum AzureMageSlayerSpells enum AzureMageSlayerSpells
{ {
SPELL_ARCANE_EMPOWERMENT = 58469, SPELL_ARCANE_EMPOWERMENT = 58469,
SPELL_SPELL_LOCK = 30849 SPELL_SPELL_LOCK = 30849
}; };
enum AzureCaptainSpells enum AzureCaptainSpells
{ {
SPELL_MORTAL_STRIKE = 32736, SPELL_MORTAL_STRIKE = 32736,
SPELL_WHIRLWIND_OF_STEEL = 41056 SPELL_WHIRLWIND_OF_STEEL = 41056
}; };
enum AzureSorcerorSpells enum AzureSorcerorSpells
{ {
SPELL_ARCANE_STREAM_N = 60181, SPELL_ARCANE_STREAM = 60181,
SPELL_ARCANE_STREAM_H = 60204, SPELL_MANA_DETONATION = 60182,
SPELL_MANA_DETONATION_N = 60182,
SPELL_MANA_DETONATION_H = 60205
}; };
#define SPELL_ARCANE_STREAM DUNGEON_MODE(SPELL_ARCANE_STREAM_N, SPELL_ARCANE_STREAM_H)
#define SPELL_MANA_DETONATION DUNGEON_MODE(SPELL_MANA_DETONATION_N, SPELL_MANA_DETONATION_H)
enum AzureRaiderSpells enum AzureRaiderSpells
{ {
SPELL_CONCUSSION_BLOW = 52719, SPELL_CONCUSSION_BLOW = 52719,
SPELL_MAGIC_REFLECTION = 60158 SPELL_MAGIC_REFLECTION = 60158
}; };
enum AzureStalkerSpells enum AzureStalkerSpells
{ {
SPELL_BACKSTAB = 58471, SPELL_BACKSTAB = 58471,
SPELL_TACTICAL_BLINK = 58470 SPELL_TACTICAL_BLINK = 58470
}; };

View File

@@ -23,8 +23,7 @@ enum Spells
{ {
SPELL_ENSNARING_MOSS = 31948, SPELL_ENSNARING_MOSS = 31948,
SPELL_FRENZY = 34970, SPELL_FRENZY = 34970,
SPELL_GRIEVOUS_WOUND_N = 31956, SPELL_GRIEVOUS_WOUND = 31956,
SPELL_GRIEVOUS_WOUND_H = 38801,
SPELL_WATER_SPIT = 35008 SPELL_WATER_SPIT = 35008
}; };
@@ -53,7 +52,7 @@ struct boss_rokmar_the_crackler : public BossAI
scheduler.Schedule(8s, [this] (TaskContext context) scheduler.Schedule(8s, [this] (TaskContext context)
{ {
DoCastVictim(DUNGEON_MODE(SPELL_GRIEVOUS_WOUND_N, SPELL_GRIEVOUS_WOUND_H)); DoCastVictim(SPELL_GRIEVOUS_WOUND);
context.Repeat(20700ms); context.Repeat(20700ms);
}).Schedule(15300ms, [this](TaskContext context) }).Schedule(15300ms, [this](TaskContext context)
{ {