diff options
-rw-r--r-- | sql/updates/world/3.3.5/2019_12_29_00_world.sql | 4 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 29 |
2 files changed, 33 insertions, 0 deletions
diff --git a/sql/updates/world/3.3.5/2019_12_29_00_world.sql b/sql/updates/world/3.3.5/2019_12_29_00_world.sql new file mode 100644 index 00000000000..9a71b45987a --- /dev/null +++ b/sql/updates/world/3.3.5/2019_12_29_00_world.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName`="spell_item_eggnog"; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(21149,'spell_item_eggnog'); diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index ddfa1d0ea6a..de331cdeab2 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -4257,6 +4257,34 @@ class spell_item_crazy_alchemists_potion : public SpellScript } }; +enum Eggnog +{ + SPELL_EGG_NOG_REINDEER = 21936, + SPELL_EGG_NOG_SNOWMAN = 21980, +}; + +// 21149 - Egg Nog +class spell_item_eggnog : public SpellScript +{ + PrepareSpellScript(spell_item_eggnog); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_EGG_NOG_REINDEER, SPELL_EGG_NOG_SNOWMAN}); + } + + void HandleScript(SpellEffIndex /* effIndex */) + { + if (roll_chance_i(40)) + GetCaster()->CastSpell(GetHitUnit(), roll_chance_i(50) ? SPELL_EGG_NOG_REINDEER : SPELL_EGG_NOG_SNOWMAN, GetCastItem()); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_eggnog::HandleScript, EFFECT_2, SPELL_EFFECT_INEBRIATE); + } +}; + void AddSC_item_spell_scripts() { // 23074 Arcanite Dragonling @@ -4387,4 +4415,5 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_mad_alchemists_potion); RegisterSpellScript(spell_item_crazy_alchemists_potion); + RegisterSpellScript(spell_item_eggnog); } |