117 lines
2.9 KiB
Haskell
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
|
|
-- }
|