aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSorikoff <46191832+Sorikoff@users.noreply.github.com>2019-08-08 12:12:49 +0000
committerShauren <shauren.trinity@gmail.com>2021-12-18 19:15:11 +0100
commit66f5275d2683a292afae3acdded4d252e29a2703 (patch)
treeb66b91b39fca3981d0562faa20f759eb1774dc4c
parent26f0c1182a9e04b67befad6dc2b352565d6f09a6 (diff)
Scripts/Spells: Runic Healing Injector (#23690)
* Scripts/Spells: Runic Healing Injector * Rename 9999_99_99_99_world.sql to 2019_08_08_00_world.sql (cherry picked from commit 382f563571d39f9ec02a0df899dbdaaf1745af83)
-rw-r--r--sql/updates/world/master/2021_12_18_23_world_2019_08_08_00_world.sql3
-rw-r--r--src/server/game/Spells/SpellEffects.cpp7
-rw-r--r--src/server/scripts/Spells/spell_item.cpp24
3 files changed, 27 insertions, 7 deletions
diff --git a/sql/updates/world/master/2021_12_18_23_world_2019_08_08_00_world.sql b/sql/updates/world/master/2021_12_18_23_world_2019_08_08_00_world.sql
new file mode 100644
index 00000000000..aaaca865404
--- /dev/null
+++ b/sql/updates/world/master/2021_12_18_23_world_2019_08_08_00_world.sql
@@ -0,0 +1,3 @@
+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 19570c7ceee..a6d9914e88e 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1115,13 +1115,6 @@ void Spell::EffectHeal()
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 = unitCaster->ToPlayer())
- if (player->HasSkill(SKILL_ENGINEERING))
- AddPct(addhealth, 25);
- }
// Death Pact - return pct of max health to caster
else if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && m_spellInfo->SpellFamilyFlags[0] & 0x00080000)
addhealth = unitCaster->SpellHealingBonusDone(unitTarget, m_spellInfo, int32(unitCaster->CountPctFromMaxHealth(damage)), HEAL, *effectInfo);
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 10afd8b97c1..82f42a2d496 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -3230,6 +3230,29 @@ class spell_item_rocket_boots : public SpellScript
}
};
+// 67489 - Runic Healing Injector
+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,
@@ -4514,6 +4537,7 @@ void AddSC_item_spell_scripts()
RegisterAuraScript(spell_item_nitro_boosts_backfire);
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);