From 4a8247824e5377b376e68b9bf760e0668d8bbe9a Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 30 Nov 2024 16:52:10 -0300 Subject: [PATCH] =?UTF-8?q?fix(Scripts/ZulAman):=20Hex=20Lord=20Malacrass?= =?UTF-8?q?=20shouldn't=20use=20previous=20class=E2=80=A6=20(#20784)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Scripts/ZulAman): Hex Lord Malacrass shouldn't use previous class abilities after siphon --- .../EasternKingdoms/ZulAman/boss_hexlord.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 390df838f..ec5ca7e77 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -134,7 +134,8 @@ enum Misc { MAX_ADD_COUNT = 4, ADDITIONAL_CLASS_SPRIEST = 11, - AURA_SHADOW_FORM = 15473 + AURA_SHADOW_FORM = 15473, + GROUP_CLASS_ABILITY = 1 }; enum AbilityTarget @@ -264,6 +265,7 @@ struct boss_hexlord_malacrass : public BossAI }); ScheduleTimedEvent(30s, [&]{ + scheduler.CancelGroup(GROUP_CLASS_ABILITY); DoCastSelf(SPELL_SPIRIT_BOLTS); scheduler.Schedule(10s, [this](TaskContext) { @@ -277,14 +279,12 @@ struct boss_hexlord_malacrass : public BossAI siphonTrigger->GetMotionMaster()->MoveFollow(me, 0.0f, 0.0f); if (Player* player = target->ToPlayer()) _currentClass = player->HasAura(AURA_SHADOW_FORM) ? uint8(ADDITIONAL_CLASS_SPRIEST) : player->getClass(); + + ScheduleClassAbility(); } } }); }, 40s); - ScheduleTimedEvent(_classAbilityTimer, [&]{ - if (_currentClass) - UseAbility(); - }, _classAbilityTimer); } void UseAbility() @@ -319,6 +319,15 @@ struct boss_hexlord_malacrass : public BossAI _classAbilityTimer = PlayerAbility[_currentClass][random].cooldown; } + void ScheduleClassAbility() + { + scheduler.Schedule(_classAbilityTimer, GROUP_CLASS_ABILITY, [this](TaskContext context) + { + UseAbility(); + context.Repeat(_classAbilityTimer); + }); + } + void KilledUnit(Unit* victim) override { BossAI::KilledUnit(victim);