aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-12-16 02:17:46 +0200
committerShauren <shauren.trinity@gmail.com>2022-03-24 13:18:56 +0100
commit9dabdf7724e0555a5935f0073d0b2db7035b23cf (patch)
treea62f7e77804fb587d8bb03c9aecfeeb50d341724 /src
parent1bfbc371d5e2c756da6dc9f658cafcac5779ff60 (diff)
Scripts/Spells: Furious Rage & scripts for creatures who uses it (#27403)
(cherry picked from commit 7ae525d5e5f068ab09166f6f4a2045a72726cb8e)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 459f8417194..173eb3c2e07 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1606,6 +1606,48 @@ class spell_gen_feign_death_no_prevent_emotes : public AuraScript
}
};
+enum FuriousRage
+{
+ EMOTE_FURIOUS_RAGE = 19415,
+ EMOTE_EXHAUSTED = 18368,
+ SPELL_EXHAUSTION = 35492
+};
+
+// 35491 - Furious Rage
+class spell_gen_furious_rage : public AuraScript
+{
+ PrepareAuraScript(spell_gen_furious_rage);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_EXHAUSTION }) &&
+ sBroadcastTextStore.HasRecord(EMOTE_FURIOUS_RAGE) &&
+ sBroadcastTextStore.HasRecord(EMOTE_EXHAUSTED);
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->Unit::TextEmote(EMOTE_FURIOUS_RAGE, target, false);
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
+ return;
+
+ Unit* target = GetTarget();
+ target->Unit::TextEmote(EMOTE_EXHAUSTED, target, false);
+ target->CastSpell(target, SPELL_EXHAUSTION, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_gen_furious_rage::AfterApply, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_gen_furious_rage::AfterRemove, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
// 46642 - 5,000 Gold
class spell_gen_5000_gold : public SpellScript
{
@@ -4753,6 +4795,7 @@ void AddSC_generic_spell_scripts()
RegisterSpellScript(spell_gen_feign_death_all_flags);
RegisterSpellScript(spell_gen_feign_death_no_dyn_flag);
RegisterSpellScript(spell_gen_feign_death_no_prevent_emotes);
+ RegisterSpellScript(spell_gen_furious_rage);
RegisterSpellScript(spell_gen_5000_gold);
RegisterSpellScript(spell_gen_fishing);
RegisterSpellScript(spell_gen_gadgetzan_transporter_backfire);