module Dodge.Creature.ChooseTarget where import Control.Lens import Dodge.Base import Dodge.Data.World 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