aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorGustavo <sirikfoll@hotmail.com>2016-08-25 03:31:48 -0300
committerAokromes <Aokromes@users.noreply.github.com>2016-08-25 08:31:48 +0200
commit989aaaa8b5284bc707c94c62e6c50e9df3cbfc84 (patch)
tree3bae0b3aefa134430af427d54f916e7e848af2a2 /src/server/scripts/Spells
parent0d2ef2ac7155cedead2c7a7cafcd937a4e1dcd99 (diff)
Scripts/Pet Implemented Argent Squire/Gruntling and Argent Pony Bridle
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp47
1 files changed, 47 insertions, 0 deletions
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();
}