Files
loop/src/Dodge/Data/Item.hs
T
2023-01-05 11:01:12 +00:00

55 lines
1.4 KiB
Haskell

--{-# LANGUAGE DeriveGeneric #-}
--{-# LANGUAGE DeriveAnyClass #-}
{-# 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.Tweak,
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 Color
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Dodge.Data.Item.Combine
import Dodge.Data.Item.Effect
import Dodge.Data.Item.Scope
import Dodge.Data.Item.CurseStatus
import Dodge.Data.Item.Misc
import Dodge.Data.Item.Params
import Dodge.Data.Item.Tweak
import Dodge.Data.Item.Use
import Dodge.Data.Item.Location
data Item = Item
{ _itUse :: ItemUse
, _itType :: ItemType
, _itID :: Int
, _itLocation :: ItemLocation
, _itIsHeld :: Bool
, _itEffect :: ItEffect
, _itInvSize :: Float
, _itInvColor :: Color
, _itDimension :: ItemDimension
, _itCurseStatus :: CurseStatus
, _itTweaks :: ItemTweaks
, _itScope :: Scope
, _itParams :: ItemParams
}
--deriving (Eq, Show, Read) --Generic, Flat)
_itUseAimStance :: Item -> AimStance
_itUseAimStance = _aimStance . _heldAim . _itUse
makeLenses ''Item
deriveJSON defaultOptions ''Item