26 lines
623 B
Haskell
26 lines
623 B
Haskell
{-# LANGUAGE StrictData #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
|
|
module Dodge.Data.PlasmaBall (module Dodge.Data.PlasmaBall) where
|
|
|
|
import Dodge.Data.Damage
|
|
import Control.Lens
|
|
import Data.Aeson
|
|
import Data.Aeson.TH
|
|
import Geometry.Data
|
|
|
|
data PlasmaBall = PBall
|
|
{ _pbType :: PlasmaBallType
|
|
, _pbVel :: Point2
|
|
, _pbPos :: Point2
|
|
, _pbOrigin :: DamageOrigin
|
|
}
|
|
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
|
|
|
data PlasmaBallType = DefaultPlasma
|
|
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
|
|
|
makeLenses ''PlasmaBall
|
|
deriveJSON defaultOptions ''PlasmaBallType
|
|
deriveJSON defaultOptions ''PlasmaBall
|