Allow debris to do damage

This commit is contained in:
2022-06-16 02:46:18 +01:00
parent a7201b8fb6
commit 6d5d651566
6 changed files with 30 additions and 7 deletions
+22 -2
View File
@@ -1,4 +1,8 @@
module Dodge.Prop.Moving where
module Dodge.Prop.Moving
( drawMovingShape
, fallSmallBounceDamage
, fallSmallBounce
) where
import Dodge.Zone
import Dodge.Base
import Dodge.Data
@@ -13,9 +17,25 @@ import LensHelp
import qualified Quaternion as Q
--import Data.List (zip4)
--
fallSmallBounceDamage :: Prop -> World -> World
fallSmallBounceDamage pr w = w
& dodamage
& props . ix (_pjID pr) %~ fallSmallBounce' w
where
p = _prPos pr
v = _pjVel pr
dodamage
| _pjPosZ pr < 25 = creatures %~ fmap dodamage'
| otherwise = id
dodamage' cr
| dist (_crPos cr) p < _crRad cr = cr & crState . crDamage
.:~ Damage CRUSHING (floor . (*10) . max 0 . subtract 5 . abs $ _pjVelZ pr) (p -.- v) p (p +.+ v) NoDamageEffect
| otherwise = cr
fallSmallBounce :: Prop -> World -> World
fallSmallBounce pr w = w & props . ix (_pjID pr) %~ fallSmallBounce' w
fallSmallBounce pr w = w
& props . ix (_pjID pr) %~ fallSmallBounce' w
fallSmallBounce' :: World -> Prop -> Prop
fallSmallBounce' w pr