From 1e860bd7fea09ffc5d8c05aff14d0b4b728f9ba3 Mon Sep 17 00:00:00 2001 From: Yehonal Date: Fri, 3 Nov 2017 11:24:48 +0000 Subject: [PATCH] Spell/Workaround: Seduction must be interrupted by spell reflection #697 it's an hack, we must improve it. Thanks to @lineagedr --- src/game/Spells/Spell.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index fda0183b9..faa6c12c0 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -2395,6 +2395,23 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*= // Increase time interval for reflected spells by 1.5 m_caster->m_Events.AddEvent(new ReflectEvent(m_caster->GetGUID(), targetInfo.targetGUID, m_spellInfo), m_caster->m_Events.CalculateTime(targetInfo.timeDelay)); targetInfo.timeDelay += targetInfo.timeDelay >> 1; + + // HACK: workaround check for succubus seduction case + // TODO: seduction should be casted only on humanoids (not demons) + if (m_caster->IsPet()) + { + CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(m_caster->GetEntry()); + switch (ci->family) + { + case CREATURE_FAMILY_SUCCUBUS: + { + if (m_spellInfo->SpellIconID != 694) // Soothing Kiss + cancel(); + } + break; + return; + } + } } else targetInfo.reflectResult = SPELL_MISS_NONE;