From 7f36c5f059c616444c91a4b0d4b0503b78c6c981 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 8 Oct 2023 17:19:48 -0300 Subject: [PATCH] =?UTF-8?q?fix(Scripts/Karazhan):=20Replace=20Big=20Bad=20?= =?UTF-8?q?Wolf=20chase=20mechanic=20with=20prope=E2=80=A6=20(#17458)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Scripts/Karazhan): Replace Big Bad Wolf chase mechanic with proper taunt spell --- .../EasternKingdoms/Karazhan/bosses_opera.cpp | 52 +++---------------- 1 file changed, 6 insertions(+), 46 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 94e031126..59a348e61 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -688,6 +688,7 @@ enum RedRidingHood SPELL_LITTLE_RED_RIDING_HOOD = 30768, SPELL_TERRIFYING_HOWL = 30752, SPELL_WIDE_SWIPE = 30761, + SPELL_PICNIC_BASKET_SMELL = 30755, CREATURE_BIG_BAD_WOLF = 17521, @@ -751,16 +752,6 @@ struct boss_bigbadwolf : public ScriptedAI InstanceScript* instance; - ObjectGuid HoodGUID; - - void Reset() override - { - HoodGUID.Clear(); - _tempThreat = 0; - - _isChasing = false; - } - void JustEngagedWith(Unit* /*who*/) override { instance->DoUseDoorOrButton(instance->GetGuidData(DATA_GO_STAGEDOORLEFT)); @@ -769,40 +760,14 @@ struct boss_bigbadwolf : public ScriptedAI _scheduler.Schedule(30s, [this](TaskContext context) { - if (!_isChasing) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true)) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true)) - { - Talk(SAY_WOLF_HOOD); - DoCast(target, SPELL_LITTLE_RED_RIDING_HOOD, true); - _tempThreat = DoGetThreat(target); - if (_tempThreat) - { - DoModifyThreatByPercent(target, -100); - } - HoodGUID = target->GetGUID(); - me->AddThreat(target, 1000000.0f); - _isChasing = true; - context.Repeat(20s); - } + Talk(SAY_WOLF_HOOD); + DoCast(target, SPELL_LITTLE_RED_RIDING_HOOD, true); + target->CastSpell(me, SPELL_PICNIC_BASKET_SMELL, true); } - else - { - _isChasing = false; - if (Unit* target = ObjectAccessor::GetUnit(*me, HoodGUID)) - { - HoodGUID.Clear(); - if (DoGetThreat(target)) - { - DoModifyThreatByPercent(target, -100); - } - me->AddThreat(target, _tempThreat); - _tempThreat = 0; - } - - context.Repeat(40s); - } + context.Repeat(40s); }).Schedule(25s, 35s, [this](TaskContext context) { DoCastAOE(SPELL_TERRIFYING_HOWL); @@ -845,15 +810,10 @@ struct boss_bigbadwolf : public ScriptedAI DoMeleeAttackIfReady(); - if (_isChasing) - return; - _scheduler.Update(diff); } private: TaskScheduler _scheduler; - bool _isChasing; - float _tempThreat; }; /**********************************************/