Add squash when receiving blunt damage

This commit is contained in:
jgk
2021-05-03 16:33:06 +02:00
parent 6e6757499c
commit b826299cbd
5 changed files with 32 additions and 36 deletions
+2 -10
View File
@@ -42,7 +42,7 @@ stateUpdate u w (f,g) cr =
in case u w (f,g'') cr' of
((f',g') , maybeCr) -> ( (invSideEff cr . movementSideEff cr . deathEff . f'
, g')
, fmap (updateReloadCounter . reducePastDamage . doDamage)
, fmap (updateReloadCounter . doDamage)
$ crOrCorpse =<< maybeCr
)
where
@@ -81,7 +81,7 @@ crFriction :: Creature -> Point2 -> Point2
crFriction cr vel = (0,0)
doDamage :: Creature -> Creature
doDamage cr = set (crState . crDamage) [] $ over (crState . crPastDamage) (+ hpLost)
doDamage cr = set (crState . crDamage) [] $ over (crState . crPastDamage) (take 20 . (dams :) )
damagedCr
where
dams = _crDamage $ _crState cr
@@ -93,14 +93,6 @@ doDamage cr = set (crState . crDamage) [] $ over (crState . crPastDamage) (+ hpL
sumDamage :: Creature -> DamageType -> Int -> Int
sumDamage cr dm x = x + _dmAmount dm
reducePastDamage :: Creature -> Creature
reducePastDamage = over (crState . crPastDamage) rdpdam
where rdpdam x | x > 500 = x - 55
| x > 200 = x - 25
| x > 20 = x - 5
| x > 0 = x - 1
| otherwise = 0
movementSideEff :: Creature -> World -> World
movementSideEff cr w
| hasJetPack