From 4d04344b414adc965bd2760d3f30338bcce70431 Mon Sep 17 00:00:00 2001 From: Wyrserth <43747507+Wyrserth@users.noreply.github.com> Date: Fri, 17 May 2019 12:08:20 +0200 Subject: Core/Spell: add proper cooldowns to some spells used by vehicles (#23260) * Core/Spell: add proper cooldowns to some spells used by vehicles, thanks to jackpoz and sirikfoll. * Add Wing Buffet and Stampy's Stompy-Stomp. * Add Tag Greater Felfire Diemetradon and Touch of Darkness. * Rename 9999_99_99_99_world.sql to 2019_05_17_00_world.sql --- src/server/scripts/Spells/spell_generic.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 92218791e1f..3a828eaa50b 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -4245,6 +4245,28 @@ class spell_freezing_circle : public SpellScript } }; +// Used for some spells cast by vehicles or charmed creatures that do not send a cooldown event on their own +class spell_gen_charmed_unit_spell_cooldown : public SpellScript +{ + PrepareSpellScript(spell_gen_charmed_unit_spell_cooldown); + + void HandleCast() + { + Unit* caster = GetCaster(); + if (Player* owner = caster->GetCharmerOrOwnerPlayerOrPlayerItself()) + { + WorldPacket data; + caster->GetSpellHistory()->BuildCooldownPacket(data, SPELL_COOLDOWN_FLAG_NONE, GetSpellInfo()->Id, GetSpellInfo()->RecoveryTime); + owner->SendDirectMessage(&data); + } + } + + void Register() override + { + OnCast += SpellCastFn(spell_gen_charmed_unit_spell_cooldown::HandleCast); + } +}; + void AddSC_generic_spell_scripts() { RegisterAuraScript(spell_gen_absorb0_hitlimit1); @@ -4370,4 +4392,5 @@ void AddSC_generic_spell_scripts() RegisterAuraScript(spell_corrupting_plague_aura); RegisterAuraScript(spell_gen_vehicle_control_link); RegisterSpellScript(spell_freezing_circle); + RegisterSpellScript(spell_gen_charmed_unit_spell_cooldown); } -- cgit v1.2.3