diff options
| -rw-r--r-- | sql/updates/world/3.3.5/2025_07_05_00_world.sql | 36 | ||||
| -rw-r--r-- | src/server/scripts/Events/brewfest.cpp | 63 |
2 files changed, 96 insertions, 3 deletions
diff --git a/sql/updates/world/3.3.5/2025_07_05_00_world.sql b/sql/updates/world/3.3.5/2025_07_05_00_world.sql new file mode 100644 index 00000000000..e3e2b166433 --- /dev/null +++ b/sql/updates/world/3.3.5/2025_07_05_00_world.sql @@ -0,0 +1,36 @@ +-- +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 27958; + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 27958 AND `source_type` = 0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(27958,0,0,0,11,0,100,0,0,0,0,0,0,11,50186,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Parading Pink Elekk - On Spawn - Cast 'Parading Pink Elekk Life Aura'"), +(27958,0,1,0,60,0,100,1,0,5000,0,0,0,11,36440,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Parading Pink Elekk - On Update - Cast 'Drunk Invisibility (Pink)' (No Repeat)"), +(27958,0,2,0,11,0,100,0,0,0,0,0,0,29,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,"Parading Pink Elekk - On Spawn - Start Follow Owner"); + +DELETE FROM `spell_script_names` WHERE `spell_id` = 50186 AND `ScriptName` = 'spell_gen_despawn_aura'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(50186,'spell_gen_despawn_aura'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_brewfest_botm_pink_elekk'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(42264,'spell_brewfest_botm_pink_elekk'); + +-- This one is based only on comments +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 27867; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 27867 AND `source_type` = 0; +DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN 2786700 AND 2786701 AND `source_type` = 9; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(27867,0,0,0,11,0,100,0,0,0,0,0,0,87,2786700,2786701,0,0,0,0,1,0,0,0,0,0,0,0,0,"Woodland Squirrel - On Spawn - Run Random Script"), + +(2786700,9,0,0,0,0,100,0,0,0,0,0,0,11,49757,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Woodland Squirrel - On Script - Cast 'BOTM - Woodland Brew - Squirrel Love Aura'"), +(2786700,9,1,0,0,0,100,0,0,0,0,0,0,29,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,"Woodland Squirrel - On Script - Start Follow Owner"), +(2786700,9,2,0,0,0,100,0,10000,10000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Woodland Squirrel - On Script - Despawn"), + +(2786701,9,0,0,0,0,100,0,2000,2000,0,0,0,11,49764,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Woodland Squirrel - On Script - Cast 'BOTM - Woodland Brew - Squirrel Hate'"), +(2786701,9,1,0,0,0,100,0,0,0,0,0,0,114,0,0,0,0,0,0,1,0,0,0,0,30,30,0,0,"Woodland Squirrel - On Script - Move Offset"), +(2786701,9,2,0,0,0,100,0,5000,5000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Woodland Squirrel - On Script - Despawn"); + +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_brewfest_botm_nauseous'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(49869,'spell_brewfest_botm_nauseous'); 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); |
