diff options
Diffstat (limited to 'src')
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()) { } |