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 -- }