diff --git a/src/Dodge/Creature/LauncherCrit.hs b/src/Dodge/Creature/LauncherCrit.hs index 3eb0538e8..390fac4ab 100644 --- a/src/Dodge/Creature/LauncherCrit.hs +++ b/src/Dodge/Creature/LauncherCrit.hs @@ -36,7 +36,7 @@ launcherCrit = defaultCreature , const reloadOverride , targetYouWhenCognizant , const $ overrideInternal - (\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr) + (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) (crActionPlan . crStrategy .~ WatchAndWait) ] , _crActionPlan = ActionPlan diff --git a/src/Dodge/Creature/LtAutoCrit.hs b/src/Dodge/Creature/LtAutoCrit.hs index 5f39d7515..34c850bb6 100644 --- a/src/Dodge/Creature/LtAutoCrit.hs +++ b/src/Dodge/Creature/LtAutoCrit.hs @@ -29,7 +29,7 @@ ltAutoCrit = defaultCreature [ (crHasTargetLOS, \_ _ -> StrategyActions (ShootAt 0) [DoActionIf (const $ not . crIsAiming) drawWeapon ,DoActionThen - (DoActionWhile crHasTargetLOS' $ ArbitraryAction chooseMovement) + (DoActionWhile crHasTargetLOS $ ArbitraryAction chooseMovement) (DoImpulses [ChangeStrategy WatchAndWait]) ] ) @@ -40,7 +40,7 @@ ltAutoCrit = defaultCreature , const reloadOverride , targetYouWhenCognizant , const $ overrideInternal - (\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr) + (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) (crActionPlan . crStrategy .~ WatchAndWait) ] , _crActionPlan = ActionPlan diff --git a/src/Dodge/Creature/PistolCrit.hs b/src/Dodge/Creature/PistolCrit.hs index e710f393b..884324810 100644 --- a/src/Dodge/Creature/PistolCrit.hs +++ b/src/Dodge/Creature/PistolCrit.hs @@ -39,7 +39,7 @@ pistolCrit = defaultCreature , const reloadOverride , targetYouWhenCognizant , const $ overrideInternal - (\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr) + (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) (crActionPlan . crStrategy .~ WatchAndWait) ] , _crActionPlan = ActionPlan diff --git a/src/Dodge/Creature/SentinelAI.hs b/src/Dodge/Creature/SentinelAI.hs index d0a556588..06686285c 100644 --- a/src/Dodge/Creature/SentinelAI.hs +++ b/src/Dodge/Creature/SentinelAI.hs @@ -61,7 +61,7 @@ sentinelFireType f = chainCreatureUpdates , const reloadOverride , targetYouWhenCognizant , const $ overrideInternal - (\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr) + (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) (crActionPlan . crStrategy .~ WatchAndWait) ] where @@ -84,7 +84,7 @@ sentinelExtraWatchUpdate xs = chainCreatureUpdates , const doStrategyActions , targetYouWhenCognizant , const $ overrideInternal - (\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr) + (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) (crActionPlan . crStrategy .~ WatchAndWait) ] diff --git a/src/Dodge/Creature/SpreadGunCrit.hs b/src/Dodge/Creature/SpreadGunCrit.hs index 2cd26b6f8..24b720051 100644 --- a/src/Dodge/Creature/SpreadGunCrit.hs +++ b/src/Dodge/Creature/SpreadGunCrit.hs @@ -31,7 +31,7 @@ spreadGunCrit = defaultCreature [ (crHasTargetLOS, \_ _ -> StrategyActions (ShootAt 0) [DoActionIf (const $ not . crIsAiming) drawWeapon ,DoActionThen - (DoActionWhile crHasTargetLOS' $ ArbitraryAction chooseMovement) + (DoActionWhile crHasTargetLOS $ ArbitraryAction chooseMovement) (DoImpulses [ChangeStrategy WatchAndWait]) ] ) @@ -42,7 +42,7 @@ spreadGunCrit = defaultCreature ,const reloadOverride ,targetYouWhenCognizant ,const $ overrideInternal - (\cr -> crHasTarget' cr && crStratConMatches' (GetTo (V2 0 0)) cr) + (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) (\ cr -> cr & crActionPlan . crStrategy .~ WatchAndWait) ] , _crActionPlan = ActionPlan diff --git a/src/Dodge/Creature/Test.hs b/src/Dodge/Creature/Test.hs index 4f1a3072a..67023c87e 100644 --- a/src/Dodge/Creature/Test.hs +++ b/src/Dodge/Creature/Test.hs @@ -15,7 +15,6 @@ import Data.List (find) import Data.Maybe import qualified Data.IntMap.Strict as IM import Control.Lens -import Control.Monad.Reader andTest :: (a -> Bool) -> (a -> Bool) -> a -> Bool andTest f g a = f a && g a @@ -28,63 +27,30 @@ crIsReloading cr = case cr ^? crInv . ix (_crInvSel cr) . itConsumption . reload Just t -> t > 0 _ -> False -crIsReloadingR :: Creature -> Reader World Bool -crIsReloadingR cr = return $ case cr ^? crInv . ix (_crInvSel cr) . itConsumption . reloadState . _Just' of - Just t -> t > 0 - _ -> False - crCanSeeCr :: Creature -> (World, Creature) -> Bool crCanSeeCr tcr (w,cr) = hasLOS (_crPos cr) (_crPos tcr) w -crCanSeeR :: Creature -> Creature -> Reader World Bool -crCanSeeR tcr cr = reader $ \w -> hasLOS (_crPos cr) (_crPos tcr) w - crCanSeeCID :: Int -> (World, Creature) -> Bool crCanSeeCID cid (w,cr) = hasLOS (_crPos cr) (_crPos $ _creatures w IM.! cid) w -crCanSeeCIDR :: Int -> Creature -> Reader World Bool -crCanSeeCIDR cid cr = reader $ \w -> hasLOS (_crPos cr) (_crPos $ _creatures w IM.! cid) w - crIsAiming :: Creature -> Bool crIsAiming cr = _posture (_crStance cr) == Aiming -crHasTarget' :: Creature -> Bool -crHasTarget' cr = isJust $ cr ^? crIntention . targetCr . _Just - +crHasTarget :: Creature -> Bool +crHasTarget cr = isJust $ cr ^? crIntention . targetCr . _Just crHasTargetLOS :: World -> Creature -> Bool crHasTargetLOS w cr = case cr ^? crIntention . targetCr . _Just of Just i -> crCanSeeCr i (w,cr) Nothing -> False -crHasTargetLOS' :: World -> Creature -> Bool -crHasTargetLOS' w cr = case cr ^? crIntention . targetCr . _Just of - Just i -> crCanSeeCr i (w,cr) - Nothing -> False - -crHasTargetLOSR :: Creature -> Reader World Bool -crHasTargetLOSR cr = reader $ \w -> case cr ^? crIntention . targetCr . _Just of - Just i -> crCanSeeCr i (w,cr) - Nothing -> False - crSafeDistFromTarg :: Float -> Creature -> Bool crSafeDistFromTarg d cr = case cr ^? crIntention . targetCr . _Just of Just tcr -> dist (_crPos cr) (_crPos tcr) > d Nothing -> True -crSafeDistFromTargR :: Float -> Creature -> Reader World Bool -crSafeDistFromTargR d cr = return $ case cr ^? crIntention . targetCr . _Just of - Just tcr -> dist (_crPos cr) (_crPos tcr) > d - Nothing -> True - -crStratConMatches :: Strategy -> (World,Creature) -> Bool -crStratConMatches strat (_,cr) = eqConstr strat (_crStrategy $ _crActionPlan cr) - -crStratConMatches' :: Strategy -> Creature -> Bool -crStratConMatches' strat cr = eqConstr strat (_crStrategy $ _crActionPlan cr) - -crStratConMatchesR :: Strategy -> Creature -> Reader World Bool -crStratConMatchesR strat cr = return $ eqConstr strat (_crStrategy $ _crActionPlan cr) +crStratConMatches :: Strategy -> Creature -> Bool +crStratConMatches strat cr = eqConstr strat (_crStrategy $ _crActionPlan cr) crAwayFromPost :: Creature -> Bool crAwayFromPost cr = case find sentinelGoal $ _crGoal $ _crActionPlan cr of @@ -94,14 +60,6 @@ crAwayFromPost cr = case find sentinelGoal $ _crGoal $ _crActionPlan cr of sentinelGoal (SentinelAt _ _) = True sentinelGoal _ = False -crAwayFromPostR :: Creature -> Reader World Bool -crAwayFromPostR cr = return $ case find sentinelGoal $ _crGoal $ _crActionPlan cr of - Just (SentinelAt p _) -> dist p (_crPos cr) > 15 - _ -> False - where - sentinelGoal (SentinelAt _ _) = True - sentinelGoal _ = False - crHasAmmo :: Creature -> Bool crHasAmmo cr = maybe False (> 0) $ cr ^? crInv . ix (_crInvSel cr) . itConsumption . ammoLoaded