Files
loop/src/Dodge/Default/Creature.hs
T
2026-04-23 09:09:16 +01:00

119 lines
3.0 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
-- , _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 (StrategyActions WatchAndWait [StartSentinelPost]) [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
-- }