aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp82
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp19
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp31
3 files changed, 69 insertions, 63 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
index 9927b90ea7c..b32a61ce2d5 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
@@ -19,45 +19,42 @@
#include "halls_of_stone.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
+#include "SpellMgr.h"
#include "SpellScript.h"
-enum Spells
+enum KrystallusTexts
{
- SPELL_BOULDER_TOSS = 50843,
- SPELL_GROUND_SPIKE = 59750,
- SPELL_GROUND_SLAM = 50827,
- SPELL_SHATTER = 50810,
- SPELL_SHATTER_EFFECT = 50811,
- SPELL_STONED = 50812,
- SPELL_STOMP = 48131
+ SAY_AGGRO = 0,
+ SAY_SLAY = 1,
+ SAY_DEATH = 2,
+ SAY_SHATTER = 3
};
-enum Yells
+enum KrystallusSpells
{
- SAY_AGGRO = 0,
- SAY_KILL = 1,
- SAY_DEATH = 2,
- SAY_SHATTER = 3
+ SPELL_BOULDER_TOSS = 50843,
+ SPELL_GROUND_SPIKE = 59750,
+ SPELL_GROUND_SLAM = 50827,
+ SPELL_SHATTER = 50810,
+ SPELL_SHATTER_EFFECT = 50811,
+ SPELL_STONED = 50812,
+ SPELL_STOMP = 48131
};
-enum Events
+enum KrystallusEvents
{
- EVENT_BOULDER_TOSS = 1,
+ EVENT_BOULDER_TOSS = 1,
EVENT_GROUND_SPIKE,
EVENT_GROUND_SLAM,
EVENT_STOMP,
EVENT_SHATTER
};
+// 27977 - Krystallus
struct boss_krystallus : public BossAI
{
boss_krystallus(Creature* creature) : BossAI(creature, DATA_KRYSTALLUS) { }
- void Reset() override
- {
- _Reset();
- }
-
void JustEngagedWith(Unit* who) override
{
Talk(SAY_AGGRO);
@@ -70,9 +67,26 @@ struct boss_krystallus : public BossAI
events.ScheduleEvent(EVENT_GROUND_SPIKE, 9s, 14s);
}
+ void OnSpellCast(SpellInfo const* spell) override
+ {
+ if (spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_SHATTER, me))
+ Talk(SAY_SHATTER);
+ }
+
+ void KilledUnit(Unit* victim) override
+ {
+ if (victim->GetTypeId() == TYPEID_PLAYER)
+ Talk(SAY_SLAY);
+ }
+
+ void JustDied(Unit* /*killer*/) override
+ {
+ Talk(SAY_DEATH);
+ _JustDied();
+ }
+
void UpdateAI(uint32 diff) override
{
- // Return since we have no target
if (!UpdateVictim())
return;
@@ -88,24 +102,24 @@ struct boss_krystallus : public BossAI
case EVENT_BOULDER_TOSS:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
DoCast(target, SPELL_BOULDER_TOSS);
- events.ScheduleEvent(EVENT_BOULDER_TOSS, 9s, 15s);
+ events.Repeat(9s, 15s);
break;
case EVENT_GROUND_SPIKE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true))
DoCast(target, SPELL_GROUND_SPIKE);
- events.ScheduleEvent(EVENT_GROUND_SPIKE, 12s, 17s);
+ events.Repeat(12s, 17s);
break;
case EVENT_GROUND_SLAM:
- DoCast(me, SPELL_GROUND_SLAM);
+ DoCastSelf(SPELL_GROUND_SLAM);
events.ScheduleEvent(EVENT_SHATTER, 10s);
- events.ScheduleEvent(EVENT_GROUND_SLAM, 15s, 18s);
+ events.Repeat(15s, 18s);
break;
case EVENT_STOMP:
- DoCast(me, SPELL_STOMP);
- events.ScheduleEvent(EVENT_STOMP, 20s, 29s);
+ DoCastSelf(SPELL_STOMP);
+ events.Repeat(20s, 29s);
break;
case EVENT_SHATTER:
- DoCast(me, SPELL_SHATTER);
+ DoCastSelf(SPELL_SHATTER);
break;
default:
break;
@@ -117,18 +131,6 @@ struct boss_krystallus : public BossAI
DoMeleeAttackIfReady();
}
-
- void JustDied(Unit* /*killer*/) override
- {
- Talk(SAY_DEATH);
- _JustDied();
- }
-
- void KilledUnit(Unit* victim) override
- {
- if (victim->GetTypeId() == TYPEID_PLAYER)
- Talk(SAY_KILL);
- }
};
// 50810, 61546 - Shatter
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
index 5a88706560e..14e2ede8c40 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
@@ -22,7 +22,7 @@
#include "SpellInfo.h"
#include "SpellMgr.h"
-enum Texts
+enum MaidenOfGriefTexts
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -30,7 +30,7 @@ enum Texts
SAY_STUN = 3
};
-enum Spells
+enum MaidenOfGriefSpells
{
SPELL_PARTING_SORROW = 59723,
SPELL_STORM_OF_GRIEF = 50752,
@@ -38,7 +38,7 @@ enum Spells
SPELL_PILLAR_OF_WOE = 50761
};
-enum Events
+enum MaidenOfGriefEvents
{
EVENT_PARTING_SORROW = 1,
EVENT_STORM_OF_GRIEF,
@@ -46,11 +46,12 @@ enum Events
EVENT_PILLAR_OF_WOE
};
-enum Achievements
+enum MaidenOfGriefAchievements
{
ACHIEV_GOOD_GRIEF_START_EVENT = 20383,
};
+// 27975 - Maiden of Grief
struct boss_maiden_of_grief : public BossAI
{
boss_maiden_of_grief(Creature* creature) : BossAI(creature, DATA_MAIDEN_OF_GRIEF) { }
@@ -76,17 +77,17 @@ struct boss_maiden_of_grief : public BossAI
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_GOOD_GRIEF_START_EVENT);
}
- void KilledUnit(Unit* /*who*/) override
- {
- Talk(SAY_SLAY);
- }
-
void OnSpellCast(SpellInfo const* spell) override
{
if (spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_SHOCK_OF_SORROW, me))
Talk(SAY_STUN);
}
+ void KilledUnit(Unit* /*who*/) override
+ {
+ Talk(SAY_SLAY);
+ }
+
void JustDied(Unit* /*killer*/) override
{
_JustDied();
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
index 177ace423ee..f4ac6b0587d 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
@@ -25,7 +25,7 @@
#include "SpellMgr.h"
#include "SpellScript.h"
-enum Texts
+enum SjonnirTexts
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -33,7 +33,7 @@ enum Texts
EMOTE_FRENZY = 3
};
-enum Spells
+enum SjonnirSpells
{
SPELL_LIGHTNING_RING_1 = 50840,
SPELL_LIGHTNING_RING_2 = 51849,
@@ -65,14 +65,24 @@ enum Spells
SPELL_TOXIC_VOLLEY = 50838
};
-enum Creatures
+enum SjonnirEvents
+{
+ EVENT_CHAIN_LIGHTNING = 1,
+ EVENT_LIGHTNING_SHIELD,
+ EVENT_STATIC_CHARGE,
+ EVENT_LIGHTNING_RING_1,
+ EVENT_LIGHTNING_RING_2,
+ EVENT_FRENZY
+};
+
+enum SjonnirCreatures
{
NPC_FORGED_IRON_TROGG = 27979,
NPC_FORGED_IRON_DWARF = 27982,
NPC_EARTHEN_DWARF = 27980
};
-enum Misc
+enum SjonnirMisc
{
POINT_CENTER = 0,
POINT_COMBINE = 1,
@@ -81,18 +91,9 @@ enum Misc
DATA_ABUSE_THE_OOZE = 2
};
-enum Events
-{
- EVENT_CHAIN_LIGHTNING = 1,
- EVENT_LIGHTNING_SHIELD,
- EVENT_STATIC_CHARGE,
- EVENT_LIGHTNING_RING_1,
- EVENT_LIGHTNING_RING_2,
- EVENT_FRENZY
-};
-
Position const CenterPoint = { 1293.8799f, 666.942f, 189.60754f, 0.0f };
+// 27978 - Sjonnir The Ironshaper
struct boss_sjonnir : public BossAI
{
boss_sjonnir(Creature* creature) : BossAI(creature, DATA_SJONNIR_THE_IRONSHAPER),
@@ -259,6 +260,7 @@ private:
bool _frenzied;
};
+// 27981 - Malformed Ooze
struct npc_malformed_ooze : public ScriptedAI
{
npc_malformed_ooze(Creature* creature) : ScriptedAI(creature) { }
@@ -350,6 +352,7 @@ private:
ObjectGuid _combineTarget;
};
+// 28165 - Iron Sludge
struct npc_iron_sludge : public ScriptedAI
{
npc_iron_sludge(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }