Simplify flamelet balls

This commit is contained in:
2025-08-05 08:47:47 +01:00
parent 22dafda9bd
commit 298238d594
5 changed files with 33 additions and 53 deletions
+1 -18
View File
@@ -2,7 +2,6 @@
module Dodge.EnergyBall (
updateEnergyBall,
makeFlashBall,
makeFlamelet,
makeMovingEB,
) where
@@ -22,16 +21,13 @@ import Linear.V3
makeFlamelet :: Point3 -> Point3 -> Float -> Int -> World -> World
makeFlamelet p v s t w =
w
& randGen .~ g
& cWorld . lWorld . energyBalls
.:~ EnergyBall
{ _ebVel = v
, _ebPos = p
, _ebTimer = t
, _ebType = FlameletBall s a
, _ebType = FlameletBall s
}
where
(a, g) = randomR (0, 3) $ _randGen w
updateEnergyBall :: World -> EnergyBall -> (World, Maybe EnergyBall)
updateEnergyBall w eb
@@ -62,16 +58,6 @@ ebEffect eb = case _ebType eb of
soundStart (EBSound (-1)) (eb ^. ebPos . _xy) fireFadeS Nothing
_ -> id
energyBallAt :: EnergyBallType -> Point2 -> World -> World
energyBallAt ebt p =
cWorld . lWorld . energyBalls
.:~ EnergyBall
{ _ebVel = 0
, _ebPos = p `v2z` 20
, _ebTimer = 20
, _ebType = ebt
}
makeMovingEB :: Point2 -> EnergyBallType -> Point2 -> World -> World
makeMovingEB v ebt p =
cWorld . lWorld . energyBalls
@@ -82,9 +68,6 @@ makeMovingEB v ebt p =
, _ebType = ebt
}
makeFlashBall :: Point2 -> World -> World
makeFlashBall = energyBallAt FlashBall
ebFlicker :: EnergyBall -> World -> World
ebFlicker pt
| _ebTimer pt `mod` 7 == 0 =