module Dodge.Creature.ChaseCrit ( smallChaseCrit, invisibleChaseCrit, crabCrit, chaseCrit, hoverCrit, slinkCrit, slimeCrit, beeCrit, hiveCrit, ) where import qualified Quaternion as Q import Linear import Dodge.Data.FloatFunction import Control.Lens import Dodge.Data.Creature import Dodge.Default --import Dodge.Item.Equipment import Picture smallChaseCrit :: Creature smallChaseCrit = chaseCrit { _crHP = HP 1 , _crInv = mempty } invisibleChaseCrit :: Creature invisibleChaseCrit = chaseCrit -- & crInv . at 0 ?~ wristInvisibility -- & crEquipment . at OnLeftWrist ?~ 0 chaseCrit :: Creature chaseCrit = defaultCreature & crName .~ "chaseCrit" & crHP .~ HP 150 & crFaction .~ ColorFaction green & crActionPlan . apGoal .~ SearchForFood & crActionPlan . apStrategy .~ Search crabCrit :: Creature crabCrit = defaultCreature & crName .~ "chaseCrit" & crHP .~ HP 350 & crType .~ CrabCrit { _meleeCooldownL = 0 , _meleeCooldownR = 0 , _dodgeCooldown = 0 , _lFootPos = 0 , _rFootPos = 0 } & crFaction .~ ColorFaction red & crPerception . cpVision . viFOV .~ FloatFOV pi slinkCrit :: Creature slinkCrit = defaultCreature & crName .~ "slinkCrit" & crHP .~ HP 1000 & crType .~ SlinkCrit { _meleeCooldown = 0 , _slinkSpine = replicate 15 (V3 0 0 2, Q.axisAngle (V3 0 1 0) (pi/15)) , _slinkHeadPos = (V3 20 0 15, Q.axisAngle (V3 0 1 0) (pi/2)) } & crFaction .~ ColorFaction red & crPerception . cpVision . viFOV .~ FloatFOV pi slimeCrit :: Creature slimeCrit = defaultCreature & crName .~ "slimeCrit" & crHP .~ HP 1000 -- & crType .~ SlimeCrit r 0 0 (V2 (slimeToRad r) 0) False 0 & crType .~ SlimeCrit r 0 NoSlimeDistortion 1 False 0 & crFaction .~ ColorFaction (light green) & crPerception . cpVision . viFOV .~ FloatFOV pi & crActionPlan .~ SlimeIntelligence & crStance . carriage .~ Crawling where r = 250000 hoverCrit :: Creature hoverCrit = defaultCreature & crName .~ "hoverCrit" & crHP .~ HP 150 & crType .~ HoverCrit 0 & crFaction .~ ColorFaction blue & crStance . carriage .~ Flying 15 beeCrit :: Creature beeCrit = defaultCreature & crName .~ "beeCrit" & crHP .~ HP 100 & crType .~ BeeCrit 0 Nothing 0 0 0 Nothing 1 & crFaction .~ ColorFaction yellow & crStance . carriage .~ Flying 15 hiveCrit :: Creature hiveCrit = defaultCreature & crName .~ "hiveCrit" & crHP .~ HP 100000 & crType .~ HiveCrit mempty 0 400 & crStance . carriage .~ Rooted & crFaction .~ ColorFaction yellow