diff options
author | DanVS <33371360+DanVS@users.noreply.github.com> | 2018-06-05 04:01:27 +0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-09-28 15:26:42 +0200 |
commit | 71e27f540d0813722e596e2bdfd98d126f3f8214 (patch) | |
tree | 88a9a2eb83674e15c7b0d6900251c3a9cb10e0c4 | |
parent | 4aaf3d67a320d148f435ef40620b7b8d16b4efd2 (diff) |
Core/Spells: Reset Mangle cooldown in Berserk (#22000)
(cherry picked from commit 3bd9337d9fe95b78751bf3aa90ee27daf6935872)
-rw-r--r-- | src/server/scripts/Spells/spell_druid.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 1e6db3d8923..fd07b60840e 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -69,6 +69,7 @@ enum DruidSpells SPELL_DRUID_FORMS_TRINKET_TREE = 37342, SPELL_DRUID_GALACTIC_GUARDIAN_AURA = 213708, SPELL_DRUID_GORE_PROC = 93622, + SPELL_DRUID_GROWL = 6795, SPELL_DRUID_IDOL_OF_FERAL_SHADOWS = 34241, SPELL_DRUID_IDOL_OF_WORSHIP = 60774, SPELL_DRUID_INCARNATION_KING_OF_THE_JUNGLE = 102543, @@ -118,6 +119,7 @@ class spell_dru_base_transformer : public SpellScript { PrepareSpellScript(spell_dru_base_transformer); +protected: bool Validate(SpellInfo const* /*spellInfo*/) override { return ValidateSpellInfo({ GetShapeshiftFormSpell() }); @@ -135,7 +137,6 @@ class spell_dru_base_transformer : public SpellScript BeforeCast += SpellCastFn(spell_dru_base_transformer::HandleOnCast); } -protected: virtual bool ToCatForm() const = 0; ShapeshiftForm GetShapeshiftForm() const { return ToCatForm() ? FORM_CAT_FORM : FORM_BEAR_FORM; } @@ -165,9 +166,32 @@ class spell_dru_barkskin : public AuraScript } }; -// 77758 - Berserk +// 50334 - Berserk class spell_dru_berserk : public spell_dru_base_transformer { + PrepareSpellScript(spell_dru_berserk); + + bool Validate(SpellInfo const* spellInfo) override + { + if (!spell_dru_base_transformer::Validate(spellInfo)) + return false; + + return ValidateSpellInfo({ SPELL_DRUID_MANGLE, SPELL_DRUID_THRASH_BEAR, SPELL_DRUID_GROWL }); + } + + void ResetCooldowns() + { + GetCaster()->GetSpellHistory()->ResetCooldown(SPELL_DRUID_MANGLE); + GetCaster()->GetSpellHistory()->ResetCooldown(SPELL_DRUID_THRASH_BEAR); + GetCaster()->GetSpellHistory()->ResetCooldown(SPELL_DRUID_GROWL); + } + + void Register() override + { + spell_dru_base_transformer::Register(); + AfterCast += SpellCastFn(spell_dru_berserk::ResetCooldowns); + } + protected: bool ToCatForm() const override { return false; } }; |