{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Data.Creature where import Sound.Data import Control.Lens data CamouflageStatus = FullyVisible | Invisible deriving (Eq,Ord,Enum) data CreatureStatistics = CreatureStatistics { _strength :: Int , _dexterity :: Int , _intelligence :: Int } deriving (Eq,Ord,Show) data Vocalization = Mute | Vocalization {_vcSound :: SoundID ,_vcWarnings :: [SoundID] ,_vcMaxCoolDown :: Int ,_vcCoolDown :: Int } deriving (Eq,Ord,Show) data CrMvType = NoMvType | MvWalking { _mvSpeed :: Float } | CrMvType { _mvSpeed :: Float , _mvTurnRad :: Float -> Float , _mvTurnJit :: Float , _mvAimSpeed :: Float -> Float } makeLenses ''CreatureStatistics makeLenses ''Vocalization makeLenses ''CrMvType