Refactor bullet hit effect towards penetrating bullets
This commit is contained in:
@@ -908,7 +908,7 @@ moveFlame rotd w pt =
|
||||
$ over worldEvents ((.) $ lowLightRadAt orange 0.05 8 50 ep)
|
||||
damcrs
|
||||
, mvPt')
|
||||
(thing@(p,(E3x2 wl)):_) -> (hiteff thing damcrs, rfl wl p)
|
||||
(thing@(p,(E3x2 wl)):_) -> (fst $ hiteff [thing] damcrs, rfl wl p)
|
||||
_ -> (soundFrom Flame fireSound 2 500
|
||||
-- adding reflective glare is too intensive for this laptop
|
||||
$ over worldEvents ((.) $ lowLightRadAt orange 0.05 8 50 ep)
|
||||
@@ -923,7 +923,7 @@ moveFlame rotd w pt =
|
||||
mvPt' = Just $ pt {_btTimer' = time - 1, _btPos' = ep, _ptPict' = thepic ep
|
||||
, _btPassThrough' = Nothing
|
||||
,_btVel' = 0.7 *.* vel}
|
||||
damcrs = foldr ($) w $ map (\cr -> hiteff (ep,E3x1 cr)) $ filter closeCrs
|
||||
damcrs = foldr ($) w $ map (\cr -> fst . hiteff [(ep,E3x1 cr)]) $ filter closeCrs
|
||||
$ IM.elems $ _creatures w
|
||||
closeCrs cr = dist ep (_crPos cr)
|
||||
< _crRad cr + 10 - min 9 (max 0 (fromIntegral time - 80))
|
||||
|
||||
@@ -217,14 +217,14 @@ hvBulHitWall' bt p x w = damageBlocks x
|
||||
bulHitFF' :: Particle' -> Point2 -> ForceField -> World -> World
|
||||
bulHitFF' _ _ _ = id
|
||||
|
||||
bulletEffect' :: HitEffect'
|
||||
bulletEffect' :: HitEffect
|
||||
bulletEffect' = threeEff' bulHitCr' bulHitWall' bulHitFF'
|
||||
|
||||
bulletParticleSideEffect :: Particle' -> HitEffect'
|
||||
bulletParticleSideEffect :: Particle' -> HitEffect
|
||||
bulletParticleSideEffect pt = threeEff' mkPt mkPt noEff
|
||||
where mkPt _ p _ = over particles' ((:) pt {_btTrail' = [p]})
|
||||
|
||||
aGenBulAt' :: Maybe Int -> Color -> Point2 -> Point2 -> HitEffect' -> Float -> Particle'
|
||||
aGenBulAt' :: Maybe Int -> Color -> Point2 -> Point2 -> HitEffect -> Float -> Particle'
|
||||
aGenBulAt' maycid col pos vel hiteff width = Bul'
|
||||
{ _ptPict' = blank
|
||||
, _ptUpdate' = mvGenBullet'
|
||||
@@ -237,7 +237,7 @@ aGenBulAt' maycid col pos vel hiteff width = Bul'
|
||||
, _btHitEffect' = hiteff
|
||||
}
|
||||
|
||||
aCurveBulAt :: Maybe Int -> Color -> Point2 -> Point2 -> Point2 -> HitEffect' -> Float -> Particle'
|
||||
aCurveBulAt :: Maybe Int -> Color -> Point2 -> Point2 -> Point2 -> HitEffect -> Float -> Particle'
|
||||
aCurveBulAt maycid col pos control targ hiteff width = Bul'
|
||||
{ _ptPict' = blank
|
||||
, _ptUpdate' = mvBulletTrajectory f
|
||||
|
||||
@@ -109,7 +109,7 @@ withRandomDir acc f cid w = over (creatures . ix cid . crDir) (\d -> d - a)
|
||||
w
|
||||
where (a, g) = randomR (-acc,acc) $ _randGen w
|
||||
|
||||
withVelWthHiteff :: Point2 -> Float -> HitEffect' -> Int -> World -> World
|
||||
withVelWthHiteff :: Point2 -> Float -> HitEffect -> Int -> World -> World
|
||||
withVelWthHiteff vel width hiteff cid w
|
||||
= over particles' ((:) newbul)
|
||||
-- . over tempLightSources ((:) (tLightAt 4 pos))
|
||||
@@ -157,7 +157,7 @@ torqueAfter torque feff cid w
|
||||
rotateScope w = w & creatures . ix 0 . crInv . ix (_crInvSel (_creatures w IM.! 0))
|
||||
. itAttachment . _Just . scopePos %~ rotateV rot
|
||||
|
||||
spreadNumVelWthHiteff' :: Float -> Int -> Point2 -> Float -> HitEffect' -> Int -> World -> World
|
||||
spreadNumVelWthHiteff' :: Float -> Int -> Point2 -> Float -> HitEffect -> Int -> World -> World
|
||||
spreadNumVelWthHiteff' spread num vel wth eff cid w
|
||||
= over particles' (newbuls ++)
|
||||
$ flip (foldr muzFlareAt) poss
|
||||
@@ -175,7 +175,7 @@ spreadNumVelWthHiteff' spread num vel wth eff cid w
|
||||
-- $ randomRs (0,spreadGunSpread/5) (_randGen w)
|
||||
colids = take num $ randomRs (0,11) (_randGen w)
|
||||
|
||||
numVelWthHitEff' :: Int -> Point2 -> Float -> HitEffect' -> Int -> World -> World
|
||||
numVelWthHitEff' :: Int -> Point2 -> Float -> HitEffect -> Int -> World -> World
|
||||
numVelWthHitEff' num vel wth eff cid w
|
||||
= over particles' (newbuls ++)
|
||||
$ flip (foldr muzFlareAt) (take num poss)
|
||||
|
||||
Reference in New Issue
Block a user