diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-01-21 01:16:16 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-06-16 14:26:10 +0200 |
commit | 9f91cf23ab8ab5f4fe35cba2e504d299248c4e60 (patch) | |
tree | c6130dcd3a103999db337936cd761e9d0566a514 /src | |
parent | 85ffcd9826f95127317a8a8427e9140542583bd5 (diff) |
Core/Threat: Passive creatures now properly become engaged when adding an offline threat entry. Fixes RoS and Thaddius, maybe more. Closes #21269.
(cherry picked from commit a3732756121be6d5621fb42bc7a71882a28f03a6)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index 8ca4dac268c..c24529c7d9d 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -380,12 +380,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); |