diff options
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); } |
