module Dodge.Creature.ChooseTarget
    where
import Dodge.Data
import Dodge.Base

import Control.Lens
--import qualified Data.IntMap.Strict as IM

targetYouLOS :: Creature -> World -> Maybe Creature
{-# INLINE targetYouLOS #-}
targetYouLOS cr w 
    | hasLOS (_crPos cr) (_crPos $ you w) w = Just $ you w
    | otherwise = Nothing

targetYouCognizant :: Creature -> World -> Maybe Creature
targetYouCognizant cr w 
    | hasLOS (_crPos cr) (_crPos $ you w) w
        && isCog (cr ^? crPerception . cpAwareness . ix 0) 
                = Just $ you w
    | otherwise = Nothing
  where
    isCog x = case x of
        Just (Cognizant _) -> True
        _ -> False
