diff options
| -rw-r--r-- | sql/updates/world/cata_classic/2024_12_20_02_world.sql | 4 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 31 |
2 files changed, 35 insertions, 0 deletions
diff --git a/sql/updates/world/cata_classic/2024_12_20_02_world.sql b/sql/updates/world/cata_classic/2024_12_20_02_world.sql new file mode 100644 index 00000000000..c2dddf2a834 --- /dev/null +++ b/sql/updates/world/cata_classic/2024_12_20_02_world.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_dk_icy_touch', 'spell_dk_frost_fever'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(45477, 'spell_dk_icy_touch'), +(55095, 'spell_dk_frost_fever'); diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 44f09092508..dbe0511fbd9 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -236,10 +236,41 @@ private: bool _healTarget = false; }; +// 45477 - Icy Touch +class spell_dk_icy_touch : public SpellScript +{ + void CalculateDamage(Unit* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) + { + damage += GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK) * 0.2f; + } + + void Register() override + { + CalcDamage += SpellCalcDamageFn(spell_dk_icy_touch::CalculateDamage); + } +}; + +// 55095 - Frost Fever +class spell_dk_frost_fever : public AuraScript +{ + // According to tooltip: ($m1*1.15+$AP*0.055*1.15) + void CalculateDamage(AuraEffect const* /*aurEff*/, Unit* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) + { + damage = damage * 1.15f + GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK) * 0.055f * 1.15f; + } + + void Register() override + { + DoEffectCalcDamageAndHealing += AuraEffectCalcDamageFn(spell_dk_frost_fever::CalculateDamage, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE); + } +}; + void AddSC_deathknight_spell_scripts() { RegisterSpellScript(spell_dk_dark_simulacrum); RegisterSpellScript(spell_dk_dark_simulacrum_buff); RegisterSpellScript(spell_dk_death_coil); + RegisterSpellScript(spell_dk_frost_fever); + RegisterSpellScript(spell_dk_icy_touch); RegisterSpellScript(spell_dk_runic_empowerment); } |
