aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/CreatureAI.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-02-22 15:47:11 +0100
committerShauren <shauren.trinity@gmail.com>2024-02-22 15:47:11 +0100
commita748fddfa47216e1f516303e3bca9b5a86823748 (patch)
tree9cfcc9550e4abba336edb699404bbfe6f15ed1f8 /src/server/game/AI/CreatureAI.cpp
parent17e72ce0bc6a9adb84d987a56d3112ca8e326c1c (diff)
Core/Creatures: Implemented CREATURE_STATIC_FLAG_4_NO_MELEE_APPROACH and fixed CREATURE_STATIC_FLAG_NO_MELEE_FLEE implementation (should cause fleeing from melee range)
Diffstat (limited to 'src/server/game/AI/CreatureAI.cpp')
-rw-r--r--src/server/game/AI/CreatureAI.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index c63e3c21ee1..1c33aec2a69 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -324,6 +324,21 @@ bool CreatureAI::_EnterEvadeMode(EvadeReason /*why*/)
return true;
}
+void CreatureAI::AttackStart(Unit* victim)
+{
+ if (victim && me->Attack(victim, true))
+ {
+ // Clear distracted state on attacking
+ if (me->HasUnitState(UNIT_STATE_DISTRACTED))
+ {
+ me->ClearUnitState(UNIT_STATE_DISTRACTED);
+ me->GetMotionMaster()->Clear();
+ }
+
+ me->StartDefaultCombatMovement(victim);
+ }
+}
+
Optional<QuestGiverStatus> CreatureAI::GetDialogStatus(Player const* /*player*/)
{
return {};