LambdaHack-0.5.0.0: A game engine library for roguelike dungeon crawlers

Safe HaskellNone
LanguageHaskell2010

Game.LambdaHack.Common.ContentDef

Description

A game requires the engine provided by the library, perhaps customized, and game content, defined completely afresh for the particular game. The general type of the content is ContentDef and it has instances for all content kinds, such as items kinds (Game.LambdaHack.Content.ItemKind). The possible kinds are fixed in the library and all defined in the same directory. On the other hand, game content, that is all elements of ContentDef instances, are defined in a directory of the game code proper, with names corresponding to their kinds.

Synopsis

Documentation

data ContentDef a Source

The general type of a particular game content, e.g., item kinds.

Constructors

ContentDef 

Fields

getSymbol :: a -> Char

symbol, e.g., to print on the map

getName :: a -> Text

name, e.g., to show to the player

getFreq :: a -> Freqs a

frequency within groups

validateSingle :: a -> [Text]

validate a content item and list all offences

validateAll :: [a] -> [Text]

validate the whole defined content of this type and list all offences

content :: ![a]

all the defined content of this type