From dba7e2507fee3bb53cb4aa7140dee401d478a16f Mon Sep 17 00:00:00 2001 From: Keader Date: Wed, 20 Feb 2019 10:40:19 -0300 Subject: Scripts/Illidan: Fixed Parasitic shadowfiends reproducing like rabbits (cherry picked from commit a617cc40977b7b019f79a198daebede90c59f5c1) --- .../scripts/Outland/BlackTemple/boss_illidan.cpp | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src') diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 23eb5001cb0..640fe275c61 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -1937,6 +1937,28 @@ class spell_illidan_parasitic_shadowfiend : public AuraScript } }; +// 41913 - Parasitic Shadowfiend Passive +class spell_illidan_parasitic_shadowfiend_proc : public AuraScript +{ + PrepareAuraScript(spell_illidan_parasitic_shadowfiend_proc); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_PARASITIC_SHADOWFIEND, SPELL_PARASITIC_SHADOWFIEND_2 }); + } + + bool CheckProc(ProcEventInfo& eventInfo) + { + Unit* target = eventInfo.GetProcTarget(); + return target && !target->HasAura(SPELL_PARASITIC_SHADOWFIEND) && !target->HasAura(SPELL_PARASITIC_SHADOWFIEND_2); + } + + void Register() override + { + DoCheckProc += AuraCheckProcFn(spell_illidan_parasitic_shadowfiend_proc::CheckProc); + } +}; + // 41923 - Remove Parasitic Shadowfiends (SERVERSIDE) class spell_illidan_remove_parasitic_shadowfiend : public AuraScript { @@ -2349,6 +2371,7 @@ void AddSC_boss_illidan() RegisterAuraScript(spell_illidan_akama_door_channel); RegisterSpellScript(spell_illidan_draw_soul); RegisterAuraScript(spell_illidan_parasitic_shadowfiend); + RegisterAuraScript(spell_illidan_parasitic_shadowfiend_proc); RegisterAuraScript(spell_illidan_remove_parasitic_shadowfiend); RegisterSpellScript(spell_illidan_throw_warglaive); RegisterAuraScript(spell_illidan_tear_of_azzinoth_channel); -- cgit v1.2.3