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

Safe HaskellNone

Game.LambdaHack.Common.State

Contents

Description

Server and client game state types and operations.

Synopsis

Basic game state, local or global

data State Source

View on game state. Remembered fields carry a subset of the info in the client copies of the state. Clients never directly change their State, but apply atomic actions sent by the server to do so.

Instances

State components

State operations

defStateGlobal :: Dungeon -> AbsDepth -> FactionDict -> COps -> ScoreTable -> StateSource

Initial complete global game state.

emptyState :: StateSource

Initial empty state.

localFromGlobal :: State -> StateSource

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

updateDungeon :: (Dungeon -> Dungeon) -> State -> StateSource

Update dungeon data within state.

updateDepth :: (AbsDepth -> AbsDepth) -> State -> StateSource

Update dungeon depth.

updateActorD :: (ActorDict -> ActorDict) -> State -> StateSource

Update the actor dictionary.

updateItemD :: (ItemDict -> ItemDict) -> State -> StateSource

Update the item dictionary.

updateFactionD :: (FactionDict -> FactionDict) -> State -> StateSource

Update faction data within state.

updateTime :: (Time -> Time) -> State -> StateSource

Update global time within state.

updateCOps :: (COps -> COps) -> State -> StateSource

Update content data within state.