diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index f000c3294d1..8c07f62339b 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -4308,6 +4308,35 @@ class spell_gen_charmed_unit_spell_cooldown : public SpellScript } }; +enum CannonBlast +{ + SPELL_CANNON_BLAST = 42578, + SPELL_CANNON_BLAST_DAMAGE = 42576 +}; + +class spell_gen_cannon_blast : public SpellScript +{ + PrepareSpellScript(spell_gen_cannon_blast); + + bool Validate(SpellInfo const* spellInfo) override + { + return ValidateSpellInfo({ SPELL_CANNON_BLAST }); + } + void HandleScript(SpellEffIndex /*effIndex*/) + { + int32 bp = GetEffectValue(); + Unit* target = GetHitUnit(); + CastSpellExtraArgs args(TRIGGERED_FULL_MASK); + args.AddSpellBP0(bp); + target->CastSpell(target, SPELL_CANNON_BLAST_DAMAGE, args); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gen_cannon_blast::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + // 169869 - Transformation Sickness class spell_gen_decimatus_transformation_sickness : public SpellScript { @@ -4680,6 +4709,7 @@ void AddSC_generic_spell_scripts() RegisterAuraScript(spell_gen_vehicle_control_link); RegisterSpellScript(spell_freezing_circle); RegisterSpellScript(spell_gen_charmed_unit_spell_cooldown); + RegisterSpellScript(spell_gen_cannon_blast); RegisterSpellScript(spell_gen_decimatus_transformation_sickness); RegisterSpellScript(spell_gen_anetheron_summon_towering_infernal); RegisterSpellAndAuraScriptPair(spell_gen_mark_of_kazrogal_hellfire, spell_gen_mark_of_kazrogal_hellfire_aura); |