From 47c0b48bfd5df90cf889574c5634542d2aaa8873 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Fri, 18 Dec 2020 20:48:32 +0000 Subject: Monsters: improve targeting * Replace DoWithNearestPlayer with bounding box search (avoid iterating through all players in world). * Do line-of-sight checks from eye-to-eye. + Added LOS and LOS lost timer to target lost checks, in addition to distance. --- src/Mobs/Monster.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/Mobs/Monster.h') diff --git a/src/Mobs/Monster.h b/src/Mobs/Monster.h index edd0a96c3..aeb8a3bf9 100644 --- a/src/Mobs/Monster.h +++ b/src/Mobs/Monster.h @@ -117,7 +117,7 @@ public: virtual bool IsUndead(void); virtual void EventLosePlayer(void); - virtual void CheckEventLostPlayer(void); + virtual void CheckEventLostPlayer(std::chrono::milliseconds a_Dt); virtual void InStateIdle (std::chrono::milliseconds a_Dt, cChunk & a_Chunk); virtual void InStateChasing (std::chrono::milliseconds a_Dt, cChunk & a_Chunk); @@ -313,6 +313,7 @@ protected: double m_AttackRange; int m_AttackCoolDownTicksLeft; int m_SightDistance; + std::chrono::milliseconds m_LoseSightAbandonTargetTimer; float m_DropChanceWeapon; float m_DropChanceHelmet; -- cgit v1.2.3