76 lines
2.4 KiB
Haskell
76 lines
2.4 KiB
Haskell
{-# LANGUAGE TemplateHaskell #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
module Dodge.Data.Creature
|
|
( module Dodge.Data.Creature
|
|
, module Dodge.Data.Creature.Misc
|
|
, module Dodge.Data.Creature.State
|
|
) where
|
|
import Dodge.Data.Creature.Misc
|
|
import Dodge.Data.Creature.State
|
|
import Dodge.Data.Item
|
|
import Dodge.Data.LoadAction
|
|
import Dodge.Data.Material
|
|
import Dodge.Data.ActionPlan
|
|
import Dodge.Data.Hammer
|
|
import Dodge.Creature.Perception.Data
|
|
import Dodge.Creature.Memory.Data
|
|
import Dodge.Creature.Stance.Data
|
|
import Dodge.Creature.State.Data
|
|
import Dodge.Equipment.Data
|
|
import ShapePicture
|
|
import Geometry.Data
|
|
import qualified IntMapHelp as IM
|
|
import qualified Data.Map.Strict as M
|
|
data Creature = Creature
|
|
{ _crPos :: Point2
|
|
, _crOldPos :: Point2
|
|
, _crVel :: Point2
|
|
, _crDir :: Float
|
|
, _crOldDir :: Float
|
|
, _crMvDir :: Float
|
|
, _crTwist :: Float
|
|
, _crType :: CreatureType
|
|
, _crID :: Int
|
|
, _crRad :: Float
|
|
, _crMass :: Float
|
|
, _crHP :: Int
|
|
, _crMaxHP :: Int
|
|
, _crInv :: IM.IntMap Item
|
|
, _crInvSel :: InvSel
|
|
, _crInvCapacity :: Int
|
|
, _crInvLock :: Bool
|
|
, _crInvEquipped :: IM.IntMap EquipPosition
|
|
, _crEquipment :: M.Map EquipPosition Int
|
|
, _crLeftInvSel :: Maybe Int
|
|
, _crState :: CreatureState
|
|
, _crCorpse :: Creature -> Corpse -> SPic
|
|
, _crMaterial :: Material
|
|
, _crPastDamage :: Int
|
|
, _crStance :: Stance
|
|
, _crActionPlan :: ActionPlan
|
|
, _crMeleeCooldown :: Int
|
|
, _crPerception :: Perception
|
|
, _crMemory :: Memory
|
|
, _crVocalization :: Vocalization
|
|
, _crFaction :: Faction
|
|
, _crGroup :: CrGroup
|
|
, _crIntention :: Intention
|
|
, _crMvType :: CrMvType
|
|
, _crHammerPosition :: HammerPosition
|
|
, _crName :: String
|
|
, _crStatistics :: CreatureStatistics
|
|
, _crCamouflage :: CamouflageStatus
|
|
}
|
|
data Corpse = Corpse
|
|
{ _cpID :: Int
|
|
, _cpPos :: Point2
|
|
, _cpDir :: Float
|
|
, _cpPict :: Corpse -> SPic
|
|
, _cpRes :: Maybe Creature
|
|
}
|
|
data Intention = Intention
|
|
{ _targetCr :: Maybe Creature
|
|
, _mvToPoint :: Maybe Point2
|
|
, _viewPoint :: Maybe Point2
|
|
}
|