From 476dcd3eb9224c8d28e62a708aa35aef256ab990 Mon Sep 17 00:00:00 2001 From: Hacki95 <62942638+Hacki95@users.noreply.github.com> Date: Sun, 4 Jul 2021 18:13:27 +0200 Subject: [PATCH] fix(Core/Script): Molten Core: Lucifron (#5655) Co-authored-by: @sanctum32 Co-authored-by: @t1ti --- .../MoltenCore/boss_lucifron.cpp | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp index 2e65a2a55..42cb87894 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp @@ -11,10 +11,9 @@ SDComment: SDCategory: Molten Core EndScriptData */ -#include "molten_core.h" -#include "ObjectMgr.h" -#include "ScriptedCreature.h" #include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "molten_core.h" enum Spells { @@ -41,42 +40,50 @@ public: { } - void EnterCombat(Unit* victim) override + void EnterCombat(Unit* /*victim*/) override { - BossAI::EnterCombat(victim); - events.ScheduleEvent(EVENT_IMPENDING_DOOM, 10000); - events.ScheduleEvent(EVENT_LUCIFRON_CURSE, 20000); - events.ScheduleEvent(EVENT_SHADOW_SHOCK, 6000); + _EnterCombat(); + events.ScheduleEvent(EVENT_IMPENDING_DOOM, urand(6000, 11000)); + events.ScheduleEvent(EVENT_LUCIFRON_CURSE, urand(11000, 14000)); + events.ScheduleEvent(EVENT_SHADOW_SHOCK, 5000); } void UpdateAI(uint32 diff) override { if (!UpdateVictim()) + { return; + } events.Update(diff); if (me->HasUnitState(UNIT_STATE_CASTING)) + { return; + } - while (uint32 eventId = events.ExecuteEvent()) + while (uint32 const eventId = events.ExecuteEvent()) { switch (eventId) { case EVENT_IMPENDING_DOOM: + { DoCastVictim(SPELL_IMPENDING_DOOM); - events.ScheduleEvent(EVENT_IMPENDING_DOOM, 20000); + events.RepeatEvent(20000); break; + } case EVENT_LUCIFRON_CURSE: + { DoCastVictim(SPELL_LUCIFRON_CURSE); - events.ScheduleEvent(EVENT_LUCIFRON_CURSE, 15000); + events.RepeatEvent(20000); break; + } case EVENT_SHADOW_SHOCK: + { DoCastVictim(SPELL_SHADOW_SHOCK); - events.ScheduleEvent(EVENT_SHADOW_SHOCK, 6000); - break; - default: + events.RepeatEvent(5000); break; + } } }