Implementation of creature update using endofunctor monoid

This commit is contained in:
jgk
2021-08-18 00:59:35 +02:00
parent 5971fae5ec
commit cfb27d4a76
4 changed files with 18 additions and 7 deletions
+3 -1
View File
@@ -30,9 +30,11 @@ import Control.Monad.State
import System.Random
--import qualified Data.Set as S
--import qualified Data.Map as M
import Data.Monoid
type CRUpdate = World -> (World -> World,StdGen) -> Creature -> ((World -> World,StdGen), Maybe Creature)
meleeCooldown :: CRUpdate -> CRUpdate
meleeCooldown u w (f,g) cr = u w (f,g) $ cr & crMeleeCooldown . _Just %~ (max 0 . (\x -> x - 1))
-- | The movement is updated before the ai in order to correctly set the oldpos.