aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-07-18 00:55:46 +0300
committerGitHub <noreply@github.com>2022-07-18 00:55:46 +0300
commitd06842d42a0c140e76571fa30131a950be6d5faa (patch)
tree583288924b17d8456536b65531c1691bebdc55ba /src/server/scripts/Spells
parent13d86762e65f13c50870430f0e015a9ef387eb1d (diff)
Scripts/Spells: Script 'Hate To' spells (#28129)
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index ae6536447f8..e5d16284aed 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1992,6 +1992,83 @@ class spell_gen_gryphon_wyvern_mount_check : public AuraScript
}
};
+/* 9204 - Hate to Zero (Melee)
+ 20538 - Hate to Zero (AoE)
+ 26569 - Hate to Zero (AoE)
+ 26637 - Hate to Zero (AoE, Unique)
+ 37326 - Hate to Zero (AoE)
+ 40410 - Hate to Zero (Should be added, AoE)
+ 40467 - Hate to Zero (Should be added, AoE)
+ 41582 - Hate to Zero (Should be added, Melee) */
+class spell_gen_hate_to_zero : public SpellScript
+{
+ PrepareSpellScript(spell_gen_hate_to_zero);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (GetCaster()->CanHaveThreatList())
+ GetCaster()->GetThreatManager().ModifyThreatByPercent(GetHitUnit(), -100);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_hate_to_zero::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
+// This spell is used by both player and creature, but currently works only if used by player
+// 63984 - Hate to Zero
+class spell_gen_hate_to_zero_caster_target : public SpellScript
+{
+ PrepareSpellScript(spell_gen_hate_to_zero_caster_target);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* target = GetHitUnit())
+ if (target->CanHaveThreatList())
+ target->GetThreatManager().ModifyThreatByPercent(GetCaster(), -100);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_hate_to_zero_caster_target::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
+// 19707 - Hate to 50%
+class spell_gen_hate_to_50 : public SpellScript
+{
+ PrepareSpellScript(spell_gen_hate_to_50);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (GetCaster()->CanHaveThreatList())
+ GetCaster()->GetThreatManager().ModifyThreatByPercent(GetHitUnit(), -50);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_hate_to_50::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
+// 26886 - Hate to 75%
+class spell_gen_hate_to_75 : public SpellScript
+{
+ PrepareSpellScript(spell_gen_hate_to_75);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (GetCaster()->CanHaveThreatList())
+ GetCaster()->GetThreatManager().ModifyThreatByPercent(GetHitUnit(), -25);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_hate_to_75::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
class spell_gen_injured : public SpellScript
{
PrepareSpellScript(spell_gen_injured);
@@ -4545,6 +4622,10 @@ void AddSC_generic_spell_scripts()
RegisterSpellScript(spell_gen_gift_of_naaru);
RegisterSpellScript(spell_gen_gnomish_transporter);
RegisterSpellScript(spell_gen_gryphon_wyvern_mount_check);
+ RegisterSpellScript(spell_gen_hate_to_zero);
+ RegisterSpellScript(spell_gen_hate_to_zero_caster_target);
+ RegisterSpellScript(spell_gen_hate_to_50);
+ RegisterSpellScript(spell_gen_hate_to_75);
RegisterSpellScript(spell_gen_injured);
RegisterSpellScript(spell_gen_lifeblood);
RegisterSpellScriptWithArgs(spell_gen_lifebloom, "spell_hexlord_lifebloom", SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL);