From 0e5eb1b0cfa8b1e79a503c3099d62d40d31c812d Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Thu, 7 Oct 2021 20:03:04 +0200 Subject: [PATCH] =?UTF-8?q?fix(Core/Pets):=20Eye=20of=20Kilrogg=20should?= =?UTF-8?q?=20not=20put=20its=20owner=20in=20combat=20wit=E2=80=A6=20(#719?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Closes #6627 --- src/server/game/Combat/ThreatMgr.cpp | 12 +++++++++--- src/server/game/Entities/Pet/PetDefines.h | 1 + src/server/game/Spells/SpellMgr.cpp | 6 ++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/server/game/Combat/ThreatMgr.cpp b/src/server/game/Combat/ThreatMgr.cpp index 1a08a2404..9b0ce1e3d 100644 --- a/src/server/game/Combat/ThreatMgr.cpp +++ b/src/server/game/Combat/ThreatMgr.cpp @@ -148,9 +148,15 @@ void HostileReference::addThreat(float modThreat) if (isValid() && modThreat >= 0.0f) { - Unit* victimOwner = getTarget()->GetCharmerOrOwner(); - if (victimOwner && victimOwner->IsAlive()) - GetSource()->addThreat(victimOwner, 0.0f); // create a threat to the owner of a pet, if the pet attacks + Unit* target = getTarget(); + if (target->GetEntry() != NPC_EYE_OF_KILROGG) // Excluded Eye of Kilrogg + { + Unit* victimOwner = target->GetCharmerOrOwner(); + if (victimOwner && victimOwner->IsAlive()) + { + GetSource()->addThreat(victimOwner, 0.0f); // create a threat to the owner of a pet, if the pet attacks + } + } } } diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h index a54993638..61332b565 100644 --- a/src/server/game/Entities/Pet/PetDefines.h +++ b/src/server/game/Entities/Pet/PetDefines.h @@ -108,6 +108,7 @@ enum NPCEntries NPC_SUCCUBUS = 1863, NPC_DOOMGUARD = 11859, NPC_FELGUARD = 17252, + NPC_EYE_OF_KILROGG = 4277, // Mage NPC_WATER_ELEMENTAL_TEMP = 510, diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 99e40eaaa..70a9b8306 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -7394,6 +7394,12 @@ void SpellMgr::LoadDbcDataCorrections() spellInfo->EffectBasePoints[EFFECT_0] = 1; }); + // Eye of Kilrogg Passive + ApplySpellFix({ 2585 }, [](SpellEntry* spellInfo) + { + spellInfo->AuraInterruptFlags |= AURA_INTERRUPT_FLAG_HITBYSPELL | AURA_INTERRUPT_FLAG_TAKE_DAMAGE; + }); + for (uint32 i = 0; i < sSpellStore.GetNumRows(); ++i) { SpellEntry* spellInfo = (SpellEntry*)sSpellStore.LookupEntry(i);