Add squash when receiving blunt damage
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user