diff options
| author | Gustavo <sirikfoll@hotmail.com> | 2016-08-25 08:31:48 +0200 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-02-18 16:00:52 +0100 |
| commit | e8df5babe61491d49922b48e4f88be1784390e07 (patch) | |
| tree | 476aa6d7eee4c269923691fec0556633d5b978ad /src/server/scripts/Spells | |
| parent | 3e4ca641d3f12b044544699c5812373bce1be383 (diff) | |
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)
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 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(); |
