From b7dcf93be4dbbafa27a867c90400f5e9582ad539 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Mon, 3 Jan 2022 17:05:45 -0300 Subject: [PATCH] Fix(Core/Item): Wraith Scythe scales with spell power (#9901) --- .../rev_1640656702788330300.sql | 4 ++++ src/server/scripts/Spells/spell_item.cpp | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1640656702788330300.sql diff --git a/data/sql/updates/pending_db_world/rev_1640656702788330300.sql b/data/sql/updates/pending_db_world/rev_1640656702788330300.sql new file mode 100644 index 000000000..df18b04af --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1640656702788330300.sql @@ -0,0 +1,4 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1640656702788330300'); + +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(16414, 'spell_item_wraith_scythe_drain_life'); diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index e70d4df82..8b0ed7ec0 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -3489,6 +3489,28 @@ class spell_item_recall : public SpellScript } }; +// 16414 - Drain Life +class spell_item_wraith_scythe_drain_life : public SpellScript +{ + PrepareSpellScript(spell_item_wraith_scythe_drain_life); + + void CalculateDamage() + { + Unit* target = GetHitUnit(); + Unit* caster = GetCaster(); + if (target && caster) + { + uint32 sp = caster->SpellBaseDamageBonusDone(SPELL_SCHOOL_MASK_ALL); + SetHitDamage(GetHitDamage() + sp); + } + } + + void Register() override + { + OnHit += SpellHitFn(spell_item_wraith_scythe_drain_life::CalculateDamage); + } +}; + void AddSC_item_spell_scripts() { RegisterSpellScript(spell_item_massive_seaforium_charge); @@ -3596,4 +3618,5 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_goblin_bomb); RegisterSpellScript(spell_item_linken_boomerang); RegisterSpellScript(spell_item_recall); + RegisterSpellScript(spell_item_wraith_scythe_drain_life); }