Add jitter when receiving damage
This commit is contained in:
@@ -61,12 +61,18 @@ applyIndividualDamage cr w dm = applyDamageEffect dm (_dmEffect dm) cr $ applyIn
|
||||
applyIndividualDamage' :: Creature -> World -> Damage -> World
|
||||
applyIndividualDamage' cr w dm = case _dmType dm of
|
||||
Piercing -> applyPiercingDamage cr dm w
|
||||
_ -> w & creatures . ix (_crID cr) . crHP -~ _dmAmount dm
|
||||
_ -> w & damageHP cr (_dmAmount dm)
|
||||
|
||||
applyPiercingDamage :: Creature -> Damage -> World -> World
|
||||
applyPiercingDamage cr dm
|
||||
| crIsArmouredFrom p cr = colSpark 8 (brightX 10 1.5 orange) p1 (argV (p1 -.- p))
|
||||
| otherwise = creatures . ix (_crID cr) . crHP -~ _dmAmount dm
|
||||
| otherwise = damageHP cr $ _dmAmount dm
|
||||
where
|
||||
p = _dmAt dm
|
||||
p1 = p +.+ 2 *.* squashNormalizeV (p -.- _crPos cr)
|
||||
|
||||
damageHP :: Creature -> Int -> World -> World
|
||||
damageHP cr x = creatures . ix (_crID cr) %~
|
||||
( (crHP -~ x)
|
||||
. (crPastDamage +~ x)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user