diff options
| author | Teleqraph <nyrdeveloper@gmail.com> | 2022-10-11 10:20:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-11 10:20:04 +0200 |
| commit | c7109629dcd26c106333a768523ad08552aac48f (patch) | |
| tree | 74b8ff80ae972b64040092c2c5c270580abb473a /src/server/scripts/Spells | |
| parent | c67cb094d50058252f13d725c019baea102a28c9 (diff) | |
Scripts/Silverpine: quest fixes and spawns for Forsaken Rear Guard (#28303)
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 8cb2b7d547c..1acc02ae655 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -5157,6 +5157,30 @@ class spell_gen_reverse_cast_target_to_caster_triggered: public SpellScript } }; +// Note: this spell unsummons any creature owned by the caster. Set appropriate target conditions on the DB. +// 84065 - Despawn All Summons +// 83935 - Despawn All Summons +class spell_gen_despawn_all_summons_owned_by_caster : public SpellScript +{ + PrepareSpellScript(spell_gen_despawn_all_summons_owned_by_caster); + + void HandleScriptEffect(SpellEffIndex /*effIndex*/) + { + if (Unit* caster = GetCaster()) + { + Creature* target = GetHitCreature(); + + if (target->GetOwner() == caster) + target->DespawnOrUnsummon(); + } + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gen_despawn_all_summons_owned_by_caster::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_generic_spell_scripts() { RegisterSpellScript(spell_gen_absorb0_hitlimit1); @@ -5316,4 +5340,5 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_ancestral_call); RegisterSpellScript(spell_gen_eject_passengers_3_8); RegisterSpellScript(spell_gen_reverse_cast_target_to_caster_triggered); + RegisterSpellScript(spell_gen_despawn_all_summons_owned_by_caster); } |
