14 lines
332 B
Haskell
14 lines
332 B
Haskell
module Dodge.WorldEvent.DamageBlock
|
|
where
|
|
import Dodge.Data
|
|
|
|
import Control.Lens
|
|
|
|
damageBlocksBy :: Int -> Wall -> World -> World
|
|
damageBlocksBy x wl = case _wlBlockID wl of
|
|
Just blid -> blocks . ix blid . blHPs %~ reduceHeadBy x
|
|
Nothing -> id
|
|
where
|
|
reduceHeadBy y (z:zs) = z - y : zs
|
|
reduceHeadBy _ [] = []
|