{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.Item ( module Dodge.Data.Item, module Dodge.Data.Item.Effect, module Dodge.Data.Item.Misc, module Dodge.Data.Item.Params, module Dodge.Data.Item.Use, module Dodge.Data.Item.CurseStatus, module Dodge.Data.Item.Scope, module Dodge.Data.Item.Combine, module Dodge.Data.Item.Location, ) where import Control.Lens import Data.Aeson import Data.Aeson.TH import Dodge.Data.Item.Combine import Dodge.Data.Item.CurseStatus import Dodge.Data.Item.Effect import Dodge.Data.Item.Location import Dodge.Data.Item.Misc import Dodge.Data.Item.Params import Dodge.Data.Item.Scope import Dodge.Data.Item.Use import NewInt data ItID = ItID deriving (Eq, Ord, Show, Read) data Item = Item { _itUse :: ItemUse , _itType :: ItemType , _itID :: NewInt ItmInt , _itLocation :: ItemLocation , _itEffect :: ItEffect , _itInvSize :: Int , _itDimension :: ItemDimension , _itCurseStatus :: CurseStatus , _itParams :: ItemParams } makeLenses ''Item deriveJSON defaultOptions ''ItID deriveJSON defaultOptions ''Item