naxx merge fixes
This commit is contained in:
@@ -24,10 +24,8 @@ enum GuardSays
|
|||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_IMPALE_10 = 28783,
|
SPELL_IMPALE = 28783,
|
||||||
SPELL_IMPALE_25 = 56090,
|
SPELL_LOCUST_SWARM = 28785,
|
||||||
SPELL_LOCUST_SWARM_10 = 28785,
|
|
||||||
SPELL_LOCUST_SWARM_25 = 54021,
|
|
||||||
SPELL_SUMMON_CORPSE_SCRABS_5 = 29105,
|
SPELL_SUMMON_CORPSE_SCRABS_5 = 29105,
|
||||||
SPELL_SUMMON_CORPSE_SCRABS_10 = 28864,
|
SPELL_SUMMON_CORPSE_SCRABS_10 = 28864,
|
||||||
SPELL_BERSERK = 26662
|
SPELL_BERSERK = 26662
|
||||||
@@ -127,12 +125,12 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
ScheduleTimedEvent(15s, [&] {
|
ScheduleTimedEvent(15s, [&] {
|
||||||
DoCastRandomTarget(RAID_MODE(SPELL_IMPALE_10, SPELL_IMPALE_25));
|
DoCastRandomTarget(SPELL_IMPALE);
|
||||||
}, 20s);
|
}, 20s);
|
||||||
|
|
||||||
ScheduleTimedEvent(70s, 2min, [&] {
|
ScheduleTimedEvent(70s, 2min, [&] {
|
||||||
Talk(EMOTE_LOCUST);
|
Talk(EMOTE_LOCUST);
|
||||||
DoCastSelf(RAID_MODE(SPELL_LOCUST_SWARM_10, SPELL_LOCUST_SWARM_25));
|
DoCastSelf(SPELL_LOCUST_SWARM);
|
||||||
|
|
||||||
me->m_Events.AddEventAtOffset([&]
|
me->m_Events.AddEventAtOffset([&]
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
#include "CreatureScript.h"
|
#include "CreatureScript.h"
|
||||||
#include "ScriptedCreature.h"
|
#include "ScriptedCreature.h"
|
||||||
#include "SpellInfo.h"
|
#include "SpellInfo.h"
|
||||||
|
#include "SpellMgr.h"
|
||||||
#include "naxxramas.h"
|
#include "naxxramas.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
#ifndef BOSS_FAERLINA_H_
|
#ifndef BOSS_FAERLINA_H_
|
||||||
#define BOSS_FAERLINA_H_
|
#define BOSS_FAERLINA_H_
|
||||||
|
|
||||||
#include "ScriptMgr.h"
|
#include "CreatureScript.h"
|
||||||
#include "ScriptedCreature.h"
|
#include "ScriptedCreature.h"
|
||||||
#include "SpellInfo.h"
|
#include "SpellInfo.h"
|
||||||
|
#include "SpellMgr.h"
|
||||||
#include "naxxramas.h"
|
#include "naxxramas.h"
|
||||||
|
|
||||||
namespace Faerlina {
|
namespace Faerlina {
|
||||||
@@ -25,7 +26,6 @@ enum Spells
|
|||||||
SPELL_RAIN_OF_FIRE = 28794,
|
SPELL_RAIN_OF_FIRE = 28794,
|
||||||
SPELL_FRENZY = 28798,
|
SPELL_FRENZY = 28798,
|
||||||
SPELL_WIDOWS_EMBRACE = 28732,
|
SPELL_WIDOWS_EMBRACE = 28732,
|
||||||
SPELL_MINION_WIDOWS_EMBRACE = 54097
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Groups
|
enum Groups
|
||||||
@@ -131,7 +131,7 @@ public:
|
|||||||
|
|
||||||
void SpellHit(Unit* caster, SpellInfo const* spell) override
|
void SpellHit(Unit* caster, SpellInfo const* spell) override
|
||||||
{
|
{
|
||||||
if (spell->Id == RAID_MODE(SPELL_WIDOWS_EMBRACE, SPELL_MINION_WIDOWS_EMBRACE))
|
if (spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_WIDOWS_EMBRACE, me))
|
||||||
{
|
{
|
||||||
Talk(EMOTE_WIDOWS_EMBRACE);
|
Talk(EMOTE_WIDOWS_EMBRACE);
|
||||||
scheduler.RescheduleGroup(GROUP_FRENZY, 1min);
|
scheduler.RescheduleGroup(GROUP_FRENZY, 1min);
|
||||||
|
|||||||
@@ -22,23 +22,17 @@ enum Spells
|
|||||||
SPELL_MARK_OF_ZELIEK = 28835,
|
SPELL_MARK_OF_ZELIEK = 28835,
|
||||||
SPELL_MARK_DAMAGE = 28836,
|
SPELL_MARK_DAMAGE = 28836,
|
||||||
// Korth'azz
|
// Korth'azz
|
||||||
SPELL_KORTHAZZ_METEOR_10 = 28884,
|
SPELL_KORTHAZZ_METEOR = 28884,
|
||||||
SPELL_KORTHAZZ_METEOR_25 = 57467,
|
|
||||||
// Blaumeux
|
// Blaumeux
|
||||||
SPELL_BLAUMEUX_SHADOW_BOLT_10 = 57374,
|
SPELL_BLAUMEUX_SHADOW_BOLT = 57374,
|
||||||
SPELL_BLAUMEUX_SHADOW_BOLT_25 = 57464,
|
SPELL_BLAUMEUX_VOID_ZONE = 28863,
|
||||||
SPELL_BLAUMEUX_VOID_ZONE_10 = 28863,
|
|
||||||
SPELL_BLAUMEUX_VOID_ZONE_25 = 57463,
|
|
||||||
SPELL_BLAUMEUX_UNYIELDING_PAIN = 57381,
|
SPELL_BLAUMEUX_UNYIELDING_PAIN = 57381,
|
||||||
// Zeliek
|
// Zeliek
|
||||||
SPELL_ZELIEK_HOLY_WRATH_10 = 28883,
|
SPELL_ZELIEK_HOLY_WRATH = 28883,
|
||||||
SPELL_ZELIEK_HOLY_WRATH_25 = 57466,
|
SPELL_ZELIEK_HOLY_BOLT = 57376,
|
||||||
SPELL_ZELIEK_HOLY_BOLT_10 = 57376,
|
|
||||||
SPELL_ZELIEK_HOLY_BOLT_25 = 57465,
|
|
||||||
SPELL_ZELIEK_CONDEMNATION = 57377,
|
SPELL_ZELIEK_CONDEMNATION = 57377,
|
||||||
// Rivendare
|
// Rivendare
|
||||||
SPELL_RIVENDARE_UNHOLY_SHADOW_10 = 28882,
|
SPELL_RIVENDARE_UNHOLY_SHADOW = 28882,
|
||||||
SPELL_RIVENDARE_UNHOLY_SHADOW_25 = 57369
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Events
|
enum Events
|
||||||
@@ -76,15 +70,13 @@ enum FourHorsemen
|
|||||||
const uint32 TABLE_SPELL_MARK[4] = {SPELL_MARK_OF_ZELIEK, SPELL_MARK_OF_BLAUMEUX, SPELL_MARK_OF_RIVENDARE, SPELL_MARK_OF_KORTHAZZ};
|
const uint32 TABLE_SPELL_MARK[4] = {SPELL_MARK_OF_ZELIEK, SPELL_MARK_OF_BLAUMEUX, SPELL_MARK_OF_RIVENDARE, SPELL_MARK_OF_KORTHAZZ};
|
||||||
|
|
||||||
// PRIMARY SPELL
|
// PRIMARY SPELL
|
||||||
const uint32 TABLE_SPELL_PRIMARY_10[4] = {SPELL_ZELIEK_HOLY_BOLT_10, SPELL_BLAUMEUX_SHADOW_BOLT_10, SPELL_RIVENDARE_UNHOLY_SHADOW_10, SPELL_KORTHAZZ_METEOR_10};
|
const uint32 TABLE_SPELL_PRIMARY[4] = {SPELL_ZELIEK_HOLY_BOLT, SPELL_BLAUMEUX_SHADOW_BOLT, SPELL_RIVENDARE_UNHOLY_SHADOW, SPELL_KORTHAZZ_METEOR};
|
||||||
const uint32 TABLE_SPELL_PRIMARY_25[4] = {SPELL_ZELIEK_HOLY_BOLT_25, SPELL_BLAUMEUX_SHADOW_BOLT_25, SPELL_RIVENDARE_UNHOLY_SHADOW_25, SPELL_KORTHAZZ_METEOR_25};
|
|
||||||
|
|
||||||
// PUNISH
|
// PUNISH
|
||||||
const uint32 TABLE_SPELL_PUNISH[4] = {SPELL_ZELIEK_CONDEMNATION, SPELL_BLAUMEUX_UNYIELDING_PAIN, 0, 0};
|
const uint32 TABLE_SPELL_PUNISH[4] = {SPELL_ZELIEK_CONDEMNATION, SPELL_BLAUMEUX_UNYIELDING_PAIN, 0, 0};
|
||||||
|
|
||||||
// SECONDARY SPELL
|
// SECONDARY SPELL
|
||||||
const uint32 TABLE_SPELL_SECONDARY_10[4] = {SPELL_ZELIEK_HOLY_WRATH_10, SPELL_BLAUMEUX_VOID_ZONE_10, 0, 0};
|
const uint32 TABLE_SPELL_SECONDARY[4] = {SPELL_ZELIEK_HOLY_WRATH, SPELL_BLAUMEUX_VOID_ZONE, 0, 0};
|
||||||
const uint32 TABLE_SPELL_SECONDARY_25[4] = {SPELL_ZELIEK_HOLY_WRATH_25, SPELL_BLAUMEUX_VOID_ZONE_25, 0, 0};
|
|
||||||
|
|
||||||
const Position WaypointPositions[12] =
|
const Position WaypointPositions[12] =
|
||||||
{
|
{
|
||||||
@@ -297,11 +289,11 @@ public:
|
|||||||
return;
|
return;
|
||||||
case EVENT_PRIMARY_SPELL:
|
case EVENT_PRIMARY_SPELL:
|
||||||
Talk(SAY_TAUNT);
|
Talk(SAY_TAUNT);
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(TABLE_SPELL_PRIMARY_10[horsemanId], TABLE_SPELL_PRIMARY_25[horsemanId]), false);
|
me->CastSpell(me->GetVictim(), TABLE_SPELL_PRIMARY[horsemanId], false);
|
||||||
events.Repeat(15s);
|
events.Repeat(15s);
|
||||||
return;
|
return;
|
||||||
case EVENT_SECONDARY_SPELL:
|
case EVENT_SECONDARY_SPELL:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(TABLE_SPELL_SECONDARY_10[horsemanId], TABLE_SPELL_SECONDARY_25[horsemanId]), false);
|
me->CastSpell(me->GetVictim(), TABLE_SPELL_SECONDARY[horsemanId], false);
|
||||||
events.Repeat(15s);
|
events.Repeat(15s);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -317,7 +309,7 @@ public:
|
|||||||
}
|
}
|
||||||
if (me->IsWithinDistInMap(me->GetVictim(), 45.0f) && me->IsValidAttackTarget(me->GetVictim()))
|
if (me->IsWithinDistInMap(me->GetVictim(), 45.0f) && me->IsValidAttackTarget(me->GetVictim()))
|
||||||
{
|
{
|
||||||
DoCastVictim(RAID_MODE(TABLE_SPELL_PRIMARY_10[horsemanId], TABLE_SPELL_PRIMARY_25[horsemanId]));
|
DoCastVictim(TABLE_SPELL_PRIMARY[horsemanId]);
|
||||||
}
|
}
|
||||||
else if (!me->IsWithinDistInMap(me->GetVictim(), 45.0f) || !me->IsValidAttackTarget(me->GetVictim()))
|
else if (!me->IsWithinDistInMap(me->GetVictim(), 45.0f) || !me->IsValidAttackTarget(me->GetVictim()))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,10 +13,8 @@ namespace Gluth {
|
|||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_MORTAL_WOUND = 25646,
|
SPELL_MORTAL_WOUND = 25646,
|
||||||
SPELL_ENRAGE_10 = 28371,
|
SPELL_ENRAGE = 28371,
|
||||||
SPELL_ENRAGE_25 = 54427,
|
SPELL_DECIMATE = 28374,
|
||||||
SPELL_DECIMATE_10 = 28374,
|
|
||||||
SPELL_DECIMATE_25 = 54426,
|
|
||||||
SPELL_DECIMATE_DAMAGE = 28375,
|
SPELL_DECIMATE_DAMAGE = 28375,
|
||||||
SPELL_BERSERK = 26662,
|
SPELL_BERSERK = 26662,
|
||||||
SPELL_INFECTED_WOUND = 29306,
|
SPELL_INFECTED_WOUND = 29306,
|
||||||
@@ -172,7 +170,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_ENRAGE:
|
case EVENT_ENRAGE:
|
||||||
Talk(EMOTE_ENRAGE);
|
Talk(EMOTE_ENRAGE);
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_ENRAGE_10, SPELL_ENRAGE_25), true);
|
me->CastSpell(me, SPELL_ENRAGE, true);
|
||||||
events.Repeat(22s);
|
events.Repeat(22s);
|
||||||
break;
|
break;
|
||||||
case EVENT_MORTAL_WOUND:
|
case EVENT_MORTAL_WOUND:
|
||||||
@@ -181,7 +179,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_DECIMATE:
|
case EVENT_DECIMATE:
|
||||||
Talk(EMOTE_DECIMATE);
|
Talk(EMOTE_DECIMATE);
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_DECIMATE_10, SPELL_DECIMATE_25), false);
|
me->CastSpell(me, SPELL_DECIMATE, false);
|
||||||
events.Repeat(RAID_MODE(110s, 90s));
|
events.Repeat(RAID_MODE(110s, 90s));
|
||||||
break;
|
break;
|
||||||
case EVENT_SUMMON_ZOMBIE:
|
case EVENT_SUMMON_ZOMBIE:
|
||||||
|
|||||||
@@ -29,8 +29,7 @@ enum Spells
|
|||||||
{
|
{
|
||||||
// Gothik
|
// Gothik
|
||||||
SPELL_HARVEST_SOUL = 28679,
|
SPELL_HARVEST_SOUL = 28679,
|
||||||
SPELL_SHADOW_BOLT_10 = 29317,
|
SPELL_SHADOW_BOLT = 29317,
|
||||||
SPELL_SHADOW_BOLT_25 = 56405,
|
|
||||||
// Teleport spells
|
// Teleport spells
|
||||||
SPELL_TELEPORT_DEAD = 28025,
|
SPELL_TELEPORT_DEAD = 28025,
|
||||||
SPELL_TELEPORT_LIVE = 28026,
|
SPELL_TELEPORT_LIVE = 28026,
|
||||||
@@ -255,7 +254,7 @@ public:
|
|||||||
std::vector<Player*> tList;
|
std::vector<Player*> tList;
|
||||||
for(Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
|
for(Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
|
||||||
{
|
{
|
||||||
if (!me->IsWithinDistInMap(itr->GetSource(), 200.0f, true, false) || !itr->GetSource()->IsAlive() || itr->GetSource()->IsGameMaster())
|
if (!me->IsWithinDistInMap(itr->GetSource(), 200.0f, true, false, false) || !itr->GetSource()->IsAlive() || itr->GetSource()->IsGameMaster())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -388,7 +387,7 @@ public:
|
|||||||
Talk(SAY_INTRO_4);
|
Talk(SAY_INTRO_4);
|
||||||
break;
|
break;
|
||||||
case EVENT_SHADOW_BOLT:
|
case EVENT_SHADOW_BOLT:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_SHADOW_BOLT_10, SPELL_SHADOW_BOLT_25), false);
|
me->CastSpell(me->GetVictim(), SPELL_SHADOW_BOLT, false);
|
||||||
events.Repeat(1s);
|
events.Repeat(1s);
|
||||||
break;
|
break;
|
||||||
case EVENT_HARVEST_SOUL:
|
case EVENT_HARVEST_SOUL:
|
||||||
|
|||||||
@@ -17,10 +17,8 @@ enum Spells
|
|||||||
SPELL_POISON_CLOUD = 28240,
|
SPELL_POISON_CLOUD = 28240,
|
||||||
SPELL_MUTATING_INJECTION = 28169,
|
SPELL_MUTATING_INJECTION = 28169,
|
||||||
SPELL_MUTATING_EXPLOSION = 28206,
|
SPELL_MUTATING_EXPLOSION = 28206,
|
||||||
SPELL_SLIME_SPRAY_10 = 28157,
|
SPELL_SLIME_SPRAY = 28157,
|
||||||
SPELL_SLIME_SPRAY_25 = 54364,
|
SPELL_POISON_CLOUD_DAMAGE_AURA = 28158,
|
||||||
SPELL_POISON_CLOUD_DAMAGE_AURA_10 = 28158,
|
|
||||||
SPELL_POISON_CLOUD_DAMAGE_AURA_25 = 54362,
|
|
||||||
SPELL_BERSERK = 26662,
|
SPELL_BERSERK = 26662,
|
||||||
SPELL_BOMBARD_SLIME = 28280
|
SPELL_BOMBARD_SLIME = 28280
|
||||||
};
|
};
|
||||||
@@ -93,14 +91,6 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_BERSERK, RAID_MODE(720s, 540s));
|
events.ScheduleEvent(EVENT_BERSERK, RAID_MODE(720s, 540s));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
|
|
||||||
{
|
|
||||||
if (spellInfo->Id == RAID_MODE(SPELL_SLIME_SPRAY_10, SPELL_SLIME_SPRAY_25) && target->IsPlayer())
|
|
||||||
{
|
|
||||||
me->SummonCreature(NPC_FALLOUT_SLIME, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void JustSummoned(Creature* cr) override
|
void JustSummoned(Creature* cr) override
|
||||||
{
|
{
|
||||||
if (cr->GetEntry() == NPC_FALLOUT_SLIME)
|
if (cr->GetEntry() == NPC_FALLOUT_SLIME)
|
||||||
@@ -157,7 +147,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_SLIME_SPRAY:
|
case EVENT_SLIME_SPRAY:
|
||||||
Talk(EMOTE_SLIME);
|
Talk(EMOTE_SLIME);
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_SLIME_SPRAY_10, SPELL_SLIME_SPRAY_25), false);
|
me->CastSpell(me->GetVictim(), SPELL_SLIME_SPRAY, false);
|
||||||
events.Repeat(20s);
|
events.Repeat(20s);
|
||||||
break;
|
break;
|
||||||
case EVENT_MUTATING_INJECTION:
|
case EVENT_MUTATING_INJECTION:
|
||||||
@@ -211,7 +201,7 @@ public:
|
|||||||
auraVisualTimer += diff;
|
auraVisualTimer += diff;
|
||||||
if (auraVisualTimer >= 1000)
|
if (auraVisualTimer >= 1000)
|
||||||
{
|
{
|
||||||
me->CastSpell(me, (me->GetMap()->Is25ManRaid() ? SPELL_POISON_CLOUD_DAMAGE_AURA_25 : SPELL_POISON_CLOUD_DAMAGE_AURA_10), true);
|
me->CastSpell(me, SPELL_POISON_CLOUD_DAMAGE_AURA, true);
|
||||||
auraVisualTimer = 0;
|
auraVisualTimer = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,6 +269,22 @@ class spell_grobbulus_mutating_injection_aura : public AuraScript
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class spell_grobbulus_slime_spray : public SpellScript
|
||||||
|
{
|
||||||
|
PrepareSpellScript(spell_grobbulus_slime_spray);
|
||||||
|
|
||||||
|
void HandleHit()
|
||||||
|
{
|
||||||
|
if (Unit* target = GetHitUnit())
|
||||||
|
GetCaster()->SummonCreature(NPC_FALLOUT_SLIME, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnHit += SpellHitFn(spell_grobbulus_slime_spray::HandleHit);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ enum Says
|
|||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_SPELL_DISRUPTION = 29310,
|
SPELL_SPELL_DISRUPTION = 29310,
|
||||||
SPELL_DECREPIT_FEVER_10 = 29998,
|
SPELL_DECREPIT_FEVER = 29998,
|
||||||
SPELL_DECREPIT_FEVER_25 = 55011,
|
|
||||||
SPELL_PLAGUE_CLOUD = 29350,
|
SPELL_PLAGUE_CLOUD = 29350,
|
||||||
SPELL_TELEPORT_SELF = 30211
|
SPELL_TELEPORT_SELF = 30211
|
||||||
};
|
};
|
||||||
@@ -157,7 +156,7 @@ public:
|
|||||||
events.Repeat(10s);
|
events.Repeat(10s);
|
||||||
break;
|
break;
|
||||||
case EVENT_DECEPIT_FEVER:
|
case EVENT_DECEPIT_FEVER:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_DECREPIT_FEVER_10, SPELL_DECREPIT_FEVER_25), false);
|
me->CastSpell(me, SPELL_DECREPIT_FEVER, false);
|
||||||
events.Repeat(22s, 25s);
|
events.Repeat(22s, 25s);
|
||||||
break;
|
break;
|
||||||
case EVENT_PLAGUE_CLOUD:
|
case EVENT_PLAGUE_CLOUD:
|
||||||
|
|||||||
@@ -31,10 +31,8 @@ enum Yells
|
|||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
// Kel'Thzuad
|
// Kel'Thzuad
|
||||||
SPELL_FROST_BOLT_SINGLE_10 = 28478,
|
SPELL_FROST_BOLT_SINGLE = 28478,
|
||||||
SPELL_FROST_BOLT_SINGLE_25 = 55802,
|
SPELL_FROST_BOLT_MULTI = 28479,
|
||||||
SPELL_FROST_BOLT_MULTI_10 = 28479,
|
|
||||||
SPELL_FROST_BOLT_MULTI_25 = 55807,
|
|
||||||
SPELL_SHADOW_FISURE = 27810,
|
SPELL_SHADOW_FISURE = 27810,
|
||||||
SPELL_VOID_BLAST = 27812,
|
SPELL_VOID_BLAST = 27812,
|
||||||
SPELL_DETONATE_MANA = 27819,
|
SPELL_DETONATE_MANA = 27819,
|
||||||
@@ -355,11 +353,11 @@ public:
|
|||||||
me->CastSpell(me, SPELL_BERSERK, true);
|
me->CastSpell(me, SPELL_BERSERK, true);
|
||||||
break;
|
break;
|
||||||
case EVENT_FROST_BOLT_SINGLE:
|
case EVENT_FROST_BOLT_SINGLE:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_FROST_BOLT_SINGLE_10, SPELL_FROST_BOLT_SINGLE_25), false);
|
me->CastSpell(me->GetVictim(), SPELL_FROST_BOLT_SINGLE, false);
|
||||||
events.Repeat(2s, 10s);
|
events.Repeat(2s, 10s);
|
||||||
break;
|
break;
|
||||||
case EVENT_FROST_BOLT_MULTI:
|
case EVENT_FROST_BOLT_MULTI:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_FROST_BOLT_MULTI_10, SPELL_FROST_BOLT_MULTI_25), false);
|
me->CastSpell(me, SPELL_FROST_BOLT_MULTI, false);
|
||||||
events.Repeat(15s, 30s);
|
events.Repeat(15s, 30s);
|
||||||
break;
|
break;
|
||||||
case EVENT_SHADOW_FISSURE:
|
case EVENT_SHADOW_FISSURE:
|
||||||
|
|||||||
@@ -12,10 +12,8 @@ enum Spells
|
|||||||
{
|
{
|
||||||
SPELL_NECROTIC_AURA = 55593,
|
SPELL_NECROTIC_AURA = 55593,
|
||||||
SPELL_SUMMON_SPORE = 29234,
|
SPELL_SUMMON_SPORE = 29234,
|
||||||
SPELL_DEATHBLOOM_10 = 29865,
|
SPELL_DEATHBLOOM = 29865,
|
||||||
SPELL_DEATHBLOOM_25 = 55053,
|
SPELL_INEVITABLE_DOOM = 29204,
|
||||||
SPELL_INEVITABLE_DOOM_10 = 29204,
|
|
||||||
SPELL_INEVITABLE_DOOM_25 = 55052,
|
|
||||||
SPELL_BERSERK = 26662
|
SPELL_BERSERK = 26662
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -123,11 +121,11 @@ public:
|
|||||||
events.Repeat(20s);
|
events.Repeat(20s);
|
||||||
break;
|
break;
|
||||||
case EVENT_DEATHBLOOM:
|
case EVENT_DEATHBLOOM:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_DEATHBLOOM_10, SPELL_DEATHBLOOM_25), false);
|
me->CastSpell(me, SPELL_DEATHBLOOM, false);
|
||||||
events.Repeat(30s);
|
events.Repeat(30s);
|
||||||
break;
|
break;
|
||||||
case EVENT_INEVITABLE_DOOM:
|
case EVENT_INEVITABLE_DOOM:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_INEVITABLE_DOOM_10, SPELL_INEVITABLE_DOOM_25), false);
|
me->CastSpell(me, SPELL_INEVITABLE_DOOM, false);
|
||||||
doomCounter++;
|
doomCounter++;
|
||||||
events.Repeat(doomCounter < 6 ? 30s : 15s);
|
events.Repeat(doomCounter < 6 ? 30s : 15s);
|
||||||
break;
|
break;
|
||||||
@@ -148,8 +146,8 @@ public:
|
|||||||
{
|
{
|
||||||
// Calculate the distance between his home position to the gate
|
// Calculate the distance between his home position to the gate
|
||||||
if (me->GetExactDist(me->GetHomePosition().GetPositionX(),
|
if (me->GetExactDist(me->GetHomePosition().GetPositionX(),
|
||||||
me->GetHomePosition().GetPositionY(),
|
me->GetHomePosition().GetPositionY(),
|
||||||
me->GetHomePosition().GetPositionZ()) > 50.0f)
|
me->GetHomePosition().GetPositionZ()) > 50.0f)
|
||||||
{
|
{
|
||||||
EnterEvadeMode();
|
EnterEvadeMode();
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -15,14 +15,10 @@ namespace Maexxna {
|
|||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_WEB_SPRAY_10 = 29484,
|
SPELL_WEB_SPRAY = 29484,
|
||||||
SPELL_WEB_SPRAY_25 = 54125,
|
SPELL_POISON_SHOCK = 28741,
|
||||||
SPELL_POISON_SHOCK_10 = 28741,
|
SPELL_NECROTIC_POISON = 54121,
|
||||||
SPELL_POISON_SHOCK_25 = 54122,
|
SPELL_FRENZY = 54123,
|
||||||
SPELL_NECROTIC_POISON_10 = 54121,
|
|
||||||
SPELL_NECROTIC_POISON_25 = 28776,
|
|
||||||
SPELL_FRENZY_10 = 54123,
|
|
||||||
SPELL_FRENZY_25 = 54124,
|
|
||||||
SPELL_WEB_WRAP_STUN = 28622,
|
SPELL_WEB_WRAP_STUN = 28622,
|
||||||
SPELL_WEB_WRAP_SUMMON = 28627,
|
SPELL_WEB_WRAP_SUMMON = 28627,
|
||||||
SPELL_WEB_WRAP_KILL_WEBS = 52512,
|
SPELL_WEB_WRAP_KILL_WEBS = 52512,
|
||||||
@@ -220,15 +216,15 @@ public:
|
|||||||
{
|
{
|
||||||
case EVENT_WEB_SPRAY:
|
case EVENT_WEB_SPRAY:
|
||||||
Talk(EMOTE_WEB_SPRAY);
|
Talk(EMOTE_WEB_SPRAY);
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_WEB_SPRAY_10, SPELL_WEB_SPRAY_25), true);
|
me->CastSpell(me, SPELL_WEB_SPRAY, true);
|
||||||
events.Repeat(40s);
|
events.Repeat(40s);
|
||||||
break;
|
break;
|
||||||
case EVENT_POISON_SHOCK:
|
case EVENT_POISON_SHOCK:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_POISON_SHOCK_10, SPELL_POISON_SHOCK_25), false);
|
me->CastSpell(me->GetVictim(), SPELL_POISON_SHOCK, false);
|
||||||
events.Repeat(10s);
|
events.Repeat(10s);
|
||||||
break;
|
break;
|
||||||
case EVENT_NECROTIC_POISON:
|
case EVENT_NECROTIC_POISON:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_NECROTIC_POISON_10, SPELL_NECROTIC_POISON_25), false);
|
me->CastSpell(me->GetVictim(), SPELL_NECROTIC_POISON, false);
|
||||||
events.Repeat(30s);
|
events.Repeat(30s);
|
||||||
break;
|
break;
|
||||||
case EVENT_SUMMON_SPIDERLINGS:
|
case EVENT_SUMMON_SPIDERLINGS:
|
||||||
@@ -242,7 +238,7 @@ public:
|
|||||||
case EVENT_HEALTH_CHECK:
|
case EVENT_HEALTH_CHECK:
|
||||||
if (me->GetHealthPct() < 30)
|
if (me->GetHealthPct() < 30)
|
||||||
{
|
{
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_FRENZY_10, SPELL_FRENZY_25), true);
|
me->CastSpell(me, SPELL_FRENZY, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
events.Repeat(1s);
|
events.Repeat(1s);
|
||||||
|
|||||||
@@ -23,10 +23,8 @@ enum Says
|
|||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_CURSE_OF_THE_PLAGUEBRINGER_10 = 29213,
|
SPELL_CURSE_OF_THE_PLAGUEBRINGER = 29213,
|
||||||
SPELL_CURSE_OF_THE_PLAGUEBRINGER_25 = 54835,
|
SPELL_CRIPPLE = 29212,
|
||||||
SPELL_CRIPPLE_10 = 29212,
|
|
||||||
SPELL_CRIPPLE_25 = 54814,
|
|
||||||
SPELL_SUMMON_PLAGUED_WARRIORS = 29237,
|
SPELL_SUMMON_PLAGUED_WARRIORS = 29237,
|
||||||
SPELL_TELEPORT = 29216,
|
SPELL_TELEPORT = 29216,
|
||||||
SPELL_TELEPORT_BACK = 29231,
|
SPELL_TELEPORT_BACK = 29231,
|
||||||
@@ -196,7 +194,7 @@ public:
|
|||||||
case EVENT_CURSE:
|
case EVENT_CURSE:
|
||||||
if (events.GetPhaseMask() == 0)
|
if (events.GetPhaseMask() == 0)
|
||||||
{
|
{
|
||||||
me->CastCustomSpell(RAID_MODE(SPELL_CURSE_OF_THE_PLAGUEBRINGER_10, SPELL_CURSE_OF_THE_PLAGUEBRINGER_25), SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 10), me, false);
|
me->CastCustomSpell(SPELL_CURSE_OF_THE_PLAGUEBRINGER, SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 10), me, false);
|
||||||
}
|
}
|
||||||
events.Repeat(25s);
|
events.Repeat(25s);
|
||||||
break;
|
break;
|
||||||
@@ -217,7 +215,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_BLINK:
|
case EVENT_BLINK:
|
||||||
DoResetThreatList();
|
DoResetThreatList();
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_CRIPPLE_10, SPELL_CRIPPLE_25), false);
|
me->CastSpell(me, SPELL_CRIPPLE, false);
|
||||||
me->CastSpell(me, SPELL_BLINK, true);
|
me->CastSpell(me, SPELL_BLINK, true);
|
||||||
Talk(EMOTE_BLINK);
|
Talk(EMOTE_BLINK);
|
||||||
events.Repeat(30s);
|
events.Repeat(30s);
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ enum Yells
|
|||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_HATEFUL_STRIKE_10 = 41926,
|
SPELL_HATEFUL_STRIKE = 41926,
|
||||||
SPELL_HATEFUL_STRIKE_25 = 59192,
|
|
||||||
SPELL_FRENZY = 28131,
|
SPELL_FRENZY = 28131,
|
||||||
SPELL_BERSERK = 26662,
|
SPELL_BERSERK = 26662,
|
||||||
SPELL_SLIME_BOLT = 32309
|
SPELL_SLIME_BOLT = 32309
|
||||||
@@ -144,7 +143,7 @@ public:
|
|||||||
}
|
}
|
||||||
if (finalTarget)
|
if (finalTarget)
|
||||||
{
|
{
|
||||||
me->CastSpell(finalTarget, RAID_MODE(SPELL_HATEFUL_STRIKE_10, SPELL_HATEFUL_STRIKE_25), false);
|
me->CastSpell(finalTarget, SPELL_HATEFUL_STRIKE, false);
|
||||||
}
|
}
|
||||||
events.Repeat(1s);
|
events.Repeat(1s);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ enum Says
|
|||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_UNBALANCING_STRIKE = 26613,
|
SPELL_UNBALANCING_STRIKE = 26613,
|
||||||
SPELL_DISRUPTING_SHOUT_10 = 55543,
|
SPELL_DISRUPTING_SHOUT = 55543,
|
||||||
SPELL_DISRUPTING_SHOUT_25 = 29107,
|
|
||||||
SPELL_JAGGED_KNIFE = 55550,
|
SPELL_JAGGED_KNIFE = 55550,
|
||||||
SPELL_HOPELESS = 29125,
|
SPELL_HOPELESS = 29125,
|
||||||
SPELL_TAUNT = 29060
|
SPELL_TAUNT = 29060
|
||||||
@@ -255,7 +254,7 @@ public:
|
|||||||
events.Repeat(20s);
|
events.Repeat(20s);
|
||||||
break;
|
break;
|
||||||
case EVENT_DISRUPTING_SHOUT:
|
case EVENT_DISRUPTING_SHOUT:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_DISRUPTING_SHOUT_10, SPELL_DISRUPTING_SHOUT_25), false);
|
me->CastSpell(me, SPELL_DISRUPTING_SHOUT, false);
|
||||||
events.Repeat(15s);
|
events.Repeat(15s);
|
||||||
break;
|
break;
|
||||||
case EVENT_JAGGED_KNIFE:
|
case EVENT_JAGGED_KNIFE:
|
||||||
|
|||||||
@@ -21,14 +21,11 @@ enum Yells
|
|||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
// Fight
|
// Fight
|
||||||
SPELL_FROST_AURA_10 = 28531,
|
SPELL_FROST_AURA = 28531,
|
||||||
SPELL_FROST_AURA_25 = 55799,
|
|
||||||
SPELL_CLEAVE = 19983,
|
SPELL_CLEAVE = 19983,
|
||||||
SPELL_TAIL_SWEEP_10 = 55697,
|
SPELL_TAIL_SWEEP = 55697,
|
||||||
SPELL_TAIL_SWEEP_25 = 55696,
|
|
||||||
SPELL_SUMMON_BLIZZARD = 28560,
|
SPELL_SUMMON_BLIZZARD = 28560,
|
||||||
SPELL_LIFE_DRAIN_10 = 28542,
|
SPELL_LIFE_DRAIN = 28542,
|
||||||
SPELL_LIFE_DRAIN_25 = 55665,
|
|
||||||
SPELL_BERSERK = 26662,
|
SPELL_BERSERK = 26662,
|
||||||
|
|
||||||
// Ice block
|
// Ice block
|
||||||
@@ -148,7 +145,7 @@ public:
|
|||||||
{
|
{
|
||||||
BossAI::JustEngagedWith(who);
|
BossAI::JustEngagedWith(who);
|
||||||
EnterCombatSelfFunction();
|
EnterCombatSelfFunction();
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_FROST_AURA_10, SPELL_FROST_AURA_25), true);
|
me->CastSpell(me, SPELL_FROST_AURA, true);
|
||||||
events.ScheduleEvent(EVENT_BERSERK, 15min);
|
events.ScheduleEvent(EVENT_BERSERK, 15min);
|
||||||
events.ScheduleEvent(EVENT_CLEAVE, 5s);
|
events.ScheduleEvent(EVENT_CLEAVE, 5s);
|
||||||
events.ScheduleEvent(EVENT_TAIL_SWEEP, 10s);
|
events.ScheduleEvent(EVENT_TAIL_SWEEP, 10s);
|
||||||
@@ -246,11 +243,11 @@ public:
|
|||||||
events.Repeat(10s);
|
events.Repeat(10s);
|
||||||
return;
|
return;
|
||||||
case EVENT_TAIL_SWEEP:
|
case EVENT_TAIL_SWEEP:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_TAIL_SWEEP_10, SPELL_TAIL_SWEEP_25), false);
|
me->CastSpell(me, SPELL_TAIL_SWEEP, false);
|
||||||
events.Repeat(10s);
|
events.Repeat(10s);
|
||||||
return;
|
return;
|
||||||
case EVENT_LIFE_DRAIN:
|
case EVENT_LIFE_DRAIN:
|
||||||
me->CastCustomSpell(RAID_MODE(SPELL_LIFE_DRAIN_10, SPELL_LIFE_DRAIN_25), SPELLVALUE_MAX_TARGETS, RAID_MODE(2, 5), me, false);
|
me->CastCustomSpell(SPELL_LIFE_DRAIN, SPELLVALUE_MAX_TARGETS, RAID_MODE(2, 5), me, false);
|
||||||
events.Repeat(24s);
|
events.Repeat(24s);
|
||||||
return;
|
return;
|
||||||
case EVENT_BLIZZARD:
|
case EVENT_BLIZZARD:
|
||||||
|
|||||||
@@ -46,20 +46,17 @@ enum Spells
|
|||||||
SPELL_SHOCK_VISUAL = 28159,
|
SPELL_SHOCK_VISUAL = 28159,
|
||||||
|
|
||||||
// Stalagg
|
// Stalagg
|
||||||
SPELL_POWER_SURGE_10 = 54529,
|
SPELL_POWER_SURGE = 54529,
|
||||||
SPELL_POWER_SURGE_25 = 28134,
|
|
||||||
SPELL_STALAGG_CHAIN = 28096,
|
SPELL_STALAGG_CHAIN = 28096,
|
||||||
|
|
||||||
// Feugen
|
// Feugen
|
||||||
SPELL_STATIC_FIELD_10 = 28135,
|
SPELL_STATIC_FIELD = 28135,
|
||||||
SPELL_STATIC_FIELD_25 = 54528,
|
|
||||||
SPELL_FEUGEN_CHAIN = 28111,
|
SPELL_FEUGEN_CHAIN = 28111,
|
||||||
|
|
||||||
// Thaddius
|
// Thaddius
|
||||||
SPELL_POLARITY_SHIFT = 28089,
|
SPELL_POLARITY_SHIFT = 28089,
|
||||||
SPELL_BALL_LIGHTNING = 28299,
|
SPELL_BALL_LIGHTNING = 28299,
|
||||||
SPELL_CHAIN_LIGHTNING_10 = 28167,
|
SPELL_CHAIN_LIGHTNING = 28167,
|
||||||
SPELL_CHAIN_LIGHTNING_25 = 54531,
|
|
||||||
SPELL_BERSERK = 27680,
|
SPELL_BERSERK = 27680,
|
||||||
SPELL_THADDIUS_VISUAL_LIGHTNING = 28136,
|
SPELL_THADDIUS_VISUAL_LIGHTNING = 28136,
|
||||||
SPELL_THADDIUS_SPAWN_STUN = 28160,
|
SPELL_THADDIUS_SPAWN_STUN = 28160,
|
||||||
@@ -295,16 +292,17 @@ public:
|
|||||||
me->SetReactState(REACT_AGGRESSIVE);
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||||
|
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||||
events.ScheduleEvent(EVENT_THADDIUS_CHAIN_LIGHTNING, 14s);
|
events.ScheduleEvent(EVENT_THADDIUS_CHAIN_LIGHTNING, 14s);
|
||||||
events.ScheduleEvent(EVENT_THADDIUS_BERSERK, 6min);
|
events.ScheduleEvent(EVENT_THADDIUS_BERSERK, 6min);
|
||||||
events.ScheduleEvent(EVENT_THADDIUS_POLARITY_SHIFT, 30s);
|
events.ScheduleEvent(EVENT_THADDIUS_POLARITY_SHIFT, 20s);
|
||||||
events.ScheduleEvent(EVENT_ALLOW_BALL_LIGHTNING, 5s);
|
events.ScheduleEvent(EVENT_ALLOW_BALL_LIGHTNING, 5s);
|
||||||
return;
|
return;
|
||||||
case EVENT_THADDIUS_BERSERK:
|
case EVENT_THADDIUS_BERSERK:
|
||||||
me->CastSpell(me, SPELL_BERSERK, true);
|
me->CastSpell(me, SPELL_BERSERK, true);
|
||||||
break;
|
break;
|
||||||
case EVENT_THADDIUS_CHAIN_LIGHTNING:
|
case EVENT_THADDIUS_CHAIN_LIGHTNING:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_CHAIN_LIGHTNING_10, SPELL_CHAIN_LIGHTNING_25), false);
|
me->CastSpell(me->GetVictim(), SPELL_CHAIN_LIGHTNING, false);
|
||||||
events.Repeat(15s);
|
events.Repeat(15s);
|
||||||
break;
|
break;
|
||||||
case EVENT_THADDIUS_POLARITY_SHIFT:
|
case EVENT_THADDIUS_POLARITY_SHIFT:
|
||||||
@@ -484,11 +482,11 @@ public:
|
|||||||
switch (events.ExecuteEvent())
|
switch (events.ExecuteEvent())
|
||||||
{
|
{
|
||||||
case EVENT_MINION_POWER_SURGE:
|
case EVENT_MINION_POWER_SURGE:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_POWER_SURGE_10, SPELL_POWER_SURGE_25), false);
|
me->CastSpell(me, SPELL_POWER_SURGE, false);
|
||||||
events.Repeat(19s);
|
events.Repeat(19s);
|
||||||
break;
|
break;
|
||||||
case EVENT_MINION_STATIC_FIELD:
|
case EVENT_MINION_STATIC_FIELD:
|
||||||
me->CastSpell(me, RAID_MODE(SPELL_STATIC_FIELD_10, SPELL_STATIC_FIELD_25), false);
|
me->CastSpell(me, SPELL_STATIC_FIELD, false);
|
||||||
events.Repeat(3s);
|
events.Repeat(3s);
|
||||||
break;
|
break;
|
||||||
case EVENT_MINION_MAGNETIC_PULL:
|
case EVENT_MINION_MAGNETIC_PULL:
|
||||||
|
|||||||
Reference in New Issue
Block a user