{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedLists #-} module Item ( Item(..) , Key , Type(..) , dex ) where import Data.Aeson (ToJSON(..), FromJSON(..), genericToEncoding, genericParseJSON, defaultOptions) import Data.Vector (Vector) import GHC.Generics (Generic) import qualified Pokemon (T) data Type = Hold | Transform (Pokemon.T -> Pokemon.T) | Special data Item = Item { name :: String , skin :: FilePath , type_ :: Type , inBattle :: Bool } newtype Key = Key Int deriving (Generic) instance ToJSON Key where toEncoding = genericToEncoding defaultOptions instance FromJSON Key where parseJSON = genericParseJSON defaultOptions dex :: Vector Item dex = []