Scripts/Spells: fixed damage calculations for Icy Touch and Frost Fever

This commit is contained in:
Ovahlord
2024-12-20 21:22:34 +01:00
parent a2925358f0
commit 2ddc37e265
2 changed files with 35 additions and 0 deletions

View File

@@ -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');

View File

@@ -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);
}