{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Data.Item ( module Dodge.Data.Item , module Dodge.Data.Item.Misc , module Dodge.Data.Item.Tweak , module Dodge.Data.Item.Params , module Dodge.Data.Item.Use ) where import Control.Lens import Dodge.Data.Item.Misc import Dodge.Data.Item.Tweak import Dodge.Data.Item.Consumption import Dodge.Data.Item.Use import Dodge.Data.Item.Params import Dodge.Data.ItEffect import Dodge.Data.Targeting import Dodge.Item.Data import Dodge.Combine.Data import Dodge.Item.Attachment.Data import Color import qualified IntMapHelp as IM data Item = Item { _itConsumption :: ItemConsumption , _itUse :: ItemUse , _itType :: ItemType , _itAttachment :: ItAttachment , _itID :: Maybe Int , _itPos :: ItemPos , _itIsHeld :: Bool , _itEffect :: ItEffect , _itInvSize :: Float , _itInvColor :: Color , _itTargeting :: Targeting , _itDimension :: ItemDimension , _itCurseStatus :: CurseStatus , _itTweaks :: ItemTweaks , _itScope :: Scope , _itValue :: ItemValue , _itParams :: ItemParams } deriving (Eq,Ord,Show,Read) data ItemTweaks = NoTweaks | Tweakable { _tweakParams :: IM.IntMap TweakParam , _tweakSel :: Int } deriving (Eq,Ord,Show,Read) makeLenses ''Item makeLenses ''ItemTweaks