aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2024_11_17_01_world.sql5
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp35
2 files changed, 40 insertions, 0 deletions
diff --git a/sql/updates/world/master/2024_11_17_01_world.sql b/sql/updates/world/master/2024_11_17_01_world.sql
new file mode 100644
index 00000000000..79602f19c9b
--- /dev/null
+++ b/sql/updates/world/master/2024_11_17_01_world.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dk_subduing_grasp';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(49576, 'spell_dk_subduing_grasp'),
+(108199, 'spell_dk_subduing_grasp'),
+(383312, 'spell_dk_subduing_grasp');
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index 608d037a406..e27d46c1b82 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -68,6 +68,7 @@ enum DeathKnightSpells
SPELL_DK_GLYPH_OF_FOUL_MENAGERIE = 58642,
SPELL_DK_GLYPH_OF_THE_GEIST = 58640,
SPELL_DK_GLYPH_OF_THE_SKELETON = 146652,
+ SPELL_DK_GOREFIENDS_GRASP = 108199,
SPELL_DK_HEARTBREAKER_TALENT = 221536,
SPELL_DK_HEARTBREAKER_ENERGIZE = 210738,
SPELL_DK_KILLING_MACHINE_PROC = 51124,
@@ -83,6 +84,8 @@ enum DeathKnightSpells
SPELL_DK_SLUDGE_BELCHER = 207313,
SPELL_DK_SLUDGE_BELCHER_SUMMON = 212027,
SPELL_DK_SMOTHERING_OFFENSE = 435005,
+ SPELL_DK_SUBDUING_GRASP_TALENT = 454822,
+ SPELL_DK_SUBDUING_GRASP_DEBUFF = 454824,
SPELL_DK_DEATH_STRIKE_ENABLER = 89832, // Server Side
SPELL_DK_TIGHTENING_GRASP = 206970,
//SPELL_DK_TIGHTENING_GRASP_SLOW = 143375, // dropped in BfA
@@ -1047,6 +1050,37 @@ class spell_dk_rime : public AuraScript
}
};
+// Called by 383312 Abomination Limb and 49576 - Death Grip
+// 454822 - Subduing Grasp
+class spell_dk_subduing_grasp : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DK_SUBDUING_GRASP_TALENT, SPELL_DK_SUBDUING_GRASP_DEBUFF });
+ }
+
+ bool Load() override
+ {
+ return GetCaster()->HasAura(SPELL_DK_SUBDUING_GRASP_TALENT);
+ }
+
+ void HandleSubduingGrasp(SpellEffIndex /*effIndex*/) const
+ {
+ GetCaster()->CastSpell(GetHitUnit(), SPELL_DK_SUBDUING_GRASP_DEBUFF, CastSpellExtraArgsInit{
+ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
+ .TriggeringSpell = GetSpell()
+ });
+ }
+
+ void Register() override
+ {
+ if (m_scriptSpellId == SPELL_DK_GOREFIENDS_GRASP)
+ OnEffectHitTarget += SpellEffectFn(spell_dk_subduing_grasp::HandleSubduingGrasp, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ else
+ OnEffectHitTarget += SpellEffectFn(spell_dk_subduing_grasp::HandleSubduingGrasp, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
// 242057 - Rune Empowered
class spell_dk_t20_2p_rune_empowered : public AuraScript
{
@@ -1164,6 +1198,7 @@ void AddSC_deathknight_spell_scripts()
RegisterSpellScript(spell_dk_pvp_4p_bonus);
RegisterSpellScript(spell_dk_raise_dead);
RegisterSpellScript(spell_dk_rime);
+ RegisterSpellScript(spell_dk_subduing_grasp);
RegisterSpellScript(spell_dk_t20_2p_rune_empowered);
RegisterSpellScript(spell_dk_vampiric_blood);