Improve debris
This commit is contained in:
@@ -17,13 +17,13 @@ damageWall dt wl = case _wlStructure wl of
|
||||
|
||||
damageBlockWith :: Damage -> Block -> Block
|
||||
damageBlockWith dm = case _dmType dm of
|
||||
PIERCING -> blHPs %~ reduceHead dam
|
||||
BLUNT -> blHPs %~ reduceHead dam
|
||||
CUTTING -> blHPs %~ reduceHead dam
|
||||
EXPLOSIVE -> blHPs %~ reduceHead dam
|
||||
CONCUSSIVE -> blHPs %~ reduceHead dam
|
||||
SHATTERING -> blHPs %~ reduceHead dam
|
||||
CRUSHING -> blHPs %~ reduceHead (dam `div` 4)
|
||||
PIERCING -> blHP -~ dam
|
||||
BLUNT -> blHP -~ dam
|
||||
CUTTING -> blHP -~ dam
|
||||
EXPLOSIVE -> blHP -~ dam
|
||||
CONCUSSIVE -> blHP -~ dam
|
||||
SHATTERING -> blHP -~ dam
|
||||
CRUSHING -> blHP -~ (dam `div` 4)
|
||||
LASERING -> id
|
||||
SPARKING -> id
|
||||
FLAMING -> id
|
||||
@@ -35,14 +35,7 @@ damageBlockWith dm = case _dmType dm of
|
||||
where
|
||||
dam = _dmAmount dm
|
||||
|
||||
reduceHead :: Int -> [Int] -> [Int]
|
||||
reduceHead y (x:xs) = x-y:xs
|
||||
reduceHead _ _ = []
|
||||
|
||||
damageBlocksBy :: Int -> Wall -> World -> World
|
||||
damageBlocksBy x wl = case wl ^? wlStructure . wlStBlock of
|
||||
Just blid -> blocks . ix blid . blHPs %~ reduceHeadBy x
|
||||
Just blid -> blocks . ix blid . blHP -~ x
|
||||
Nothing -> id
|
||||
where
|
||||
reduceHeadBy y (z:zs) = z - y : zs
|
||||
reduceHeadBy _ [] = []
|
||||
|
||||
Reference in New Issue
Block a user