This commit is contained in:
2021-10-31 16:51:54 +00:00
parent e3a8417f07
commit 3efdb9e4f8
5 changed files with 28 additions and 87 deletions
+9 -9
View File
@@ -27,7 +27,7 @@ bulHitCr :: Particle -> Point2 -> Creature -> World -> World
bulHitCr bt p cr w
| crIsArmouredFrom p cr
= createSparkCol 8 colID p1 (argV (p1 -.- p) + d1) . addDamageArmoured $ w
| otherwise = addDamage . makeHitSound $ w
| otherwise = addDamage . bulletHitSound p $ w
where
sp = head $ _btTrail' bt
bulVel = _btVel' bt
@@ -35,16 +35,18 @@ bulHitCr bt p cr w
mvDams = [ PushDam 1 $ 2 *.* bulVel ]
addDamage = creatures . ix cid . crState . crDamage %~ ((Piercing 100 sp p ep : mvDams) ++ )
addDamageArmoured = creatures . ix cid . crState . crDamage %~ (mvDams ++)
makeHitSound = soundMultiFrom [CrHitSound 0] p hit1S (Just 10)
cid = _crID cr
(d1,_) = randomR (-0.7,0.7) $ _randGen w
colID = _btColor' bt
p1 = p +.+ 2 *.* safeNormalizeV (p -.- _crPos cr)
bulletHitSound :: Point2 -> World -> World
bulletHitSound p = soundMultiFrom [CrHitSound 0] p hit1S (Just 10)
{- | Bounce off armoured creatures, otherwise do damage. -}
bulBounceArmCr' :: Particle -> Point2 -> Creature -> World -> World
bulBounceArmCr' bt p cr w
| crIsArmouredFrom p cr = addBouncer . addDamageArmoured $ w
| otherwise = addDamage . makeHitSound $ w
| otherwise = addDamage . bulletHitSound p $ w
where
sp = head $ _btTrail' bt
bulVel = _btVel' bt
@@ -52,7 +54,6 @@ bulBounceArmCr' bt p cr w
mvDams = [ PushDam 1 $ 2 *.* bulVel ]
addDamage = creatures . ix cid . crState . crDamage %~ ((Piercing 100 sp p ep : mvDams) ++ )
addDamageArmoured = creatures . ix cid . crState . crDamage %~ (mvDams ++)
makeHitSound = soundMultiFrom [CrHitSound 0] p hit1S (Just 10)
cid = _crID cr
newDir = safeNormalizeV (p -.- _crPos cr)
pOut = p +.+ 2 *.* newDir
@@ -72,7 +73,7 @@ bulPenCr' bt p cr w
]
++
)
$ soundMultiFrom [CrHitSound 0] ep hit1S (Just 10)
$ bulletHitSound ep
$ over worldEvents (addPiercer . )
w
where
@@ -96,7 +97,7 @@ hvBulHitCr bt p cr w
]
++
)
$ soundMultiFrom [CrHitSound 0] ep hit1S (Just 10)
$ bulletHitSound ep
w
where
(d1,_) = randomR (-0.7,0.7) $ _randGen w
@@ -108,7 +109,7 @@ bulIncCr' :: Particle -> Point2 -> Creature -> World -> World
bulIncCr' bt p cr w
= over (creatures . ix cid . crState . crDamage)
( Piercing 60 sp p ep : )
. soundMultiFrom [CrHitSound 0] p hit1S (Just 10)
$ bulletHitSound p
$ incFlamelets
w
where
@@ -122,7 +123,7 @@ bulConCr' :: Particle -> Point2 -> Creature -> World -> World
bulConCr' bt p cr w
= over (creatures . ix cid . crState . crDamage)
( Piercing 60 sp p ep : )
. soundMultiFrom [CrHitSound 0] p hit1S (Just 10)
$ bulletHitSound p
$ mkwave
w
where
@@ -203,4 +204,3 @@ hvBulHitWall bt p x w = damageBlocksBy 5 x $ set randGen g $ foldr ($) w (spark
ds = randomRs (-0.7,0.7) $ _randGen w
ts = randomRs (4,8) $ _randGen w
sparks pos vel = zipWith3 (\t c d -> createSparkCol t c pos (argV vel + d)) ts cs ds