diff options
author | offl <11556157+offl@users.noreply.github.com> | 2025-09-09 19:31:44 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-09 18:31:44 +0200 |
commit | 19382995de1a30ad249388a8b6280dede02d24d5 (patch) | |
tree | bd47c2f047a1c25433b5cda3cf9caf7db800975a /src/server/scripts/Events/midsummer.cpp | |
parent | f9a6d912891294e2b13f18356784f1d94a743586 (diff) |
Scripts/Spells: Migrate some spell linked spells to spell scripts (#31182)
Diffstat (limited to 'src/server/scripts/Events/midsummer.cpp')
-rw-r--r-- | src/server/scripts/Events/midsummer.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/server/scripts/Events/midsummer.cpp b/src/server/scripts/Events/midsummer.cpp index aff921d63ba..b36fd1a04b6 100644 --- a/src/server/scripts/Events/midsummer.cpp +++ b/src/server/scripts/Events/midsummer.cpp @@ -490,6 +490,57 @@ public: explicit spell_midsummer_cleansing_flames(CleansingFlames triggeredSpell) : _triggeredSpell(triggeredSpell) { } }; +enum StampOutBonfire +{ + SPELL_STAMP_OUT_BONFIRE_EVENT = 45443, + SPELL_STAMP_OUT_BONFIRE_ART_KIT = 46903, + SPELL_STAMP_OUT_BONFIRE_DUMMY = 45437 +}; + +// 45458 - Holiday - Midsummer, Stamp Out Bonfire, Quest Complete +class spell_midsummer_stamp_out_bonfire_quest_complete : public AuraScript +{ + PrepareAuraScript(spell_midsummer_stamp_out_bonfire_quest_complete); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_STAMP_OUT_BONFIRE_EVENT }); + } + + void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + GetTarget()->CastSpell(GetTarget(), SPELL_STAMP_OUT_BONFIRE_EVENT, true); + } + + void Register() override + { + AfterEffectApply += AuraEffectApplyFn(spell_midsummer_stamp_out_bonfire_quest_complete::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + +// 45443 - Stamp Out Bonfire, Event +class spell_midsummer_stamp_out_bonfire_event : public SpellScript +{ + PrepareSpellScript(spell_midsummer_stamp_out_bonfire_event); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_STAMP_OUT_BONFIRE_ART_KIT, SPELL_STAMP_OUT_BONFIRE_DUMMY }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_STAMP_OUT_BONFIRE_ART_KIT, true); + caster->CastSpell(caster, SPELL_STAMP_OUT_BONFIRE_DUMMY, true); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_midsummer_stamp_out_bonfire_event::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_event_midsummer() { RegisterSpellScript(spell_midsummer_braziers_hit); @@ -511,4 +562,6 @@ void AddSC_event_midsummer() RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_the_undercity", SPELL_CREATE_FLAME_OF_THE_UNDERCITY); RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_silvermoon", SPELL_CREATE_FLAME_OF_SILVERMOON); RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_the_exodar", SPELL_CREATE_FLAME_OF_THE_EXODAR); + RegisterSpellScript(spell_midsummer_stamp_out_bonfire_quest_complete); + RegisterSpellScript(spell_midsummer_stamp_out_bonfire_event); } |