19 lines
550 B
Haskell
19 lines
550 B
Haskell
{- |
|
|
Deals with setting a target for creatures
|
|
-}
|
|
module Dodge.Creature.SetTarget
|
|
where
|
|
import Dodge.Data
|
|
import Dodge.Creature.AlertLevel.Data
|
|
|
|
import Control.Lens
|
|
import qualified Data.IntMap.Strict as IM
|
|
{- | 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 ^? crAwarenessLevel . ix 0 of
|
|
Just (Cognizant _) -> cr & crTarget ?~ _creatures w IM.! 0
|
|
_ -> cr & crTarget .~ Nothing
|