From 989aaaa8b5284bc707c94c62e6c50e9df3cbfc84 Mon Sep 17 00:00:00 2001 From: Gustavo Date: Thu, 25 Aug 2016 03:31:48 -0300 Subject: Scripts/Pet Implemented Argent Squire/Gruntling and Argent Pony Bridle --- 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 e8ad73ceadb..168284b31bc 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -4244,6 +4244,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(); + } +}; + void AddSC_generic_spell_scripts() { new spell_gen_absorb0_hitlimit1(); @@ -4332,4 +4378,5 @@ 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(); } -- cgit v1.2.3