aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-03-28 00:42:52 +0300
committerShauren <shauren.trinity@gmail.com>2022-06-10 14:27:23 +0200
commitf9f65a89579b819d69eb810818db7c24d0079d4f (patch)
tree797a8f8db2ce761d9d0302a84411be1e8cbc6991 /src
parent3848198e9edd13a8809dd3a0abf680110c57d30b (diff)
Scripts/Spells: BOTM Empty Bottle (#27889)
(cherry picked from commit cedd95f9850d2c6d25d7dfda59d3e16e97a26b40)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Events/brewfest.cpp64
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);
}