| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Game.LambdaHack.Common.MonadStateRead
Description
Game state reading monad and basic operations.
Synopsis
- class (Monad m, Functor m, Applicative m) => MonadStateRead m where
- getState :: MonadStateRead m => m State
- getLevel :: MonadStateRead m => LevelId -> m Level
- nUI :: MonadStateRead m => m Int
- getGameMode :: MonadStateRead m => m ModeKind
- isNoConfirmsGame :: MonadStateRead m => m Bool
- getEntryArena :: MonadStateRead m => Faction -> m LevelId
- pickWeaponM :: MonadStateRead m => Maybe DiscoveryBenefit -> [(ItemId, ItemFullKit)] -> Skills -> ActorId -> m [(Double, (ItemId, ItemFullKit))]
Documentation
class (Monad m, Functor m, Applicative m) => MonadStateRead m where #
Monad for reading game state. A state monad with state modification disallowed (another constraint is needed to permit that). The basic server and client monads are like that, because server and clients freely modify their internal session data, but don't modify the main game state, except in very restricted and synchronized way.
getState :: MonadStateRead m => m State #
getLevel :: MonadStateRead m => LevelId -> m Level #
nUI :: MonadStateRead m => m Int #
getGameMode :: MonadStateRead m => m ModeKind #
isNoConfirmsGame :: MonadStateRead m => m Bool #
getEntryArena :: MonadStateRead m => Faction -> m LevelId #
pickWeaponM :: MonadStateRead m => Maybe DiscoveryBenefit -> [(ItemId, ItemFullKit)] -> Skills -> ActorId -> m [(Double, (ItemId, ItemFullKit))] #