Files
loop/src/Dodge/Data/Laser.hs
T
2026-04-24 20:34:20 +01:00

33 lines
747 B
Haskell

{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Laser where
import Dodge.Data.Damage
import NewInt
import Dodge.Data.Item.Location
--import Color
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Geometry.Data
data LaserType
= DamageLaser {_laserTypeDamage :: Int}
| TargetingLaser {_laserEmmiter :: NewInt ItmInt}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Laser = Laser
{ _lpPhaseV :: Float
, _lpPos :: Point2
, _lpDir :: Float
, _lpType :: LaserType
, _lpOrigin :: DamageOrigin
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Laser
makeLenses ''LaserType
deriveJSON defaultOptions ''LaserType
deriveJSON defaultOptions ''Laser