LambdaHack- A roguelike game engine in early and active development

Safe HaskellNone



The main game action monad type implementation. Just as any other component of the library, this implementation can be substituted. This module should not be imported anywhere except in Action to expose the executor to any code using the library.



type FunActionCli c d aSource


 = SessionUI

client UI setup data

-> (ChanServer c d, ChanSave (State, StateClient))

this client connection information

-> (State -> StateClient -> a -> IO ())


-> (StdGen -> Msg -> IO ())

failure/reset continuation

-> State

current local state

-> StateClient

current client state

-> IO () 

The type of the function inside any client action.

data ActionCli c d a Source

Client parts of actions of human and computer player characters.

executorCli :: ActionCli c d () -> SessionUI -> State -> StateClient -> ChanServer c d -> IO ()Source

Init the client, then run an action, with a given session, state and history, in the IO monad.