LambdaHack-0.10.2.0: A game engine library for tactical squad ASCII roguelike dungeon crawlers
Safe HaskellNone
LanguageHaskell2010

Game.LambdaHack.Common.State

Description

The common server and client basic game state type and its operations.

Synopsis

Basic game state, local or global

data State Source #

View on the basic game state. The remembered fields, in client copies of the state, carry only a subset of the full information that the server keeps. Clients never directly change their State, but apply atomic actions sent by the server to do so (and/or the server applies the actions to each client state in turn).

Instances

Instances details
Eq State Source # 
Instance details

Defined in Game.LambdaHack.Common.State

Methods

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

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

Show State Source # 
Instance details

Defined in Game.LambdaHack.Common.State

Methods

showsPrec :: Int -> State -> ShowS #

show :: State -> String #

showList :: [State] -> ShowS #

Binary State Source # 
Instance details

Defined in Game.LambdaHack.Common.State

Methods

put :: State -> Put #

get :: Get State #

putList :: [State] -> Put #

State components

State construction

defStateGlobal :: Dungeon -> AbsDepth -> FactionDict -> COps -> ScoreDict -> ContentId ModeKind -> DiscoveryKind -> State Source #

Initial complete global game state.

emptyState :: State Source #

Initial empty state.

localFromGlobal :: State -> State Source #

Local state created by removing secret information from global state components.

State update

updateDungeon :: (Dungeon -> Dungeon) -> State -> State Source #

Update dungeon data within state.

updateDepth :: (AbsDepth -> AbsDepth) -> State -> State Source #

Update dungeon depth.

updateActorD :: (ActorDict -> ActorDict) -> State -> State Source #

Update the actor dictionary.

updateItemD :: (ItemDict -> ItemDict) -> State -> State Source #

Update the item dictionary.

updateItemIxMap :: (ItemIxMap -> ItemIxMap) -> State -> State Source #

Update the item kind index map.

updateFactionD :: (FactionDict -> FactionDict) -> State -> State Source #

Update faction data within state.

updateTime :: (Time -> Time) -> State -> State Source #

Update global time within state.

updateCOpsAndCachedData :: (COps -> COps) -> State -> State Source #

Update content data within state and recompute the cached data.

updateGold :: (Int -> Int) -> State -> State Source #

Update total gold value in the dungeon.

State operations

Internal operations