diff options
| author | Gustavo <sirikfoll@hotmail.com> | 2016-08-25 03:31:48 -0300 |
|---|---|---|
| committer | Aokromes <Aokromes@users.noreply.github.com> | 2016-08-25 08:31:48 +0200 |
| commit | 989aaaa8b5284bc707c94c62e6c50e9df3cbfc84 (patch) | |
| tree | 3bae0b3aefa134430af427d54f916e7e848af2a2 /src/server/scripts/Spells | |
| parent | 0d2ef2ac7155cedead2c7a7cafcd937a4e1dcd99 (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.cpp | 47 |
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(); } |
