From 1cd60a951b2c2f83b927a6b6961cbd3206bf5316 Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Tue, 25 Apr 2023 22:18:54 +0100 Subject: Added "tracker" enemy --- src/Game/Entities/Common.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/Game/Entities/Common.hs') diff --git a/src/Game/Entities/Common.hs b/src/Game/Entities/Common.hs index eb84400..8fa7fe3 100644 --- a/src/Game/Entities/Common.hs +++ b/src/Game/Entities/Common.hs @@ -3,6 +3,7 @@ module Game.Entities.Common frameLimit, collision, inLine, + facingLower, updateFrame, updateGravity, turn, @@ -54,6 +55,18 @@ inLine playerRef otherHeight other = do || (other.dir == DirRight && player.x > other.x) ) +-- | Check if the entity is facing the player and it is in a lower plarform. +facingLower :: IORef Entity -> Collision +facingLower playerRef other = do + player <- readIORef playerRef + pure $ + player.typ == TypePlayer + && player.gravity == gravityOff + && player.y < other.y + && ( (other.dir == DirLeft && player.x < other.x) + || (other.dir == DirRight && player.x > other.x) + ) + -- | Update frame animation for entities that have direction. updateFrame :: Bool -> Entity -> Entity updateFrame updated e -- cgit v1.2.3