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