From 1507b8d3edc4c9f0f2837e9554dba9ce4a4e560d Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 27 Dec 2024 23:44:39 +0000 Subject: [PATCH] Tweak explosions --- src/Dodge/Projectile/Update.hs | 3 ++- src/Dodge/WorldEvent/Explosion.hs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 441e61cc6..45ac38ce8 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -118,7 +118,8 @@ doThrust pj smoke w = & randGen .~ g & cWorld . lWorld . projectiles . ix i . prjVel %~ (\v -> accel +.+ frict *.* v) & soundContinue (ShellSound i) newPos missileLaunchS (Just 1) - & makeFlamelet (oldPos -.- vel) (vel +.+ rotateV (pi + sparkD) accel) 3 10 +-- & makeFlamelet (oldPos -.- vel) (vel + 2 * rotateV (pi + sparkD) accel) 3 10 + & makeFlamelet oldPos (vel +.+ rotateV (pi + sparkD) accel) 3 10 & shellTrailCloud lifetime trailfadetime diff --git a/src/Dodge/WorldEvent/Explosion.hs b/src/Dodge/WorldEvent/Explosion.hs index 5d61439a6..51829a944 100644 --- a/src/Dodge/WorldEvent/Explosion.hs +++ b/src/Dodge/WorldEvent/Explosion.hs @@ -80,10 +80,11 @@ makeExplosionAt p vel w = where fVs = replicateM 100 (randInCirc 1) & evalState $ _randGen w fPs' = replicateM 100 (randInCirc 5) & evalState $ _randGen w + fdamps = replicateM 100 (state $ randomR (0,1)) & evalState $ _randGen w inversePushOut v = (15 - magV v) * 0.01 *.* v fVs' = zipWith (+.+) fVs $ map inversePushOut fPs' sizes = randomRs (2, 9) $ _randGen w times = randomRs (15, 20) $ _randGen w - mF q v size time = makeFlamelet (q - (2*v + 2* vel)) (v + vel) size time - newFs = zipWith3 (mF p) (zipWith (+) fPs' (fmap (3 *.*) fVs')) sizes times + mF q v damp size time = makeFlamelet (q - (2*v + 2* vel)) (v + damp *.* vel) size time + newFs = zipWith4 (mF p) (zipWith (+) fPs' (fmap (3 *.*) fVs')) fdamps sizes times addFlames w' = foldl' (flip ($)) w' newFs