| Safe Haskell | None |
|---|
Game.LambdaHack.Client.Action.ActionClass
Description
Basic type classes for game actions.
This module should not be imported anywhere except in Action
and TypeAction.
- data SessionUI = SessionUI {
- sfconn :: !ConnFrontend
- sbinding :: !Binding
- data ConnFrontend = ConnFrontend {
- readConnFrontend :: MonadClientUI m => m KM
- writeConnFrontend :: MonadClientUI m => FrontReq -> m ()
- class MonadActionRO m => MonadClient m where
- getClient :: m StateClient
- getsClient :: (StateClient -> a) -> m a
- modifyClient :: (StateClient -> StateClient) -> m ()
- putClient :: StateClient -> m ()
- liftIO :: IO a -> m a
- saveClient :: m ()
- class MonadClient m => MonadClientUI m where
- getsSession :: (SessionUI -> a) -> m a
- class MonadClient m => MonadClientReadServer c m | m -> c where
- readServer :: m c
- class MonadClient m => MonadClientWriteServer d m | m -> d where
- writeServer :: d -> m ()
- class MonadClient m => MonadClientAbort m where
- saveName :: FactionId -> Bool -> String
Documentation
The information that is constant across a client playing session,
including many consecutive games in a single session,
but is completely disregarded and reset when a new playing session starts.
Auxiliary AI and computer player clients have no sfs nor sbinding.
Constructors
| SessionUI | |
Fields
| |
data ConnFrontend Source
Connection method between a client and a frontend.
Constructors
| ConnFrontend | |
Fields
| |
class MonadActionRO m => MonadClient m whereSource
Methods
getClient :: m StateClientSource
getsClient :: (StateClient -> a) -> m aSource
modifyClient :: (StateClient -> StateClient) -> m ()Source
putClient :: StateClient -> m ()Source
saveClient :: m ()Source
Instances
| (Monoid a, MonadClient m) => MonadClient (WriterT a m) | |
| MonadClient (ActionCli c d) |
class MonadClient m => MonadClientUI m whereSource
Methods
getsSession :: (SessionUI -> a) -> m aSource
Instances
| (Monoid a, MonadClientUI m) => MonadClientUI (WriterT a m) | |
| MonadClientUI (ActionCli c d) |
class MonadClient m => MonadClientReadServer c m | m -> c whereSource
Methods
readServer :: m cSource
Instances
| MonadClientReadServer c (ActionCli c d) |
class MonadClient m => MonadClientWriteServer d m | m -> d whereSource
Methods
writeServer :: d -> m ()Source
Instances
| MonadClientWriteServer d (ActionCli c d) |
class MonadClient m => MonadClientAbort m whereSource
The bottom of the action monads class semilattice.
Instances
| (Monoid a, MonadClientAbort m) => MonadClientAbort (WriterT a m) | |
| MonadClientAbort (ActionCli c d) |