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 | |
| parent | f9a6d912891294e2b13f18356784f1d94a743586 (diff) | |
Scripts/Spells: Migrate some spell linked spells to spell scripts (#31182)
Diffstat (limited to 'src/server/scripts/Events')
| -rw-r--r-- | src/server/scripts/Events/hallows_end.cpp | 57 | ||||
| -rw-r--r-- | src/server/scripts/Events/midsummer.cpp | 53 |
2 files changed, 110 insertions, 0 deletions
diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp index 3744aaca6ed..4143047c002 100644 --- a/src/server/scripts/Events/hallows_end.cpp +++ b/src/server/scripts/Events/hallows_end.cpp @@ -95,6 +95,32 @@ class spell_hallow_end_candy_pirate : public AuraScript } }; +enum TrickInitial +{ + SPELL_TRICK_INITIAL = 24750 +}; + +// 24714 - Trick +class spell_hallow_end_trick_initial : public SpellScript +{ + PrepareSpellScript(spell_hallow_end_trick_initial); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_TRICK_INITIAL }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TRICK_INITIAL); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_hallow_end_trick_initial::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + enum TrickSpells { SPELL_PIRATE_COSTUME_MALE = 24708, @@ -302,12 +328,43 @@ class spell_hallow_end_wand : public SpellScript } }; +enum CreateWaterBucket +{ + SPELL_CREATE_WATER_BUCKET_BARREL_SPLASH = 43244, + SPELL_JUST_LOOTED_WATER_BARREL = 44410 +}; + +// 42144 - Headless Horseman - Create Water Bucket +class spell_hallow_end_create_water_bucket : public SpellScript +{ + PrepareSpellScript(spell_hallow_end_create_water_bucket); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_CREATE_WATER_BUCKET_BARREL_SPLASH, SPELL_JUST_LOOTED_WATER_BARREL }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + Unit* target = GetHitUnit(); + target->CastSpell(target, SPELL_CREATE_WATER_BUCKET_BARREL_SPLASH); + target->CastSpell(target, SPELL_JUST_LOOTED_WATER_BARREL); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_hallow_end_create_water_bucket::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_event_hallows_end() { RegisterSpellScript(spell_hallow_end_candy); RegisterSpellScript(spell_hallow_end_candy_pirate); + RegisterSpellScript(spell_hallow_end_trick_initial); RegisterSpellScript(spell_hallow_end_trick); RegisterSpellScript(spell_hallow_end_trick_or_treat); RegisterSpellScript(spell_hallow_end_tricky_treat); RegisterSpellScript(spell_hallow_end_wand); + RegisterSpellScript(spell_hallow_end_create_water_bucket); } 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); } |
