Scripts/Spells: Mount check aura for Gryphon Hatchling & Wind Rider Cub (#26897)

Closes #26600
This commit is contained in:
offl
2021-09-27 00:41:25 +03:00
committed by GitHub
parent 9062141cd4
commit 5f71c40b96
2 changed files with 42 additions and 0 deletions

View File

@@ -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');

View File

@@ -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);