33 lines
720 B
Haskell
33 lines
720 B
Haskell
{-# 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 = []
|