diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp index 0cb9900b0..81ea14b5b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp @@ -21,18 +21,22 @@ enum Spells { - SPELL_FIRENOVA = 23462, - SPELL_CLEAVE = 20691, - SPELL_CONFLIGURATION = 16805, + SPELL_FLAMESTRIKE = 16419, + SPELL_CLEAVE = 15284, + SPELL_CONFLAGRATION = 16805, SPELL_THUNDERCLAP = 15548, //Not sure if right ID. 23931 would be a harder possibility. + SPELL_RAGE = 16789, + SPELL_PIERCE_ARMOR = 12097 }; enum Events { - EVENT_FIRE_NOVA = 1, - EVENT_CLEAVE = 2, - EVENT_CONFLIGURATION = 3, - EVENT_THUNDERCLAP = 4, + EVENT_FLAMESTRIKE = 1, + EVENT_CLEAVE, + EVENT_CONFLAGRATION, + EVENT_THUNDERCLAP, + EVENT_PIERCE_ARMOR, + EVENT_RAGE }; enum ChromaticEliteGuardEvents @@ -49,8 +53,8 @@ enum ChromaticEliteGuardSpells SPELL_STRIKE = 15580 }; -int const ChromaticEliteGuardEntry = 10814; -int const GeneralDrakkisathEntry = 10814; +constexpr uint32 ChromaticEliteGuardEntry = 10814; +constexpr uint32 GeneralDrakkisathEntry = 10814; class boss_drakkisath : public CreatureScript { @@ -70,10 +74,12 @@ public: { _EnterCombat(); CallForHelp(); - events.ScheduleEvent(EVENT_FIRE_NOVA, 6000); + events.ScheduleEvent(EVENT_FLAMESTRIKE, 6000); events.ScheduleEvent(EVENT_CLEAVE, 8000); - events.ScheduleEvent(EVENT_CONFLIGURATION, 15000); + events.ScheduleEvent(EVENT_CONFLAGRATION, 15000); events.ScheduleEvent(EVENT_THUNDERCLAP, 17000); + events.ScheduleEvent(EVENT_PIERCE_ARMOR, 5000); + events.ScheduleEvent(EVENT_RAGE, 1000); } // Will make his two adds engage combat @@ -106,22 +112,33 @@ public: { switch (eventId) { - case EVENT_FIRE_NOVA: - DoCastVictim(SPELL_FIRENOVA); - events.ScheduleEvent(EVENT_FIRE_NOVA, 10000); + case EVENT_FLAMESTRIKE: + DoCastAOE(SPELL_FLAMESTRIKE); + events.ScheduleEvent(EVENT_FLAMESTRIKE, 10000); break; case EVENT_CLEAVE: DoCastVictim(SPELL_CLEAVE); events.ScheduleEvent(EVENT_CLEAVE, 8000); break; - case EVENT_CONFLIGURATION: - DoCastVictim(SPELL_CONFLIGURATION); - events.ScheduleEvent(EVENT_CONFLIGURATION, 18000); + case EVENT_CONFLAGRATION: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true)) + { + DoCast(target, SPELL_CONFLAGRATION); + } + events.ScheduleEvent(EVENT_CONFLAGRATION, 18000); break; case EVENT_THUNDERCLAP: DoCastVictim(SPELL_THUNDERCLAP); events.ScheduleEvent(EVENT_THUNDERCLAP, 20000); break; + case EVENT_PIERCE_ARMOR: + DoCastVictim(SPELL_PIERCE_ARMOR); + events.ScheduleEvent(EVENT_PIERCE_ARMOR, 40000); + break; + case EVENT_RAGE: + DoCastSelf(SPELL_RAGE); + events.ScheduleEvent(EVENT_RAGE, 35000); + break; } } DoMeleeAttackIfReady();