-- | Deals with setting a target for creatures module Dodge.Creature.SetTarget where import Control.Lens import Dodge.Data.World --import MaybeHelp -- | Assumes that you are id 0: if creature is cognizant of you, sets you as target targetYouWhenCognizant :: World -> Creature -> Creature targetYouWhenCognizant w cr = case cr ^? crPerception . cpAwareness . ix 0 of --Just (Cognizant _) -> cr & crIntention . targetCr ?~ _creatures (_cWorld w) IM.! 0 Just (Cognizant _) -> cr & crIntention . targetCr ?~ (w ^?! cWorld . lWorld . creatures . ix 0) _ -> cr & crIntention . targetCr .~ Nothing