game/src/Item.hs

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 = []