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

Safe HaskellNone
LanguageHaskell2010

Game.LambdaHack.Content.RuleKind

Description

The type of game rule sets and assorted game data.

Synopsis

Documentation

data RuleKind Source #

The type of game rule sets and assorted game data.

For now the rules are immutable througout the game, so there is no type Rule to hold any changing parameters, just RuleKind for the fixed set. However, in the future, if the rules can get changed during gameplay based on data mining of player behaviour, we may add such a type and then RuleKind will become just a starting template, analogously as for the other content.

The raccessible field holds extra conditions that have to be met for a tile to be accessible, on top of being an open tile (or openable, in some contexts). The raccessibleDoor field contains yet additional conditions concerning tiles that are doors, whether open or closed. Precondition: the two positions are next to each other. We assume the predicate is symmetric.

Constructors

RuleKind 

Fields

Instances

Show RuleKind Source #

A dummy instance of the Show class, to satisfy general requirments about content. We won't have many rule sets and they contain functions, so defining a proper instance is not practical.

data FovMode Source #

Field Of View scanning mode.

Constructors

Shadow

restrictive shadow casting (not symmetric!)

Permissive

permissive FOV

Digital

digital FOV

validateSingleRuleKind :: RuleKind -> [Text] Source #

Catch invalid rule kind definitions. In particular, this validates the ASCII art format (TODO).

validateAllRuleKind :: [RuleKind] -> [Text] Source #

Since we have only one rule kind, the set of rule kinds is always valid.