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
+12 -14
View File
@@ -4,6 +4,7 @@ module Dodge.Creature.LtAutoCrit
import Dodge.Data
import Dodge.Default
import Dodge.Creature.Picture
import Dodge.Creature.ChainUpdates
import Dodge.Creature.Impulse
import Dodge.Creature.Action
import Dodge.Creature.Test
@@ -18,20 +19,16 @@ import Dodge.Item.Weapon.BulletGuns
import Dodge.Item.Consumable
import Geometry
import Picture
--import Dodge.RandomHelp
--import Data.Maybe
import qualified Data.IntMap.Strict as IM
import Control.Lens
import Control.Monad.Reader
--import System.Random
ltAutoCrit :: Creature
ltAutoCrit = defaultCreature
{ _crPict = basicCrPict red
, _crUpdate = stateUpdate $ impulsiveAIR $
performActionsR
>=> watchUpdateStratR
, _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR
[ Left performActions
, Left $ watchUpdateStrat
[ (crHasTargetLOS, \_ _ -> StrategyActions (ShootAt 0)
[DoActionIf (not . crIsAiming) drawWeapon
,DoActionThen
@@ -41,13 +38,14 @@ ltAutoCrit = defaultCreature
)
, (crAwayFromPost, goToPostStrat)
]
>=> perceptionUpdate [0]
>=> doStrategyActionsR
>=> reloadOverrideR
>=> targetYouWhenCognizantR
>=> overrideInternalRRR
(\cr -> (&&) <$> crHasTargetR cr <*> crStratConMatchesR (GetTo (V2 0 0)) cr)
(pure . (crActionPlan . crStrategy .~ WatchAndWait))
, Left $ perceptionUpdate' [0]
, Right $ doStrategyActions
, Right $ reloadOverride
, Left $ targetYouWhenCognizant
, Right $ overrideInternal
(\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr)
(crActionPlan . crStrategy .~ WatchAndWait)
]
, _crActionPlan = ActionPlan
{ _crImpulse = []
, _crAction = []