aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-09-27 00:41:25 +0300
committerGitHub <noreply@github.com>2021-09-27 00:41:25 +0300
commit5f71c40b969c07f950e3dceb99037c7685512e71 (patch)
treef00636ce6dc76e151bbe8e1b16f9b445f67a4dd0
parent9062141cd4dc899d18967456e5a794200009671b (diff)
Scripts/Spells: Mount check aura for Gryphon Hatchling & Wind Rider Cub (#26897)
Closes #26600
-rw-r--r--sql/updates/world/3.3.5/2021_09_26_03_world.sql10
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp32
2 files changed, 42 insertions, 0 deletions
diff --git a/sql/updates/world/3.3.5/2021_09_26_03_world.sql b/sql/updates/world/3.3.5/2021_09_26_03_world.sql
new file mode 100644
index 00000000000..9be7553cc9d
--- /dev/null
+++ b/sql/updates/world/3.3.5/2021_09_26_03_world.sql
@@ -0,0 +1,10 @@
+--
+UPDATE `creature_template` SET `unit_flags` = 768, `flags_extra` = `flags_extra`|512 WHERE `entry` IN (36908,36909);
+DELETE FROM `creature_template_addon` WHERE `entry` IN (36908,36909);
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
+(36908,0,0,0,1,0,0,'69641'),
+(36909,0,0,0,1,0,0,'69641');
+
+DELETE FROM `spell_script_names` WHERE `spell_id` = 69641 AND `ScriptName` = 'spell_gen_gryphon_wyvern_mount_check';
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(69641,'spell_gen_gryphon_wyvern_mount_check');
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 156a51babb5..8e2b9671eff 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1940,6 +1940,37 @@ class spell_gen_gnomish_transporter : public SpellScript
}
};
+// 69641 - Gryphon/Wyvern Pet - Mounting Check Aura
+class spell_gen_gryphon_wyvern_mount_check : public AuraScript
+{
+ PrepareAuraScript(spell_gen_gryphon_wyvern_mount_check);
+
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ Unit* target = GetTarget();
+ Unit* owner = target->GetOwner();
+
+ if (!owner)
+ return;
+
+ if (owner->IsMounted())
+ {
+ target->SetAnimationTier(AnimationTier::Fly);
+ target->SetDisableGravity(true);
+ }
+ else
+ {
+ target->SetAnimationTier(AnimationTier::Ground);
+ target->SetDisableGravity(false);
+ }
+ }
+
+ void Register() override
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_gryphon_wyvern_mount_check::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+};
+
class spell_gen_injured : public SpellScript
{
PrepareSpellScript(spell_gen_injured);
@@ -4534,6 +4565,7 @@ void AddSC_generic_spell_scripts()
RegisterSpellScript(spell_gen_gadgetzan_transporter_backfire);
RegisterSpellScript(spell_gen_gift_of_naaru);
RegisterSpellScript(spell_gen_gnomish_transporter);
+ RegisterSpellScript(spell_gen_gryphon_wyvern_mount_check);
RegisterSpellScript(spell_gen_injured);
RegisterSpellScript(spell_gen_lich_pet_aura);
RegisterSpellScript(spell_gen_lich_pet_onsummon);