From e8f271ca25122e6835d788dc6a058f1b1261744a Mon Sep 17 00:00:00 2001 From: Eddy Vega <61223313+Si1ker@users.noreply.github.com> Date: Wed, 20 Jul 2022 11:09:09 -0600 Subject: [PATCH] fix(Scripts/RuinsOfAhnQiraj): Improve Kurinnaxx (#12136) --- .../rev_1655863615360060800.sql | 5 +++ .../RuinsOfAhnQiraj/boss_kurinnaxx.cpp | 34 +++++++------------ 2 files changed, 18 insertions(+), 21 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1655863615360060800.sql diff --git a/data/sql/updates/pending_db_world/rev_1655863615360060800.sql b/data/sql/updates/pending_db_world/rev_1655863615360060800.sql new file mode 100644 index 000000000..c7565f42e --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1655863615360060800.sql @@ -0,0 +1,5 @@ +-- +DELETE FROM `creature_addon` WHERE `guid`=144632; +INSERT INTO `creature_addon` (`guid`, `auras`) VALUES +(144632, '8876'); -- Triggers SPELL_THRASH = 3391 + diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp index 6d4ab62d5..510624a28 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp @@ -26,7 +26,6 @@ enum Spells SPELL_SANDTRAP = 25648, SPELL_ENRAGE = 26527, SPELL_SUMMON_PLAYER = 26446, - SPELL_TRASH = 3391, // Should perhaps be triggered by an aura? Couldn't find any though SPELL_WIDE_SLASH = 25814 }; @@ -34,13 +33,12 @@ enum Events { EVENT_MORTAL_WOUND = 1, EVENT_SANDTRAP = 2, - EVENT_TRASH = 3, - EVENT_WIDE_SLASH = 4 + EVENT_WIDE_SLASH = 3 }; enum Texts { - SAY_KURINAXX_DEATH = 5, // Yelled by Ossirian the Unscarred + SAY_KURINAXX_DEATH = 5 // Yell by 'Ossirian the Unscarred' }; class boss_kurinnaxx : public CreatureScript @@ -50,25 +48,22 @@ public: struct boss_kurinnaxxAI : public BossAI { - boss_kurinnaxxAI(Creature* creature) : BossAI(creature, DATA_KURINNAXX) - { - } + boss_kurinnaxxAI(Creature* creature) : BossAI(creature, DATA_KURINNAXX) {} void Reset() override { _Reset(); _enraged = false; - events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000); + events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(8000, 10000)); events.ScheduleEvent(EVENT_SANDTRAP, urand(5000, 15000)); - events.ScheduleEvent(EVENT_TRASH, 1000); - events.ScheduleEvent(EVENT_WIDE_SLASH, 11000); + events.ScheduleEvent(EVENT_WIDE_SLASH, urand(10000, 15000)); } void DamageTaken(Unit*, uint32& /*damage*/, DamageEffectType, SpellSchoolMask) override { if (!_enraged && HealthBelowPct(30)) { - DoCast(me, SPELL_ENRAGE); + DoCastSelf(SPELL_ENRAGE); _enraged = true; } } @@ -77,7 +72,9 @@ public: { _JustDied(); if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetGuidData(DATA_OSSIRIAN))) + { sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE); + } } void UpdateAI(uint32 diff) override @@ -96,28 +93,23 @@ public: { case EVENT_MORTAL_WOUND: DoCastVictim(SPELL_MORTALWOUND); - events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000); + events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(8000, 10000)); break; case EVENT_SANDTRAP: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true)) + { target->CastSpell(target, SPELL_SANDTRAP, true); - else if (Unit* victim = me->GetVictim()) - victim->CastSpell(victim, SPELL_SANDTRAP, true); + } events.ScheduleEvent(EVENT_SANDTRAP, urand(5000, 15000)); break; case EVENT_WIDE_SLASH: - DoCast(me, SPELL_WIDE_SLASH); - events.ScheduleEvent(EVENT_WIDE_SLASH, 11000); - break; - case EVENT_TRASH: - DoCast(me, SPELL_TRASH); - events.ScheduleEvent(EVENT_WIDE_SLASH, 16000); + DoCastSelf(SPELL_WIDE_SLASH); + events.ScheduleEvent(EVENT_WIDE_SLASH, urand(12000, 15000)); break; default: break; } } - DoMeleeAttackIfReady(); } private: