aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Events
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-09-09 19:31:44 +0300
committerGitHub <noreply@github.com>2025-09-09 18:31:44 +0200
commit19382995de1a30ad249388a8b6280dede02d24d5 (patch)
treebd47c2f047a1c25433b5cda3cf9caf7db800975a /src/server/scripts/Events
parentf9a6d912891294e2b13f18356784f1d94a743586 (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.cpp57
-rw-r--r--src/server/scripts/Events/midsummer.cpp53
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);
}