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

Safe HaskellNone
LanguageHaskell2010

Game.LambdaHack.Content.ModeKind

Contents

Description

The type of kinds of game modes.

Synopsis

Documentation

data ModeKind #

Game mode specification.

Constructors

ModeKind 

Fields

type Caves = IntMap (GroupName CaveKind) #

Requested cave groups for particular levels. The second component is the Escape feature on the level. True means it's represented by <, False, by >.

data Roster #

The specification of players for the game mode.

Constructors

Roster 

Fields

Instances
Show Roster # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Generic Roster # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Associated Types

type Rep Roster :: * -> * #

Methods

from :: Roster -> Rep Roster x #

to :: Rep Roster x -> Roster #

NFData Roster # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

rnf :: Roster -> () #

type Rep Roster # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

type Rep Roster = D1 (MetaData "Roster" "Game.LambdaHack.Content.ModeKind" "LambdaHack-0.8.3.0-1hn0NFDS4ux6qD3ggO7yse" False) (C1 (MetaCons "Roster" PrefixI True) (S1 (MetaSel (Just "rosterList") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 [(Player, [(Int, Dice, GroupName ItemKind)])]) :*: (S1 (MetaSel (Just "rosterEnemy") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 [(Text, Text)]) :*: S1 (MetaSel (Just "rosterAlly") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 [(Text, Text)]))))

data Outcome #

Outcome of a game.

Constructors

Killed

the faction was eliminated

Defeated

the faction lost the game in another way

Camping

game is supended

Conquer

the player won by eliminating all rivals

Escape

the player escaped the dungeon alive

Restart

game is restarted

Instances
Bounded Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Enum Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Eq Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

(==) :: Outcome -> Outcome -> Bool #

(/=) :: Outcome -> Outcome -> Bool #

Ord Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Show Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Generic Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Associated Types

type Rep Outcome :: * -> * #

Methods

from :: Outcome -> Rep Outcome x #

to :: Rep Outcome x -> Outcome #

Binary Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

put :: Outcome -> Put #

get :: Get Outcome #

putList :: [Outcome] -> Put #

NFData Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

rnf :: Outcome -> () #

type Rep Outcome # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

type Rep Outcome = D1 (MetaData "Outcome" "Game.LambdaHack.Content.ModeKind" "LambdaHack-0.8.3.0-1hn0NFDS4ux6qD3ggO7yse" False) ((C1 (MetaCons "Killed" PrefixI False) (U1 :: * -> *) :+: (C1 (MetaCons "Defeated" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "Camping" PrefixI False) (U1 :: * -> *))) :+: (C1 (MetaCons "Conquer" PrefixI False) (U1 :: * -> *) :+: (C1 (MetaCons "Escape" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "Restart" PrefixI False) (U1 :: * -> *))))

type HiCondPoly = [HiSummand] #

Conditional polynomial representing score calculation for this player.

data HiIndeterminant #

Instances
Eq HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Ord HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Show HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Generic HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Associated Types

type Rep HiIndeterminant :: * -> * #

Binary HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

NFData HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

rnf :: HiIndeterminant -> () #

type Rep HiIndeterminant # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

type Rep HiIndeterminant = D1 (MetaData "HiIndeterminant" "Game.LambdaHack.Content.ModeKind" "LambdaHack-0.8.3.0-1hn0NFDS4ux6qD3ggO7yse" False) ((C1 (MetaCons "HiConst" PrefixI False) (U1 :: * -> *) :+: (C1 (MetaCons "HiLoot" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "HiBlitz" PrefixI False) (U1 :: * -> *))) :+: (C1 (MetaCons "HiSurvival" PrefixI False) (U1 :: * -> *) :+: (C1 (MetaCons "HiKill" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "HiLoss" PrefixI False) (U1 :: * -> *))))

data Player #

Properties of a particular player.

Constructors

Player 

Fields

Instances
Eq Player # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

(==) :: Player -> Player -> Bool #

(/=) :: Player -> Player -> Bool #

Show Player # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Generic Player # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Associated Types

type Rep Player :: * -> * #

Methods

from :: Player -> Rep Player x #

to :: Rep Player x -> Player #

Binary Player # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

put :: Player -> Put #

get :: Get Player #

putList :: [Player] -> Put #

NFData Player # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

rnf :: Player -> () #

type Rep Player # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

data LeaderMode #

If a faction with LeaderUI and LeaderAI has any actor, it has a leader.

Constructors

LeaderNull

faction can have no leader, is whole under AI control

LeaderAI AutoLeader

leader under AI control

LeaderUI AutoLeader

leader under UI control, assumes fhasUI

Instances
Eq LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Ord LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Show LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Generic LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Associated Types

type Rep LeaderMode :: * -> * #

Binary LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

NFData LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

rnf :: LeaderMode -> () #

type Rep LeaderMode # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

type Rep LeaderMode = D1 (MetaData "LeaderMode" "Game.LambdaHack.Content.ModeKind" "LambdaHack-0.8.3.0-1hn0NFDS4ux6qD3ggO7yse" False) (C1 (MetaCons "LeaderNull" PrefixI False) (U1 :: * -> *) :+: (C1 (MetaCons "LeaderAI" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 AutoLeader)) :+: C1 (MetaCons "LeaderUI" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 AutoLeader))))

data AutoLeader #

Constructors

AutoLeader 

Fields

  • autoDungeon :: Bool

    leader switching between levels is automatically done by the server and client is not permitted to change to leaders from other levels (the frequency of leader level switching done by the server is controlled by RuleKind.rleadLevelClips); if the flag is False, server still does a subset of the automatic switching, e.g., when the old leader dies and no other actor of the faction resides on his level, but the client (particularly UI) is expected to do changes as well

  • autoLevel :: Bool

    client is discouraged from leader switching (e.g., because non-leader actors have the same skills as leader); server is guaranteed to switch leader within a level very rarely, e.g., when the old leader dies; if the flag is False, server still does a subset of the automatic switching, but the client is expected to do more, because it's advantageous for that kind of a faction

Instances
Eq AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Ord AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Show AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Generic AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Associated Types

type Rep AutoLeader :: * -> * #

Binary AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

NFData AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

Methods

rnf :: AutoLeader -> () #

type Rep AutoLeader # 
Instance details

Defined in Game.LambdaHack.Content.ModeKind

type Rep AutoLeader = D1 (MetaData "AutoLeader" "Game.LambdaHack.Content.ModeKind" "LambdaHack-0.8.3.0-1hn0NFDS4ux6qD3ggO7yse" False) (C1 (MetaCons "AutoLeader" PrefixI True) (S1 (MetaSel (Just "autoDungeon") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Bool) :*: S1 (MetaSel (Just "autoLevel") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Bool)))

Internal operations

validateSingle :: ModeKind -> [Text] #

Catch invalid game mode kind definitions.

validateAll :: ContentData CaveKind -> ContentData ItemKind -> [ModeKind] -> ContentData ModeKind -> [Text] #

Validate game mode kinds together.

validateSingleRoster :: Caves -> Roster -> [Text] #

Checks, in particular, that there is at least one faction with fneverEmpty or the game would get stuck as soon as the dungeon is devoid of actors.