Files
loop/src/Dodge/Cuse.hs
T
2024-09-22 14:29:02 +01:00

17 lines
484 B
Haskell

module Dodge.Cuse where
import Dodge.Inventory
import Control.Lens
import Dodge.Data.World
import Data.Maybe
useC :: Cuse -> Item -> Creature -> World -> World
useC cu itm cr = fromMaybe id $ do
i <- itm ^? itLocation . ilInvID
return $ rmInvItem (_crID cr) i . useC' cu itm cr
useC' :: Cuse -> Item -> Creature -> World -> World
useC' cu = case cu of
CDoNothing -> const $ const id
CHeal x -> const $ \cr -> cWorld . lWorld . creatures . ix (_crID cr) . crHP +~ x