From e66f2ada53d3b2baccbbbdf563600f4c92ae3eb9 Mon Sep 17 00:00:00 2001 From: Aqua Deus <95978183+aquadeus@users.noreply.github.com> Date: Thu, 13 Jul 2023 19:24:08 +0200 Subject: Scripts/Druid: Implemented Shooting Stars (#29125) --- src/server/scripts/Spells/spell_druid.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/server') diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index a663c76b40c..c78b8965405 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -85,6 +85,8 @@ enum DruidSpells SPELL_DRUID_REJUVENATION_T10_PROC = 70691, SPELL_DRUID_RESTORATION_T10_2P_BONUS = 70658, SPELL_DRUID_SAVAGE_ROAR = 62071, + SPELL_DRUID_SHOOTING_STARS = 202342, + SPELL_DRUID_SHOOTING_STARS_DAMAGE = 202497, SPELL_DRUID_SKULL_BASH_CHARGE = 221514, SPELL_DRUID_SKULL_BASH_INTERRUPT = 93985, SPELL_DRUID_SUNFIRE_DAMAGE = 164815, @@ -972,6 +974,31 @@ class spell_dru_savage_roar_aura : public AuraScript } }; +// 164815 - Sunfire +// 164812 - Moonfire +class spell_dru_shooting_stars : public AuraScript +{ + PrepareAuraScript(spell_dru_shooting_stars); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DRUID_SHOOTING_STARS, SPELL_DRUID_SHOOTING_STARS_DAMAGE }); + } + + void OnTick(AuraEffect const* /*aurEff*/) + { + if (Unit* caster = GetCaster()) + if (AuraEffect const* shootingStars = caster->GetAuraEffect(SPELL_DRUID_SHOOTING_STARS, EFFECT_0)) + if (roll_chance_i(shootingStars->GetAmount())) + caster->CastSpell(GetTarget(), SPELL_DRUID_SHOOTING_STARS_DAMAGE, true); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_dru_shooting_stars::OnTick, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE); + } +}; + // 106839 - Skull Bash class spell_dru_skull_bash : public SpellScript { @@ -1662,6 +1689,7 @@ void AddSC_druid_spell_scripts() RegisterSpellScript(spell_dru_prowl); RegisterSpellScript(spell_dru_rip); RegisterSpellAndAuraScriptPair(spell_dru_savage_roar, spell_dru_savage_roar_aura); + RegisterSpellScript(spell_dru_shooting_stars); RegisterSpellScript(spell_dru_skull_bash); RegisterSpellScript(spell_dru_stampeding_roar); RegisterSpellScript(spell_dru_starfall_dummy); -- cgit v1.2.3