From cc25457fe8c4ee3221adf6a0cbcc2f932ac93860 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sat, 30 Jan 2021 14:30:08 +0100 Subject: [PATCH] Core/Units: send AI reactions uppon entering combat instead of attacking an enemy --- src/server/game/Entities/Creature/Creature.cpp | 8 ++++++++ src/server/game/Entities/Creature/Creature.h | 1 + src/server/game/Entities/Unit/Unit.cpp | 2 -- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index ab4e01ad20..104b7b4df8 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3272,6 +3272,14 @@ bool Creature::IsEngaged() const return false; } +void Creature::AtEnterCombat() +{ + Unit::AtEnterCombat(); + + if (GetAI() && !IsControlledByPlayer()) + SendAIReaction(AI_REACTION_HOSTILE); +} + void Creature::AtEngage(Unit* target) { Unit::AtEngage(target); diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 6403677325..f52819b45e 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -364,6 +364,7 @@ class TC_GAME_API Creature : public Unit, public GridObject, public Ma void MakeInterruptable(bool apply); bool IsEngaged() const override; + void AtEnterCombat() override; void AtEngage(Unit* target) override; void AtDisengage() override; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 3b299ba789..f31141db02 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5586,8 +5586,6 @@ bool Unit::Attack(Unit* victim, bool meleeAttack) if (creature && !IsControlledByPlayer()) { EngageWithTarget(victim); // ensure that anything we're attacking has threat - - creature->SendAIReaction(AI_REACTION_HOSTILE); creature->CallAssistance(); // Remove emote state - will be restored on creature reset