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

117 lines
2.9 KiB
Haskell

module Dodge.Default.Creature where
import Control.Lens
import qualified Data.Map.Strict as M
import Dodge.Data.Creature
import Dodge.Data.FloatFunction
import Geometry.Data
-- import qualified IntMapHelp as IM
-- import Picture
-- import MaybeHelp
defaultCreature :: Creature
defaultCreature =
Creature
{ _crPos = V3 0 0 0
, _crOldPos = V3 0 0 0
, _crOldOldPos = V3 0 0 0
, _crDir = 0
, _crMvDir = 0
, _crID = 1
, _crType =
ChaseCrit
{ _meleeCooldown = 0
, _footForward = LeftForward
, _strideAmount = 0
, _chaseqy0 = 0
, _chaseqy1 = 0.45 * pi
, _chaseqy2 = -0.9*pi
, _chaseqy3 = 0.45*pi
, _chaseqz = 0
, _chaseLerp = 0
, _chaseKState = UprightCK
}
, _crHP = HP 100
, _crInv = mempty
, _crDamage = []
, _crPain = 0
, _crEquipment = M.empty
, _crStance =
Stance
{ _carriage = Walking
, _posture = AtEase
}
, _crVocalization = VocReady
, _crActionPlan = ActionPlan NoAction WatchAndWait LiveLongAndProsper
, _crPerception = defaultPerceptionState
, _crMemory = defaultCreatureMemory
, _crFaction = NoFaction
, _crIntention = defaultIntention
, _crGroup = LoneWolf
, _crName = "DEFAULTCRNAME"
, _crDeathTimer = Nothing
, _crWallTouch = mempty
}
-- defaultCreatureSkin :: CreatureType
-- defaultCreatureSkin = Humanoid (greyN 0.9) (lightx4 green) (greyN 0.3) InanimateAI
defaultInanimate :: Creature
defaultInanimate = defaultCreature & crActionPlan .~ Inanimate
defaultCreatureMemory :: Memory
defaultCreatureMemory =
Memory
{ _soundsToInvestigate = []
, _nodesSearched = []
}
defaultInvSize :: Int
defaultInvSize = 20
defaultPerceptionState :: Perception
defaultPerceptionState =
Perception
{ _cpVigilance = Lethargic
, _cpAttention = AttentiveTo mempty
, _cpAwareness = mempty
, _cpVision = defaultVision
, _cpAudition = defaultAudition
}
defaultVision :: Vision
defaultVision =
Eyes
{ _viFOV = FloatFOV 0.8
, _viDist = FloatDistLinearNearFar 500 10 1
}
defaultAudition :: Audition
defaultAudition =
Ears
{ _auDist = FloatID
}
defaultIntention :: Intention
defaultIntention =
Intention
{ _targetCr = Nothing
, _mvToPoint = Nothing
, _viewPoint = Nothing
}
defaultAimingCrit :: Creature
defaultAimingCrit = defaultCreature
yourDefaultStrideLength :: Float
yourDefaultStrideLength = 35
-- defaultState :: CreatureState
-- defaultState =
-- CrSt
-- { _csDamage = []
---- , _csSpState = GenCr
---- , _csDropsOnDeath = DropAll
-- }