mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
refactor(Scripts/Instances): move spell ids for Heroic to dungeondifficulty_dbc (#23470)
This commit is contained in:
151
data/sql/updates/pending_db_world/rev_1761739383617751530.sql
Normal file
151
data/sql/updates/pending_db_world/rev_1761739383617751530.sql
Normal 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");
|
||||||
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user