{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Data.Laser where import Color import Geometry.Data import Control.Lens data LaserType = DamageLaser {_laserTypeDamage :: Int} | TargetLaser deriving (Eq,Ord,Show,Read) data LaserStart = LaserStart { _lpPhaseV :: Float , _lpPos :: Point2 , _lpDir :: Float , _lpColor :: Color , _lpType :: LaserType } deriving (Eq,Ord,Show,Read) data Laser = Laser { _laColor :: Color , _laPoints :: [Point2] , _laType :: LaserType } deriving (Eq,Ord,Show,Read) makeLenses ''Laser makeLenses ''LaserStart makeLenses ''LaserType