Allow debris to do damage
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user