diff options
author | Killyana <morphone1@gmail.com> | 2019-12-15 16:27:21 +0100 |
---|---|---|
committer | Killyana <morphone1@gmail.com> | 2019-12-15 16:27:21 +0100 |
commit | c22b1e6cb46ff76729f44eb846043e1614abc9f9 (patch) | |
tree | 8fce382cc11529f532145ff86ebf81edbd12737d /src | |
parent | 8b03fe95061f870efbe5352530c25a0175c4d8ee (diff) |
DB/Quest: Take Down Tethyr!
Closes #22407
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 3b45a48c64d..1abb2da344d 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -4324,6 +4324,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 = GetSpellInfo()->Effects[effIndex].CalcValue(); + 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); + } +}; + void AddSC_generic_spell_scripts() { RegisterAuraScript(spell_gen_absorb0_hitlimit1); @@ -4451,4 +4480,5 @@ 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); } |