Files
loop/src/Dodge/Data/Shockwave.hs
T

33 lines
795 B
Haskell

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Shockwave where
import Color
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Geometry.Data
data ShockwaveDirection = OutwardShockwave | InwardShockwave
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Shockwave = Shockwave
{ _swColor :: Color
, _swDirection :: ShockwaveDirection
, _swInvulnerableCrs :: [Int]
, _swPos :: Point2
, _swRad :: Float
, _swDam :: Int
, _swPush :: Float
, _swMaxTime :: Int
, _swTimer :: Int
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Shockwave
deriveJSON defaultOptions ''ShockwaveDirection
deriveJSON defaultOptions ''Shockwave