aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2024-03-30 20:21:28 +0100
committerOvahlord <dreadkiller@gmx.de>2024-05-28 16:31:42 +0200
commit382eb5063fc63871a41bbe7b8c81db30ad3d741e (patch)
tree8ecc2690705b34dd77e3483114610c2cc65aa386 /src/server/scripts/Spells
parent5e1f21a0dd75c6cc56ca171360855ed65a623c44 (diff)
Core/Creatures: Changed the spawn health field in creature table to a percentage (#29801)
(cherry picked from commit def601b4ff82ec8a90af60408a87cac92fdf070d)
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 72648887d77..ff99d64e1e4 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -5359,6 +5359,32 @@ class spell_gen_random_aggro_taunt : public SpellScript
}
};
+// 24931 - 100 Health
+// 24959 - 500 Health
+// 28838 - 1 Health
+// 43645 - 1 Health
+// 73342 - 1 Health
+// 86562 - 1 Health
+class spell_gen_set_health : public SpellScript
+{
+public:
+ spell_gen_set_health(uint64 health) : _health(health) { }
+
+ void HandleHit(SpellEffIndex /*effIndex*/)
+ {
+ if (GetHitUnit()->IsAlive() && _health > 0)
+ GetHitUnit()->SetHealth(_health);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_set_health::HandleHit, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+
+private:
+ uint64 _health;
+};
+
void AddSC_generic_spell_scripts()
{
RegisterSpellScript(spell_gen_absorb0_hitlimit1);
@@ -5535,4 +5561,7 @@ void AddSC_generic_spell_scripts()
RegisterSpellScript(spell_gen_major_healing_cooldown_modifier);
RegisterSpellScript(spell_gen_major_healing_cooldown_modifier_aura);
RegisterSpellScript(spell_gen_random_aggro_taunt);
+ RegisterSpellScriptWithArgs(spell_gen_set_health, "spell_gen_set_health_1", 1);
+ RegisterSpellScriptWithArgs(spell_gen_set_health, "spell_gen_set_health_100", 100);
+ RegisterSpellScriptWithArgs(spell_gen_set_health, "spell_gen_set_health_500", 500);
}