diff options
-rw-r--r-- | sql/updates/world/master/2022_08_31_01_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 41 |
2 files changed, 44 insertions, 0 deletions
diff --git a/sql/updates/world/master/2022_08_31_01_world.sql b/sql/updates/world/master/2022_08_31_01_world.sql new file mode 100644 index 00000000000..967950a74d4 --- /dev/null +++ b/sql/updates/world/master/2022_08_31_01_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_gen_ancestral_call'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(274738, 'spell_gen_ancestral_call'); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 1aa75e40d48..615cf7072e0 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -5032,6 +5032,46 @@ class spell_gen_mount_check_aura : public AuraScript } }; +enum AncestralCallSpells +{ + SPELL_RICTUS_OF_THE_LAUGHING_SKULL = 274739, + SPELL_ZEAL_OF_THE_BURNING_BLADE = 274740, + SPELL_FEROCITY_OF_THE_FROSTWOLF = 274741, + SPELL_MIGHT_OF_THE_BLACKROCK = 274742 +}; + +// 274738 - Ancestral Call (Mag'har Orc Racial) +class spell_gen_ancestral_call : public SpellScript +{ + PrepareSpellScript(spell_gen_ancestral_call); + + bool Validate(SpellInfo const* /*spell*/) override + { + return ValidateSpellInfo( + { + SPELL_RICTUS_OF_THE_LAUGHING_SKULL, + SPELL_ZEAL_OF_THE_BURNING_BLADE, + SPELL_FEROCITY_OF_THE_FROSTWOLF, + SPELL_MIGHT_OF_THE_BLACKROCK + }); + } + + static constexpr uint32 AncestralCallBuffs[] = { SPELL_RICTUS_OF_THE_LAUGHING_SKULL, SPELL_ZEAL_OF_THE_BURNING_BLADE, SPELL_FEROCITY_OF_THE_FROSTWOLF, SPELL_MIGHT_OF_THE_BLACKROCK }; + + void HandleOnCast() + { + Unit* caster = GetCaster(); + uint32 spellId = Trinity::Containers::SelectRandomContainerElement(AncestralCallBuffs); + + caster->CastSpell(caster, spellId, true); + } + + void Register() override + { + OnCast += SpellCastFn(spell_gen_ancestral_call::HandleOnCast); + } +}; + void AddSC_generic_spell_scripts() { RegisterSpellScript(spell_gen_absorb0_hitlimit1); @@ -5187,4 +5227,5 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_summon_battle_pet); RegisterSpellScript(spell_gen_anchor_here); RegisterSpellScript(spell_gen_mount_check_aura); + RegisterSpellScript(spell_gen_ancestral_call); } |