From f1269a6fffd3c3da5299e0e86ae3a2403ee82886 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 15 May 2025 12:10:11 +0200 Subject: [PATCH] fix(Scripts/SunwellPlateau): Spell Fury spellsteal resets stacks and is no longer consumes on dot ticks (#22125) --- .../rev_1747255986267456043.sql | 10 ++++++++++ .../SunwellPlateau/instance_sunwell_plateau.cpp | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1747255986267456043.sql diff --git a/data/sql/updates/pending_db_world/rev_1747255986267456043.sql b/data/sql/updates/pending_db_world/rev_1747255986267456043.sql new file mode 100644 index 000000000..035eb5962 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1747255986267456043.sql @@ -0,0 +1,10 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 46102; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(46102, 'spell_spell_fury_aura'); + +-- Remove 'Deal periodic damage' +SET @procFlags = (0x4000 | 0x10000); +DELETE FROM `spell_proc_event` WHERE `entry` = 46102; +INSERT INTO `spell_proc_event` (`entry`, `procFlags`) VALUES +(46102, @procFlags); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 9b6d4d19c..f43f8e79a 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -336,6 +336,22 @@ private: TaskScheduler scheduler; }; +class spell_spell_fury_aura : public AuraScript +{ + PrepareAuraScript(spell_spell_fury_aura); + + void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (GetUnitOwner()->ToPlayer()) + ModStackAmount(5); + } + + void Register() override + { + OnEffectApply += AuraEffectApplyFn(spell_spell_fury_aura::OnApply, EFFECT_0, SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_instance_sunwell_plateau() { new instance_sunwell_plateau(); @@ -345,4 +361,5 @@ void AddSC_instance_sunwell_plateau() RegisterSpellScriptWithArgs(spell_sunwell_teleport, "spell_teleport_to_apex_point", SPELL_TELEPORT_TO_APEX_POINT); RegisterSpellScriptWithArgs(spell_sunwell_teleport, "spell_teleport_to_witchs_sanctum", SPELL_TELEPORT_TO_WITCHS_SANCTUM); RegisterSpellScriptWithArgs(spell_sunwell_teleport, "spell_teleport_to_sunwell_plateau", SPELL_TELEPORT_TO_SUNWELL_PLATEAU); + RegisterSpellScript(spell_spell_fury_aura); }