aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-01-21 01:16:16 +0100
committerShauren <shauren.trinity@gmail.com>2021-06-16 14:26:10 +0200
commit9f91cf23ab8ab5f4fe35cba2e504d299248c4e60 (patch)
treec6130dcd3a103999db337936cd761e9d0566a514 /src
parent85ffcd9826f95127317a8a8427e9140542583bd5 (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.cpp7
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);