diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Events/brewfest.cpp | 63 |
1 files changed, 60 insertions, 3 deletions
diff --git a/src/server/scripts/Events/brewfest.cpp b/src/server/scripts/Events/brewfest.cpp index 1894dcb1110..cf7f2515c49 100644 --- a/src/server/scripts/Events/brewfest.cpp +++ b/src/server/scripts/Events/brewfest.cpp @@ -432,13 +432,14 @@ class spell_brewfest_mount_transformation : public SpellScript July [Stranglethorn Brew] spell_brewfest_botm_jungle_madness August [Draenic Pale Ale] - NYI + spell_brewfest_botm_pink_elekk September [Binary Brew] spell_brewfest_botm_teach_language October [Autumnal Acorn Ale] - NYI + Nothing to script here November [Bartlett's Bitter Brew] - NYI + spell_brewfest_botm_nauseous + Incomplete December [Lord of Frost's Private Label] Nothing to script here */ @@ -573,6 +574,34 @@ class spell_brewfest_botm_jungle_madness : public SpellScript } }; +enum DraenicPaleAle +{ + SPELL_BOTM_PINK_ELEKK = 49908 +}; + +// 42264 - Weak Alcohol +class spell_brewfest_botm_pink_elekk : public SpellScript +{ + PrepareSpellScript(spell_brewfest_botm_pink_elekk); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_BOTM_PINK_ELEKK }); + } + + void HandleAfterCast() + { + // TODO: Needs additional research, this spell is most likely used if drunk state is high enough. + if (roll_chance_i(50)) + GetCaster()->CastSpell(GetCaster(), SPELL_BOTM_PINK_ELEKK); + } + + void Register() override + { + AfterCast += SpellCastFn(spell_brewfest_botm_pink_elekk::HandleAfterCast); + } +}; + enum BinaryBrew { SPELL_LEARN_GNOMISH_BINARY = 50242, @@ -601,6 +630,32 @@ class spell_brewfest_botm_teach_language : public SpellScript } }; +enum BartlettsBitterBrew +{ + SPELL_BOTM_VOMIT_BREW_VOMIT_VISUAL = 49867 +}; + +// 49869 - Nauseous +class spell_brewfest_botm_nauseous : public AuraScript +{ + PrepareAuraScript(spell_brewfest_botm_nauseous); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_BOTM_VOMIT_BREW_VOMIT_VISUAL }); + } + + void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + GetTarget()->CastSpell(GetTarget(), SPELL_BOTM_VOMIT_BREW_VOMIT_VISUAL, true); + } + + void Register() override + { + AfterEffectRemove += AuraEffectRemoveFn(spell_brewfest_botm_nauseous::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + enum CreateEmptyBrewBottle { SPELL_BOTM_CREATE_EMPTY_BREW_BOTTLE = 51655 @@ -706,7 +761,9 @@ void AddSC_event_brewfest() RegisterSpellScript(spell_brewfest_botm_bloated); RegisterSpellScript(spell_brewfest_botm_internal_combustion); RegisterSpellScript(spell_brewfest_botm_jungle_madness); + RegisterSpellScript(spell_brewfest_botm_pink_elekk); RegisterSpellScript(spell_brewfest_botm_teach_language); + RegisterSpellScript(spell_brewfest_botm_nauseous); RegisterSpellScript(spell_brewfest_botm_weak_alcohol); RegisterSpellScript(spell_brewfest_botm_empty_bottle_throw_resolve); RegisterSpellScript(spell_brewfest_mole_machine_portal_schedule); |
