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 Source #
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.
Minimal complete definition
Instances
MonadStateRead CliImplementation Source # | |
Defined in Game.LambdaHack.SampleImplementation.SampleMonadClient Methods getsState :: (State -> a) -> CliImplementation a Source # | |
MonadStateRead SerImplementation Source # | |
Defined in Game.LambdaHack.SampleImplementation.SampleMonadServer Methods getsState :: (State -> a) -> SerImplementation a Source # |
getState :: MonadStateRead m => m State Source #
nUI :: MonadStateRead m => m Int Source #
getGameMode :: MonadStateRead m => m ModeKind Source #
isNoConfirmsGame :: MonadStateRead m => m Bool Source #
getEntryArena :: MonadStateRead m => Faction -> m LevelId Source #
pickWeaponM :: MonadStateRead m => Maybe DiscoveryBenefit -> [(ItemId, ItemFullKit)] -> Skills -> ActorId -> m [(Double, (ItemId, ItemFullKit))] Source #