-- | The type of kinds of weapons and treasure. module Game.LambdaHack.Content.ItemKind ( ItemKind(..), ivalidate ) where import Data.Text (Text) import qualified NLP.Miniutter.English as MU import Game.LambdaHack.Common.Effect import Game.LambdaHack.Common.Flavour import Game.LambdaHack.Common.Misc import Game.LambdaHack.Common.Random -- | Item properties that are fixed for a given kind of items. data ItemKind = ItemKind { isymbol :: !Char -- ^ map symbol , iname :: !Text -- ^ generic name , ifreq :: !Freqs -- ^ frequency within groups , iflavour :: ![Flavour] -- ^ possible flavours , ieffect :: !(Effect RollDeep) -- ^ the effect when activated , icount :: !RollDeep -- ^ created in that quantify , iverbApply :: !MU.Part -- ^ the verb for applying and combat , iverbProject :: !MU.Part -- ^ the verb for projecting , iweight :: !Int -- ^ weight in grams , itoThrow :: !Int -- ^ percentage bonus or malus to throw speed } deriving Show -- No Eq and Ord to make extending it logically sound, see #53 -- | No specific possible problems for the content of this kind, so far, -- so the validation function always returns the empty list of offending kinds. ivalidate :: [ItemKind] -> [ItemKind] ivalidate _ = []