Files
loop/src/Dodge/Data/Creature.hs
T

85 lines
2.1 KiB
Haskell

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Creature (
module Dodge.Data.Creature,
module Dodge.Data.Creature.Misc,
module Dodge.Data.Creature.State,
module Dodge.Data.Creature.Perception,
module Dodge.Data.Creature.Memory,
module Dodge.Data.Creature.Stance,
module Dodge.Data.ActionPlan,
module Dodge.Data.Item,
module Dodge.Data.Material,
module Dodge.Data.Item.Use.Consumption.LoadAction,
) where
import Dodge.Data.Item.Use.Consumption.LoadAction
import Dodge.Data.Equipment.Misc
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import qualified Data.Map.Strict as M
import Dodge.Data.ActionPlan
import Dodge.Data.Creature.Memory
import Dodge.Data.Creature.Misc
import Dodge.Data.Creature.Perception
import Dodge.Data.Creature.Stance
import Dodge.Data.Creature.State
import Dodge.Data.Item
import Dodge.Data.Material
import Geometry.Data
import qualified IntMapHelp as IM
data Creature = Creature
{ _crPos :: Point2
, _crOldPos :: Point2
, _crZ :: Float
, _crZVel :: Float
, _crDir :: Float
, _crMvDir :: Float
, _crMvAim :: Float
, _crType :: CreatureType
, _crID :: Int
, _crHP :: Int
, _crInv :: IM.IntMap Int
, _crManipulation :: Manipulation
, _crEquipment :: M.Map EquipSite Int
, _crDamage :: [Damage]
, _crPain :: Int
, _crStance :: Stance
, _crActionPlan :: ActionPlan
, _crPerception :: Perception
, _crMemory :: Memory
, _crVocalization :: Vocalization
, _crFaction :: Faction
, _crGroup :: CrGroup
, _crIntention :: Intention
-- , _crMvType :: CrMvType
, _crName :: String
, _crDeathTimer :: Int
}
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Intention = Intention
{ _targetCr :: Maybe Creature
, _mvToPoint :: Maybe Point2
, _viewPoint :: Maybe Point2
}
--deriving (Eq, Show, Read) --Generic, Flat)
makeLenses ''Creature
makeLenses ''Intention
concat
<$> mapM
(deriveJSON defaultOptions)
[ ''Creature
, ''Intention
]