From 5719e4623661be8704f91a6dfdca18a8cfe4cb4d Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:23:16 +0430 Subject: [PATCH] feat(Core/Spells): Move spell_item_runic_healing_injector to spell scripts (#11088) --- .../rev_1647761424947662456.sql | 5 ++++ src/server/game/Spells/SpellEffects.cpp | 7 ------ src/server/scripts/Spells/spell_item.cpp | 23 +++++++++++++++++++ 3 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647761424947662456.sql diff --git a/data/sql/updates/pending_db_world/rev_1647761424947662456.sql b/data/sql/updates/pending_db_world/rev_1647761424947662456.sql new file mode 100644 index 000000000..e9804551f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647761424947662456.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647761424947662456'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_runic_healing_injector'; +INSERT INTO `spell_script_names` VALUES +(67489,'spell_item_runic_healing_injector'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index fd383e71b..1e09f3cc9 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1516,13 +1516,6 @@ void Spell::EffectHeal(SpellEffIndex /*effIndex*/) addhealth += damageAmount; } - // Runic Healing Injector (heal increased by 25% for engineers - 3.2.0 patch change) - else if (m_spellInfo->Id == 67489) - { - if (Player* player = m_caster->ToPlayer()) - if (player->HasSkill(SKILL_ENGINEERING)) - AddPct(addhealth, 25); - } // Swiftmend - consumes Regrowth or Rejuvenation else if (m_spellInfo->TargetAuraState == AURA_STATE_SWIFTMEND && unitTarget->HasAuraState(AURA_STATE_SWIFTMEND, m_spellInfo, m_caster)) { diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index cc052f3ba..4d047dbcd 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -3184,6 +3184,28 @@ class spell_item_rocket_boots : public SpellScript } }; +class spell_item_runic_healing_injector : public SpellScript +{ + PrepareSpellScript(spell_item_runic_healing_injector); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleHeal(SpellEffIndex /*effIndex*/) + { + if (Player* caster = GetCaster()->ToPlayer()) + if (caster->HasSkill(SKILL_ENGINEERING)) + SetHitHeal(GetHitHeal() * 1.25f); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_runic_healing_injector::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL); + } +}; + enum PygmyOil { SPELL_PYGMY_OIL_PYGMY_AURA = 53806, @@ -3612,6 +3634,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_nitro_boots); RegisterSpellScript(spell_item_teach_language); RegisterSpellScript(spell_item_rocket_boots); + RegisterSpellScript(spell_item_runic_healing_injector); RegisterSpellScript(spell_item_pygmy_oil); RegisterSpellScript(spell_item_unusual_compass); RegisterSpellScript(spell_item_chicken_cover);