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 = V2 0 0 , _crOldPos = V2 0 0 , _crDir = 0 , _crMvDir = 0 , _crMvAim = 0 -- , _crTwist = 0 , _crID = 1 , _crType = ChaseCrit {_meleeCooldown = 0} -- , _crRad = 10 , _crHP = 100 -- , _crMaxHP = 150 , _crInv = IM.empty , _crManipulation = Manipulator SelNothing -- , _crInvCapacity = 25 , _crState = defaultState -- , _crCorpse = MakeDefaultCorpse -- , _crMaterial = Flesh , _crPastDamage = 0 -- , _crInvEquipped = mempty , _crEquipment = M.empty -- , _crInvHotkeys = mempty -- , _crHotkeys = M.empty , _crStance = Stance { _carriage = Walking 0 WasLeftForward , _posture = AtEase , _strideLength = yourDefaultStrideLength } , _crVocalization = Mute , _crActionPlan = ActionPlan [] [] (StrategyActions WatchAndWait [StartSentinelPost]) [LiveLongAndProsper] , _crPerception = defaultPerceptionState , _crMemory = defaultCreatureMemory , _crFaction = NoFaction , _crIntention = defaultIntention , _crGroup = LoneWolf -- , _crMvType = defaultAimMvType -- , _crHammerPosition = HammerUp , _crName = "DEFAULTCRNAME" -- , _crStatistics = CreatureStatistics 50 50 50 , _crDeathTimer = 0 } --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 :: Int yourDefaultStrideLength = 40 defaultState :: CreatureState defaultState = CrSt { _csDamage = [] , _csSpState = GenCr -- , _csDropsOnDeath = DropAll }