Remove Reader monad from multiple creature ais

This commit is contained in:
2021-12-11 19:32:20 +00:00
parent 37b81c2967
commit c847955b7c
7 changed files with 78 additions and 131 deletions
+8 -7
View File
@@ -5,6 +5,7 @@ module Dodge.Creature.SwarmCrit
import Dodge.Data
import Dodge.Default
import Dodge.Creature.Picture
import Dodge.Creature.ChainUpdates
import Dodge.Creature.Boid
import Dodge.Creature.ReaderUpdate
import Dodge.Creature.Perception
@@ -14,16 +15,16 @@ import Dodge.Picture.Layer
import Picture
import Control.Lens
import Control.Monad.Reader
swarmCrit :: Creature
swarmCrit = defaultCreature
{ _crUpdate = stateUpdate $ impulsiveAIR $
flockToPointUsing (encircleDistP 100) (meleeHeadingMove 0.1 0.1 (pi/4) 3.9)
>=> return . (crMeleeCooldown %~ max 0 . subtract 1)
>=> perceptionUpdate [0]
>=> doStrategyActionsR
>=> targetYouWhenCognizantR
{ _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR
[ Left $ flockToPointUsing' (encircleDistP 100) (meleeHeadingMove 0.1 0.1 (pi/4) 3.9)
, Right $ (crMeleeCooldown %~ max 0 . subtract 1)
, Left $ perceptionUpdate' [0]
, Right $ doStrategyActions
, Left $ targetYouWhenCognizant
]
-- , doStrategyActions
-- , targetYouWhenCognizant