Files
loop/src/Dodge/Wall/Dust.hs
T

25 lines
631 B
Haskell

module Dodge.Wall.Dust where
import Data.Foldable
import Control.Lens
import Dodge.Data.World
import Dodge.WorldEvent.Cloud
import Geometry
import RandomHelp
wlDustAt :: Wall -> Point2 -> World -> World
wlDustAt wl = smokeCloudAt dustcol 20 200 1 . addZ 20
where
dustcol = _wlColor wl & _4 .~ 1
muchWlDustAt :: Wall -> Point2 -> World -> World
muchWlDustAt wl p = flip (foldl' f) [10, 20 .. 100]
where
f w h =
w
& smokeCloudAt dustcol 20 200 1 (addZ h (p +.+ off))
& randGen .~ g
where
(off, g) = runState (randInCirc 1) (_randGen w)
dustcol = _wlColor wl & _4 .~ 1