diff options
-rw-r--r-- | sql/updates/world/cata_classic/2025_01_11_00_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/sql/updates/world/cata_classic/2025_01_11_00_world.sql b/sql/updates/world/cata_classic/2025_01_11_00_world.sql new file mode 100644 index 00000000000..55f6a7fabab --- /dev/null +++ b/sql/updates/world/cata_classic/2025_01_11_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_dk_howling_blast'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(49184, 'spell_dk_howling_blast'); diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 1c5848675d0..871ef2b2935 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -281,6 +281,23 @@ class spell_dk_blood_plague: public AuraScript DoEffectCalcDamageAndHealing += AuraEffectCalcDamageFn(spell_dk_blood_plague::CalculateDamage, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE); } }; + +// 49184 - Howling Blast +class spell_dk_howling_blast : public SpellScript +{ + // According to tooltip: (($m2+$M2)/2)+($AP*0.44) and (0.5*((($m2+$M2)/2)+($AP*0.44))) for non-primary targets + void CalculateDamage(SpellEffectInfo const& /*effectInfo*/, Unit* victim, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) + { + damage += GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK) * 0.4f; + if (victim != GetExplTargetUnit()) + damage *= 0.5f; + } + + void Register() override + { + CalcDamage += SpellCalcDamageFn(spell_dk_howling_blast::CalculateDamage); + } +}; } void AddSC_deathknight_spell_scripts() @@ -291,6 +308,7 @@ void AddSC_deathknight_spell_scripts() RegisterSpellScript(spell_dk_dark_simulacrum_buff); RegisterSpellScript(spell_dk_death_coil); RegisterSpellScript(spell_dk_frost_fever); + RegisterSpellScript(spell_dk_howling_blast); RegisterSpellScript(spell_dk_icy_touch); RegisterSpellScript(spell_dk_runic_empowerment); } |