From 11120a24b6927073d55d2e56b4b911817dedaae2 Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Wed, 15 Feb 2023 22:53:22 +0000 Subject: Game state, HUD, ... WIP Exploring ideas. --- src/Game/Map.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/Game/Map.hs') diff --git a/src/Game/Map.hs b/src/Game/Map.hs index 3855d16..ee30437 100644 --- a/src/Game/Map.hs +++ b/src/Game/Map.hs @@ -2,9 +2,11 @@ module Game.Map ( Map (..), Object (..), objects, + totalBatteries, load, render, isBlocked, + isPlayer, ) where @@ -142,6 +144,18 @@ isBlocked (Map (MapData mapWidth _ ts _ blocked _) _) x y = objects :: Map -> [Object] objects (Map md _) = md.objects +isPlayer :: Object -> Bool +isPlayer (PlayerEntity _ _) = True +isPlayer _ = False + +-- | Return the number of batteries in a map. +totalBatteries :: Map -> Int +totalBatteries m = length $ filter isBattery (objects m) + where + isBattery :: Object -> Bool + isBattery (BatteryEntity _ _) = True + isBattery _ = False + -- | Renders a map. render :: SDL.Renderer -> Map -> IO () render renderer (Map mapData tex) = do -- cgit v1.2.3