diff --git a/data/sql/updates/pending_db_world/rev_1757602260817335979.sql b/data/sql/updates/pending_db_world/rev_1757602260817335979.sql new file mode 100644 index 000000000..9a5d76674 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1757602260817335979.sql @@ -0,0 +1,5 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` IN (29007, 29008) AND `ScriptName`='spell_gen_food_heart_emote'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(29007, 'spell_gen_food_heart_emote'), +(29008, 'spell_gen_food_heart_emote'); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index f6c7e45ac..5b1d646ac 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -5492,6 +5492,42 @@ class spell_gen_cooldown_all : public SpellScript } }; +// 29007 - Drink (Freshly-Squeezed Lemonade) +// 29008 - Food (Friendship Bread) +enum HeartFood +{ + SPELL_VISUAL_KIT_HEART_EMOTE = 6552 +}; + +class spell_gen_food_heart_emote : public AuraScript +{ + PrepareAuraScript(spell_gen_food_heart_emote); + + void CalcPeriodic(AuraEffect const* /*effect*/, bool& isPeriodic, int32& amplitude) + { + isPeriodic = true; + amplitude = 5 * IN_MILLISECONDS; + } + + void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + GetUnitOwner()->SendPlaySpellVisual(SPELL_VISUAL_KIT_HEART_EMOTE); + } + + void HandleUpdatePeriodic(AuraEffect* /*aurEff*/) + { + GetUnitOwner()->SendPlaySpellVisual(SPELL_VISUAL_KIT_HEART_EMOTE); + } + + void Register() override + { + AuraType effName = (m_scriptSpellId == 29007) ? SPELL_AURA_MOD_POWER_REGEN : SPELL_AURA_MOD_REGEN; + OnEffectApply += AuraEffectApplyFn(spell_gen_food_heart_emote::OnApply, EFFECT_0, effName, AURA_EFFECT_HANDLE_REAL); + DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_gen_food_heart_emote::CalcPeriodic, EFFECT_0, effName); + OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_food_heart_emote::HandleUpdatePeriodic, EFFECT_0, effName); + } +}; + void AddSC_generic_spell_scripts() { RegisterSpellScript(spell_silithyst); @@ -5656,4 +5692,5 @@ void AddSC_generic_spell_scripts() RegisterSpellScriptWithArgs(spell_gen_translocate, "spell_gen_translocate_down", SPELL_TRANSLOCATION_DOWN); RegisterSpellScriptWithArgs(spell_gen_translocate, "spell_gen_translocate_up", SPELL_TRANSLOCATION_UP); RegisterSpellScript(spell_gen_cooldown_all); + RegisterSpellScript(spell_gen_food_heart_emote); }