LambdaHack-0.8.3.0: A game engine library for tactical squad ASCII roguelike dungeon crawlers

Safe HaskellNone
LanguageHaskell2010

Game.LambdaHack.Content.CaveKind

Contents

Description

The type of cave kinds.

Synopsis

Documentation

data CaveKind Source #

Parameters for the generation of dungeon levels. Warning: for efficiency, avoid embedded items in any of the common tiles.

Constructors

CaveKind 

Fields

Instances
Show CaveKind Source # 
Instance details

Defined in Game.LambdaHack.Content.CaveKind

Generic CaveKind Source # 
Instance details

Defined in Game.LambdaHack.Content.CaveKind

Associated Types

type Rep CaveKind :: * -> * #

Methods

from :: CaveKind -> Rep CaveKind x #

to :: Rep CaveKind x -> CaveKind #

NFData CaveKind Source # 
Instance details

Defined in Game.LambdaHack.Content.CaveKind

Methods

rnf :: CaveKind -> () #

type Rep CaveKind Source # 
Instance details

Defined in Game.LambdaHack.Content.CaveKind

type Rep CaveKind = D1 (MetaData "CaveKind" "Game.LambdaHack.Content.CaveKind" "LambdaHack-0.8.3.0-5WMRdylEY9jFLqYScFUab7" False) (C1 (MetaCons "CaveKind" PrefixI True) (((((S1 (MetaSel (Just "csymbol") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Char) :*: S1 (MetaSel (Just "cname") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Text)) :*: (S1 (MetaSel (Just "cfreq") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (Freqs CaveKind)) :*: S1 (MetaSel (Just "cxsize") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 X))) :*: ((S1 (MetaSel (Just "cysize") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Y) :*: S1 (MetaSel (Just "cgrid") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 DiceXY)) :*: (S1 (MetaSel (Just "cminPlaceSize") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 DiceXY) :*: S1 (MetaSel (Just "cmaxPlaceSize") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 DiceXY)))) :*: (((S1 (MetaSel (Just "cdarkChance") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Dice) :*: S1 (MetaSel (Just "cnightChance") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Dice)) :*: (S1 (MetaSel (Just "cauxConnects") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Rational) :*: S1 (MetaSel (Just "cmaxVoid") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Rational))) :*: ((S1 (MetaSel (Just "cminStairDist") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "cextraStairs") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Dice)) :*: (S1 (MetaSel (Just "cdoorChance") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Chance) :*: S1 (MetaSel (Just "copenChance") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Chance))))) :*: ((((S1 (MetaSel (Just "chidden") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "cactorCoeff") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Int)) :*: (S1 (MetaSel (Just "cactorFreq") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (Freqs ItemKind)) :*: S1 (MetaSel (Just "citemNum") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Dice))) :*: ((S1 (MetaSel (Just "citemFreq") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (Freqs ItemKind)) :*: S1 (MetaSel (Just "cplaceFreq") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (Freqs PlaceKind))) :*: (S1 (MetaSel (Just "cpassable") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Bool) :*: S1 (MetaSel (Just "cdefTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind))))) :*: (((S1 (MetaSel (Just "cdarkCorTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind)) :*: S1 (MetaSel (Just "clitCorTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind))) :*: (S1 (MetaSel (Just "cfillerTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind)) :*: S1 (MetaSel (Just "couterFenceTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind)))) :*: ((S1 (MetaSel (Just "clegendDarkTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind)) :*: S1 (MetaSel (Just "clegendLitTile") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (GroupName TileKind))) :*: (S1 (MetaSel (Just "cescapeGroup") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (Maybe (GroupName PlaceKind))) :*: (S1 (MetaSel (Just "cstairFreq") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 (Freqs PlaceKind)) :*: S1 (MetaSel (Just "cdesc") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Text))))))))

Internal operations

validateSingle :: CaveKind -> [Text] Source #

Catch caves with not enough space for all the places. Check the size of the cave descriptions to make sure they fit on screen. Etc.

validateAll :: ContentData ItemKind -> ContentData PlaceKind -> ContentData TileKind -> [CaveKind] -> ContentData CaveKind -> [Text] Source #

Validate all cave kinds. Note that names don't have to be unique: we can have several variants of a cave with a given name.