Cleanup
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
{-# LANGUAGE TupleSections #-}
|
||||
module Dodge.Creature.Impulse
|
||||
( impulsiveAI
|
||||
, impulsiveAI'
|
||||
, followImpulses
|
||||
( impulsiveAI'
|
||||
, followThenClearImpulses
|
||||
, followThenClearImpulses'
|
||||
) where
|
||||
import Dodge.Data
|
||||
import Dodge.Creature.Vocalization
|
||||
@@ -18,6 +15,15 @@ import qualified Data.IntMap.Strict as IM
|
||||
import System.Random
|
||||
import Data.Bifunctor
|
||||
--import Data.Maybe
|
||||
--
|
||||
impulsiveAIBeforeAfter
|
||||
:: (World -> Creature -> Creature)
|
||||
-> (World -> Creature -> Creature)
|
||||
-> Creature -> World -> World
|
||||
impulsiveAIBeforeAfter startup endup cr w = w' & creatures . ix (_crID cr) .~ endup w' cr'
|
||||
where
|
||||
w' = g w
|
||||
(g,cr') = impulsiveAI startup cr w
|
||||
|
||||
impulsiveAI' :: (World -> Creature -> Creature)
|
||||
-> Creature -> World -> World
|
||||
@@ -32,15 +38,9 @@ impulsiveAI
|
||||
-> (World -> World , Creature)
|
||||
impulsiveAI f cr w = followImpulses w $ f w cr
|
||||
|
||||
followThenClearImpulses' :: Creature -> World -> World
|
||||
followThenClearImpulses' cr w = f w & creatures . ix (_crID cr) .~ cr'
|
||||
where
|
||||
(f,cr') = followThenClearImpulses w cr
|
||||
|
||||
followThenClearImpulses :: World -> Creature -> (World -> World, Creature)
|
||||
followThenClearImpulses w = second f . followImpulses w
|
||||
where
|
||||
f = crActionPlan . crImpulse .~ []
|
||||
followThenClearImpulses :: Creature -> World -> World
|
||||
followThenClearImpulses = impulsiveAIBeforeAfter (const id) (const $ crActionPlan . crImpulse .~ [])
|
||||
|
||||
followImpulses :: World -> Creature -> (World -> World, Creature)
|
||||
followImpulses w cr = foldr f (id, cr) (_crImpulse $ _crActionPlan cr)
|
||||
|
||||
Reference in New Issue
Block a user