From a2e8409b41782327718d31a1abd3c5377d1cae22 Mon Sep 17 00:00:00 2001 From: Eddy Vega <61223313+Si1ker@users.noreply.github.com> Date: Tue, 18 Apr 2023 19:53:05 -0600 Subject: [PATCH] fix(Scripts/ShadowLabyrinth): Blackheart the Inciter's room link (#15994) * init * pew * init * pew --- .../boss_blackheart_the_inciter.cpp | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp index 58948980e..02d840c46 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp @@ -22,7 +22,7 @@ enum BlackheartTheInciter { SPELL_INCITE_CHAOS = 33676, - SPELL_INCITE_CHAOS_B = 33684, //debuff applied to each member of party + SPELL_INCITE_CHAOS_B = 33684, //debuff applied to each member of party SPELL_CHARGE = 33709, SPELL_WAR_STOMP = 33707, @@ -35,7 +35,7 @@ enum BlackheartTheInciter EVENT_SPELL_INCITE = 1, EVENT_INCITE_WAIT = 2, EVENT_SPELL_CHARGE = 3, - EVENT_SPELL_KNOCKBACK = 4 + EVENT_SPELL_WAR_STOMP = 4 }; class boss_blackheart_the_inciter : public CreatureScript @@ -57,47 +57,54 @@ public: InstanceScript* instance; EventMap events; - bool InciteChaos; void Reset() override { InciteChaos = false; events.Reset(); - if (instance) + { instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, NOT_STARTED); + } } void KilledUnit(Unit* victim) override { if (victim->GetTypeId() == TYPEID_PLAYER && urand(0, 1)) + { Talk(SAY_SLAY); + } } void JustDied(Unit* /*killer*/) override { Talk(SAY_DEATH); if (instance) + { instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, DONE); + } } void JustEngagedWith(Unit* /*who*/) override { Talk(SAY_AGGRO); + me->CallForHelp(100.0f); events.ScheduleEvent(EVENT_SPELL_INCITE, 24000); events.ScheduleEvent(EVENT_INCITE_WAIT, 15000); - events.ScheduleEvent(EVENT_SPELL_CHARGE, 0); - events.ScheduleEvent(EVENT_SPELL_KNOCKBACK, urand(16950, 26350)); - + events.ScheduleEvent(EVENT_SPELL_CHARGE, urand(30000, 50000)); + events.ScheduleEvent(EVENT_SPELL_WAR_STOMP, urand(16950, 26350)); if (instance) + { instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, IN_PROGRESS); + } } void EnterEvadeMode(EvadeReason why) override { if (InciteChaos && SelectTargetFromPlayerList(100.0f)) return; + CreatureAI::EnterEvadeMode(why); } @@ -114,14 +121,16 @@ public: break; case EVENT_SPELL_INCITE: { - me->CastSpell(me, SPELL_INCITE_CHAOS, false); + DoCastAOE(SPELL_INCITE_CHAOS); std::list t_list = me->GetThreatMgr().GetThreatList(); for (std::list::const_iterator itr = t_list.begin(); itr != t_list.end(); ++itr) { Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()); if (target && target->GetTypeId() == TYPEID_PLAYER) + { me->CastSpell(target, SPELL_INCITE_CHAOS_B, true); + } } DoResetThreatList(); @@ -132,12 +141,11 @@ public: break; } case EVENT_SPELL_CHARGE: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) - me->CastSpell(target, SPELL_CHARGE, false); + DoCastRandomTarget(SPELL_CHARGE); events.RepeatEvent(urand(30000, 50000)); break; - case EVENT_SPELL_KNOCKBACK: - me->CastSpell(me, SPELL_WAR_STOMP, false); + case EVENT_SPELL_WAR_STOMP: + DoCastAOE(SPELL_WAR_STOMP); events.RepeatEvent(urand(16950, 26350)); break; }