Improve debris

This commit is contained in:
2022-06-16 12:24:09 +01:00
parent fa762c7687
commit aa29e5ddf2
14 changed files with 75 additions and 50 deletions
+8 -15
View File
@@ -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 _ [] = []