Files
loop/src/Dodge/Flare.hs
T
2022-07-11 00:34:15 +01:00

31 lines
854 B
Haskell

module Dodge.Flare where
import Dodge.Data.Flare
import LensHelp
import Picture
updateFlare :: Flare -> Maybe Flare
updateFlare rb
| _flareTime rb <= 0 = Nothing
| otherwise = Just $ rb & flareTime -~ 1
drawFlare :: Flare -> Picture
drawFlare fl = case fl of
MuzFlare {} -> drawMuzFlare fl
CircFlare {} -> drawCircFlare fl
drawMuzFlare :: Flare -> Picture
drawMuzFlare pt = setLayer BloomNoZWrite . translate3 tranv $ theShape
where
tranv = _flareTran3 pt
col = _flareColor pt
poly = _flarePoly pt
theShape = color col $ polygon poly
drawCircFlare :: Flare -> Picture
drawCircFlare pt = setLayer BloomNoZWrite . translate3 tranv
$ circleSolidCol (withAlpha 0 0) (withAlpha alphax col) 50
where
col = _flareColor pt
tranv = _flareTran3 pt
alphax = _flareAlpha pt