53 lines
1.5 KiB
Haskell
53 lines
1.5 KiB
Haskell
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE DeriveAnyClass #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
|
|
module Dodge.Data.Item.Params where
|
|
|
|
import Control.Lens
|
|
import Data.Aeson
|
|
import Data.Aeson.TH
|
|
import Dodge.Data.ArcStep
|
|
|
|
data ItemParams
|
|
= NoParams
|
|
| MagShieldParams
|
|
{_magShieldMgMIX :: Maybe Int}
|
|
| ShrinkGunParams
|
|
{_shrinkGunStatus :: ShrinkGunStatus}
|
|
| FlatShieldParams
|
|
{_flatShieldWlMIX :: Maybe Int}
|
|
| Arcing
|
|
{ _currentArc :: Maybe [ArcStep]
|
|
, _arcSize :: Float
|
|
, _arcNumber :: Int
|
|
, _newArcStep :: NextArcStep --ItemParams -> World -> ArcStep -> State StdGen (Maybe ArcStep)
|
|
, _previousArcEffect :: PreviousArcEffect
|
|
}
|
|
| ParamMID {_paramMID :: Maybe Int}
|
|
| BoostPropIX {_boostPropIX :: Maybe Int}
|
|
|
|
data ShrinkGunStatus = FullSize | Shrunk
|
|
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data PreviousArcEffect = NoPreviousArcEffect | PerturbTillBreakPreviousArc
|
|
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
--data GunBarrels
|
|
---- = MultiBarrel
|
|
---- { _brlSpread :: BarrelSpread
|
|
---- , _brlNum :: Int
|
|
---- , _brlInaccuracy :: Float
|
|
---- }
|
|
-- = BarrelList
|
|
-- { _brlList :: [GunBarrel]
|
|
-- }
|
|
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
|
|
makeLenses ''ItemParams
|
|
deriveJSON defaultOptions ''ShrinkGunStatus
|
|
deriveJSON defaultOptions ''PreviousArcEffect
|
|
deriveJSON defaultOptions ''ItemParams
|