37 lines
910 B
Haskell
37 lines
910 B
Haskell
{-# 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
|