Cleanup
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
module Dodge.Default.Creature where
|
||||
import Dodge.Data
|
||||
import Dodge.Creature.Picture
|
||||
import Dodge.Creature.Damage
|
||||
import Geometry.Data
|
||||
import Picture
|
||||
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import qualified Data.Map.Strict as M
|
||||
|
||||
import Control.Lens
|
||||
defaultCreature :: Creature
|
||||
defaultCreature = Creature
|
||||
{ _crPos = V2 0 0
|
||||
, _crOldPos = V2 0 0
|
||||
, _crVel = V2 0 0
|
||||
, _crDir = 0
|
||||
, _crOldDir = 0
|
||||
, _crMvDir = 0
|
||||
, _crTwist = 0
|
||||
, _crID = 1
|
||||
-- , _crPict = basicCrPict
|
||||
, _crType = defaultCreatureSkin
|
||||
, _crUpdate = const id
|
||||
, _crRad = 10
|
||||
, _crMass = 10
|
||||
, _crHP = 100
|
||||
, _crMaxHP = 150
|
||||
, _crInv = IM.empty
|
||||
, _crInvSel = InvSel 0 NoInvSelAction
|
||||
, _crInvCapacity = 25
|
||||
, _crInvLock = False
|
||||
, _crInvEquipped = mempty
|
||||
, _crLeftInvSel = Nothing
|
||||
, _crState = defaultState
|
||||
, _crCorpse = basicCrCorpse
|
||||
, _crApplyDamage = defaultApplyDamage
|
||||
, _crPastDamage = 0
|
||||
, _crEquipment = M.empty
|
||||
, _crStance = Stance
|
||||
{_carriage=Walking 0 WasLeftForward
|
||||
,_posture=AtEase
|
||||
,_strideLength = yourDefaultStrideLength
|
||||
}
|
||||
, _crVocalization = Mute
|
||||
, _crActionPlan = ActionPlan [] [] (StrategyActions WatchAndWait [StartSentinelPost]) [LiveLongAndProsper]
|
||||
, _crPerception = defaultPerceptionState
|
||||
, _crMemory = defaultCreatureMemory
|
||||
, _crMeleeCooldown = 0
|
||||
, _crFaction = NoFaction
|
||||
, _crIntention = defaultIntention
|
||||
, _crGroup = LoneWolf
|
||||
, _crMvType = defaultAimMvType
|
||||
, _crHammerPosition = HammerUp
|
||||
, _crName = "DEFAULTCRNAME"
|
||||
, _crStatistics = CreatureStatistics 10 10 10
|
||||
, _crCamouflage = FullyVisible
|
||||
}
|
||||
defaultCreatureSkin :: CreatureType
|
||||
defaultCreatureSkin = Humanoid (greyN 0.9) (light4 green) (greyN 0.3)
|
||||
|
||||
defaultInanimate :: Creature
|
||||
defaultInanimate = defaultCreature & crActionPlan .~ Inanimate
|
||||
|
||||
defaultCreatureMemory :: Memory
|
||||
defaultCreatureMemory = Memory
|
||||
{ _soundsToInvestigate = []
|
||||
, _nodesSearched = []
|
||||
}
|
||||
|
||||
defaultInvSize :: Int
|
||||
defaultInvSize = 20
|
||||
|
||||
defaultPerceptionState :: Perception
|
||||
defaultPerceptionState = Perception
|
||||
{ _cpVigilance = Lethargic
|
||||
, _cpAttention = AttentiveTo IM.empty
|
||||
, _cpAwareness = IM.empty
|
||||
, _cpVision = defaultVision
|
||||
, _cpAudition = defaultAudition
|
||||
}
|
||||
defaultVision :: Vision
|
||||
defaultVision = Eyes
|
||||
{ _viFOV = f
|
||||
, _viDist = g
|
||||
}
|
||||
where
|
||||
f x | abs x < 0.5 * pi = 1
|
||||
| otherwise = 0
|
||||
g x | x > 500 = 0
|
||||
| otherwise = 1
|
||||
defaultAudition :: Audition
|
||||
defaultAudition = Ears
|
||||
{ _auDist = id
|
||||
}
|
||||
defaultIntention :: Intention
|
||||
defaultIntention = Intention
|
||||
{ _targetCr = Nothing
|
||||
, _mvToPoint = Nothing
|
||||
, _viewPoint = Nothing
|
||||
}
|
||||
defaultChaseMvType :: CrMvType
|
||||
defaultChaseMvType = CrMvType
|
||||
{ _mvSpeed = 2
|
||||
, _mvTurnRad = f
|
||||
, _mvTurnJit = 0.2
|
||||
, _mvAimSpeed = g
|
||||
}
|
||||
where
|
||||
g x | x > pi/8 = 0.2
|
||||
| otherwise = 0.01
|
||||
f x | x > pi / 4 = 0.2
|
||||
| otherwise = 0.05
|
||||
defaultAimMvType :: CrMvType
|
||||
defaultAimMvType = CrMvType
|
||||
{ _mvSpeed = 3
|
||||
, _mvTurnRad = const 0.2
|
||||
, _mvTurnJit = 0.05
|
||||
, _mvAimSpeed = f
|
||||
}
|
||||
where
|
||||
f x | x > pi/8 = 0.2
|
||||
| otherwise = 0.01
|
||||
defaultAimingCrit :: Creature
|
||||
defaultAimingCrit = defaultCreature { _crMvType = defaultAimMvType }
|
||||
|
||||
yourDefaultSpeed :: Float
|
||||
yourDefaultSpeed = 3
|
||||
|
||||
yourDefaultStrideLength :: Int
|
||||
yourDefaultStrideLength = 40
|
||||
|
||||
defaultState :: CreatureState
|
||||
defaultState = CrSt
|
||||
{ _csDamage = []
|
||||
-- , _crPastDamage = V.fromList $ replicate 20 []
|
||||
, _csSpState = GenCr
|
||||
, _csDropsOnDeath = DropAll
|
||||
}
|
||||
Reference in New Issue
Block a user