aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2024_10_24_01_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp29
2 files changed, 32 insertions, 0 deletions
diff --git a/sql/updates/world/master/2024_10_24_01_world.sql b/sql/updates/world/master/2024_10_24_01_world.sql
new file mode 100644
index 00000000000..d777dcaa09b
--- /dev/null
+++ b/sql/updates/world/master/2024_10_24_01_world.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=206930 AND `ScriptName`='spell_dk_heartbreaker';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(206930, 'spell_dk_heartbreaker');
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index 9c0cbd56ba7..d06dd6322ef 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -68,6 +68,8 @@ 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_HEARTBREAKER_TALENT = 221536,
+ SPELL_DK_HEARTBREAKER_ENERGIZE = 210738,
SPELL_DK_KILLING_MACHINE_PROC = 51124,
SPELL_DK_MARK_OF_BLOOD_HEAL = 206945,
SPELL_DK_NECROSIS_EFFECT = 216974,
@@ -732,6 +734,32 @@ class spell_dk_glyph_of_scourge_strike_script : public SpellScript
}
};
+// Called by 206930 - Heart Strike
+class spell_dk_heartbreaker : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spell*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DK_HEARTBREAKER_TALENT, SPELL_DK_HEARTBREAKER_ENERGIZE });
+ }
+
+ bool Load() override
+ {
+ return GetCaster()->HasAura(SPELL_DK_HEARTBREAKER_TALENT);
+ }
+
+ void HandleEnergize(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetCaster(), SPELL_DK_HEARTBREAKER_ENERGIZE, CastSpellExtraArgs()
+ .SetTriggeringSpell(GetSpell())
+ .SetTriggerFlags(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR));
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_dk_heartbreaker::HandleEnergize, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
// 49184 - Howling Blast
class spell_dk_howling_blast : public SpellScript
{
@@ -1108,6 +1136,7 @@ void AddSC_deathknight_spell_scripts()
RegisterSpellScript(spell_dk_festering_strike);
RegisterSpellScript(spell_dk_ghoul_explode);
RegisterSpellScript(spell_dk_glyph_of_scourge_strike_script);
+ RegisterSpellScript(spell_dk_heartbreaker);
RegisterSpellScript(spell_dk_howling_blast);
RegisterSpellScript(spell_dk_icy_talons);
RegisterSpellScript(spell_dk_icy_talons_buff);