diff options
author | offl <11556157+offl@users.noreply.github.com> | 2022-03-28 00:42:52 +0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-06-10 14:27:23 +0200 |
commit | f9f65a89579b819d69eb810818db7c24d0079d4f (patch) | |
tree | 797a8f8db2ce761d9d0302a84411be1e8cbc6991 /src/server/scripts/Events/brewfest.cpp | |
parent | 3848198e9edd13a8809dd3a0abf680110c57d30b (diff) |
Scripts/Spells: BOTM Empty Bottle (#27889)
(cherry picked from commit cedd95f9850d2c6d25d7dfda59d3e16e97a26b40)
Diffstat (limited to 'src/server/scripts/Events/brewfest.cpp')
-rw-r--r-- | src/server/scripts/Events/brewfest.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/server/scripts/Events/brewfest.cpp b/src/server/scripts/Events/brewfest.cpp index 084a42bc740..75335504ace 100644 --- a/src/server/scripts/Events/brewfest.cpp +++ b/src/server/scripts/Events/brewfest.cpp @@ -414,6 +414,68 @@ class spell_brewfest_mount_transformation : public SpellScript } }; +enum CreateEmptyBrewBottle +{ + SPELL_BOTM_CREATE_EMPTY_BREW_BOTTLE = 51655 +}; + +// 42254, 42255, 42256, 42257, 42258, 42259, 42260, 42261, 42263, 42264, 43959, 43961 - Weak Alcohol +class spell_brewfest_botm_weak_alcohol : public SpellScript +{ + PrepareSpellScript(spell_brewfest_botm_weak_alcohol); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_BOTM_CREATE_EMPTY_BREW_BOTTLE }); + } + + void HandleAfterCast() + { + GetCaster()->CastSpell(GetCaster(), SPELL_BOTM_CREATE_EMPTY_BREW_BOTTLE, true); + } + + void Register() override + { + AfterCast += SpellCastFn(spell_brewfest_botm_weak_alcohol::HandleAfterCast); + } +}; + +enum EmptyBottleThrow +{ + SPELL_BOTM_EMPTY_BOTTLE_THROW_IMPACT_CREATURE = 51695, // Just unit, not creature + SPELL_BOTM_EMPTY_BOTTLE_THROW_IMPACT_GROUND = 51697 +}; + +// 51694 - BOTM - Empty Bottle Throw - Resolve +class spell_brewfest_botm_empty_bottle_throw_resolve : public SpellScript +{ + PrepareSpellScript(spell_brewfest_botm_empty_bottle_throw_resolve); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_BOTM_EMPTY_BOTTLE_THROW_IMPACT_CREATURE, + SPELL_BOTM_EMPTY_BOTTLE_THROW_IMPACT_GROUND + }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + + if (Unit* target = GetHitUnit()) + caster->CastSpell(target, SPELL_BOTM_EMPTY_BOTTLE_THROW_IMPACT_CREATURE, true); + else + caster->CastSpell(GetHitDest()->GetPosition(), SPELL_BOTM_EMPTY_BOTTLE_THROW_IMPACT_GROUND, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_brewfest_botm_empty_bottle_throw_resolve::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + void AddSC_event_brewfest() { RegisterSpellScript(spell_brewfest_giddyup); @@ -426,4 +488,6 @@ void AddSC_event_brewfest() RegisterSpellScript(spell_brewfest_dismount_ram); RegisterSpellScript(spell_brewfest_barker_bunny); RegisterSpellScript(spell_brewfest_mount_transformation); + RegisterSpellScript(spell_brewfest_botm_weak_alcohol); + RegisterSpellScript(spell_brewfest_botm_empty_bottle_throw_resolve); } |