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 -- , _crZ = 0 -- , _crZVel = 0 , _crDir = 0 , _crMvDir = 0 -- , _crMvAim = 0 -- , _crTwist = 0 , _crID = 1 , _crType = ChaseCrit 0 LeftForward 0 -- , _crRad = 10 , _crHP = HP 100 -- , _crMaxHP = 150 , _crInv = mempty , _crManipulation = Manipulator SelNothing -- , _crInvCapacity = 25 , _crDamage = [] -- , _crCorpse = MakeDefaultCorpse -- , _crMaterial = Flesh , _crPain = 0 -- , _crInvEquipped = mempty , _crEquipment = M.empty -- , _crInvHotkeys = mempty -- , _crHotkeys = 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" -- , _crStatistics = CreatureStatistics 50 50 50 , _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 -- }