Cleanup
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module Dodge.Creature.Impulse
|
||||
( impulsiveAIR
|
||||
, impulsiveAI
|
||||
, impulsiveAI'
|
||||
) where
|
||||
import Dodge.Data
|
||||
import Dodge.Creature.Vocalization
|
||||
@@ -20,31 +21,29 @@ impulsiveAIR
|
||||
-> Creature
|
||||
-> World
|
||||
-> (World -> World , Maybe Creature)
|
||||
impulsiveAIR impf cr w = bimap id Just $ followImpulses w . ($ w) . runReader $ impf cr
|
||||
impulsiveAIR impf cr w = second Just $ followImpulses w . ($ w) . runReader $ impf cr
|
||||
|
||||
impulsiveAI :: (World -> Creature -> Creature)
|
||||
-> Creature
|
||||
-> World
|
||||
-> (World -> World , Maybe Creature)
|
||||
impulsiveAI impf cr w = bimap id Just $ followImpulses w $ impf w cr
|
||||
impulsiveAI impf cr w = second Just $ followImpulses w $ impf w cr
|
||||
|
||||
followImpulses
|
||||
:: World
|
||||
-> Creature
|
||||
-> (World -> World, Creature)
|
||||
followImpulses w cr
|
||||
= foldr
|
||||
foldf
|
||||
(id, cr)
|
||||
(_crImpulse $ _crActionPlan cr)
|
||||
impulsiveAI' :: (World -> Creature -> Creature)
|
||||
-> Creature
|
||||
-> World
|
||||
-> (World -> World , Creature)
|
||||
impulsiveAI' impf cr w = followImpulses w $ impf w cr
|
||||
|
||||
followImpulses :: World -> Creature -> (World -> World, Creature)
|
||||
followImpulses w cr = foldr
|
||||
foldf
|
||||
(id, cr)
|
||||
(_crImpulse $ _crActionPlan cr)
|
||||
where
|
||||
foldf imp (f,cr') = first ( . f) $ followImpulse cr' w imp
|
||||
|
||||
followImpulse
|
||||
:: Creature
|
||||
-> World
|
||||
-> Impulse
|
||||
-> (World -> World , Creature)
|
||||
followImpulse :: Creature -> World -> Impulse -> (World -> World , Creature)
|
||||
followImpulse cr w imp = case imp of
|
||||
Bark sid -> (soundStart (CrMouth cid) cpos sid Nothing, resetCrVocCoolDown cr)
|
||||
Move p -> (id, crMvBy p cr)
|
||||
|
||||
Reference in New Issue
Block a user