aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorTeleqraph <nyrdeveloper@gmail.com>2022-10-11 10:20:04 +0200
committerGitHub <noreply@github.com>2022-10-11 10:20:04 +0200
commitc7109629dcd26c106333a768523ad08552aac48f (patch)
tree74b8ff80ae972b64040092c2c5c270580abb473a /src/server/scripts/Spells
parentc67cb094d50058252f13d725c019baea102a28c9 (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.cpp25
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);
}