{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.PulseLaser where import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry.Data data PulseLaser = PulseLaser { _pzPhaseV :: Float , _pzPos :: Point2 , _pzDir :: Float , _pzDamage :: Int , _pzTimer :: Int } deriving (Eq, Ord, Show, Read) --Generic, Flat) data PulseBall = PulseBall { _pbVel :: Point2 , _pbPos :: Point2 , _pbTimer :: Int , _pbID :: Int } deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''PulseLaser makeLenses ''PulseBall deriveJSON defaultOptions ''PulseLaser deriveJSON defaultOptions ''PulseBall