module Dodge.Gas where import Dodge.Data.World import Dodge.Flame import Dodge.WorldEvent import Geometry createGas :: GasCreate -> Float -> Point2 -> Float -> Creature -> World -> World createGas gc = case gc of CreatePoisonGas -> aGasCloud CreateFlame -> aFlame aGasCloud :: Float -> Point2 -> Float -> Creature -> World -> World aGasCloud pressure pos dir cr = makeGasCloud pos $ (_crPos cr -.- _crOldPos cr) +.+ pressure *.* unitVectorAtAngle dir aFlame :: Float -> Point2 -> Float -> Creature -> World -> World aFlame pressure pos dir cr = makeFlame pos vel where --w & instantParticles .:~ aFlameParticle t pos vel Nothing -- (Just $ _crID cr) -- (t,_) = randomR (99,101) (_randGen w) vel = (_crPos cr -.- _crOldPos cr) +.+ pressure *.* unitVectorAtAngle dir