From e8df5babe61491d49922b48e4f88be1784390e07 Mon Sep 17 00:00:00 2001 From: Gustavo Date: Thu, 25 Aug 2016 08:31:48 +0200 Subject: Scripts/Pet Implemented Argent Squire/Gruntling and Argent Pony Bridle (cherry picked from commit 989aaaa8b5284bc707c94c62e6c50e9df3cbfc84) Rename 2016_08_15_17779_world.sql to 2016_08_25_00_world.sql (cherry picked from commit 526dfca8643d3afb9976eb099281547003dffbb1) --- src/server/scripts/Spells/spell_generic.cpp | 47 +++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 681a5efde3e..cbf96b30ca4 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -4331,6 +4331,52 @@ class spell_gen_clear_debuffs : public SpellScriptLoader } }; +enum PonySpells +{ + ACHIEV_PONY_UP = 3736, + MOUNT_PONY = 29736 +}; + +class spell_gen_pony_mount_check : public SpellScriptLoader +{ + public: + spell_gen_pony_mount_check() : SpellScriptLoader("spell_gen_pony_mount_check") { } + + class spell_gen_pony_mount_check_AuraScript : public AuraScript + { + PrepareAuraScript(spell_gen_pony_mount_check_AuraScript); + + void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) + { + Unit* caster = GetCaster(); + Player* owner = caster->GetOwner()->ToPlayer(); + if (!caster || !owner || !owner->HasAchieved(ACHIEV_PONY_UP)) + return; + + if (owner->IsMounted()) + { + caster->Mount(MOUNT_PONY); + caster->SetSpeedRate(MOVE_RUN, owner->GetSpeedRate(MOVE_RUN)); + } + else if (caster->IsMounted()) + { + caster->Dismount(); + caster->SetSpeedRate(MOVE_RUN, owner->GetSpeedRate(MOVE_RUN)); + } + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_pony_mount_check_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } + }; + + AuraScript* GetAuraScript() const + { + return new spell_gen_pony_mount_check_AuraScript(); + } +}; + // 169869 - Transformation Sickness class spell_gen_decimatus_transformation_sickness : public SpellScriptLoader { @@ -4655,6 +4701,7 @@ void AddSC_generic_spell_scripts() new spell_gen_mixology_bonus(); new spell_gen_landmine_knockback_achievement(); new spell_gen_clear_debuffs(); + new spell_gen_pony_mount_check(); new spell_gen_decimatus_transformation_sickness(); new spell_gen_anetheron_summon_towering_infernal(); new spell_gen_mark_of_kazrogal_hellfire(); -- cgit v1.2.3