LambdaHack-0.2.12: A roguelike game engine in early and active development

Safe HaskellNone

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 hold 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

rsymbol :: !Char

a symbol

rname :: !Text

short description

rfreq :: !Freqs

frequency within groups

raccessible :: !(Maybe (Point -> Point -> Bool))
 
raccessibleDoor :: !(Maybe (Point -> Point -> Bool))
 
rtitle :: !Text

the title of the game

rpathsDataFile :: FilePath -> IO FilePath

the path to data files

rpathsVersion :: !Version

the version of the game

ritemMelee :: ![Char]

symbols of melee weapons

ritemRanged :: ![Char]

ranged weapons and missiles

ritemProject :: ![Char]

symbols of items AI can project

rcfgUIName :: !FilePath

base name of the UI config file

rcfgUIDefault :: !String

the default UI settings config file

rmainMenuArt :: !Text

the ASCII art for the Main Menu

rhumanCommands :: ![(KM, (CmdCategory, HumanCmd))]

default client commands

rfirstDeathEnds :: !Bool

whether first non-spawner actor death ends the game

rfovMode :: !FovMode

FOV calculation mode

rsaveBkpClips :: !Int

game backup is saved that often

rleadLevelClips :: !Int

AI/spawn leader level flipped that often

rscoresFile :: !FilePath

name of the scores file

rsavePrefix :: !String

name of the savefile prefix

Instances

Show RuleKind

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.

validateRuleKind :: [RuleKind] -> [RuleKind]Source

Validates the ASCII art format (TODO).

data FovMode Source

Field Of View scanning mode.

Constructors

Shadow

restrictive shadow casting

Permissive

permissive FOV

Digital !Int

digital FOV with the given radius

Blind

only feeling out adjacent tiles by touch