From 2d14f744dddb2fc601e8ce2b280f3469d2dee4d4 Mon Sep 17 00:00:00 2001 From: Treeston Date: Sun, 21 Jan 2018 01:16:16 +0100 Subject: [PATCH] Core/Threat: Passive creatures now properly become engaged when adding an offline threat entry. Fixes RoS and Thaddius, maybe more. Closes #21269. --- src/server/game/Combat/ThreatManager.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index 6b30229216c..90422e9b7df 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -22,6 +22,7 @@ #include "ThreatManager.h" #include "Unit.h" #include "UnitAI.h" +#include "UnitDefines.h" #include "SpellAuraEffects.h" #include "SpellInfo.h" #include "SpellMgr.h" @@ -371,12 +372,13 @@ void ThreatManager::AddThreat(Unit* target, float amount, SpellInfo const* spell ThreatReference* ref = new ThreatReference(this, target, amount); PutThreatListRef(target->GetGUID(), ref); target->GetThreatManager().PutThreatenedByMeRef(_owner->GetGUID(), ref); - if (!ref->IsOffline() && !_ownerEngaged) + + Creature* cOwner = _owner->ToCreature(); + assert(cOwner); // if we got here the owner can have a threat list, and must be a creature! + if (!_ownerEngaged && (cOwner->HasReactState(REACT_PASSIVE) || !ref->IsOffline())) { _ownerEngaged = true; - Creature* cOwner = _owner->ToCreature(); - assert(cOwner); // if we got here the owner can have a threat list, and must be a creature! SaveCreatureHomePositionIfNeed(cOwner); if (cOwner->IsAIEnabled) cOwner->AI()->JustEngagedWith(target);