From db2dafec95cc41d55e19fd478b54aee1e8d4a51e Mon Sep 17 00:00:00 2001 From: Gultask <100873791+Gultask@users.noreply.github.com> Date: Sun, 11 Jan 2026 23:26:41 -0300 Subject: [PATCH] fix(Scripts/Spells): Implement Blade Barrier Script (#24154) Co-authored-by: Ariel Silva --- .../rev_1766066106793369700.sql | 4 ++++ src/server/scripts/Spells/spell_dk.cpp | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1766066106793369700.sql diff --git a/data/sql/updates/pending_db_world/rev_1766066106793369700.sql b/data/sql/updates/pending_db_world/rev_1766066106793369700.sql new file mode 100644 index 000000000..53ea3df1a --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1766066106793369700.sql @@ -0,0 +1,4 @@ +-- bb +DELETE FROM `spell_script_names` WHERE `spell_id` = -49182; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(-49182, 'spell_dk_blade_barrier'); diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 36c849bc7..b27043aae 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -2314,6 +2314,26 @@ class spell_dk_army_of_the_dead_passive : public AuraScript } }; +// -49182 Blade Barrier +class spell_dk_blade_barrier : public AuraScript +{ + PrepareAuraScript(spell_dk_blade_barrier); + + bool CheckProc(ProcEventInfo& /*eventInfo*/) + { + if (Player* player = GetCaster()->ToPlayer()) + if (player->getClass() == CLASS_DEATH_KNIGHT && player->IsBaseRuneSlotsOnCooldown(RUNE_BLOOD)) + return true; + + return false; + } + + void Register() override + { + DoCheckProc += AuraCheckProcFn(spell_dk_blade_barrier::CheckProc); + } +}; + void AddSC_deathknight_spell_scripts() { RegisterSpellScript(spell_dk_wandering_plague); @@ -2362,4 +2382,5 @@ void AddSC_deathknight_spell_scripts() RegisterSpellScript(spell_dk_will_of_the_necropolis); RegisterSpellScript(spell_dk_ghoul_thrash); RegisterSpellScript(spell_dk_army_of_the_dead_passive); + RegisterSpellScript(spell_dk_blade_barrier); }