| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Game.LambdaHack.Client.UI.MonadClientUI
Description
Client monad for interacting with a human through UI.
- class MonadClient m => MonadClientUI m where
- data SessionUI = SessionUI {}
- data ColorMode
- promptGetKey :: MonadClientUI m => [KM] -> SingleFrame -> m KM
- getKeyOverlayCommand :: MonadClientUI m => Maybe Bool -> Overlay -> m KM
- getInitConfirms :: MonadClientUI m => ColorMode -> [KM] -> Slideshow -> m Bool
- displayFrame :: MonadClientUI m => Maybe SingleFrame -> m ()
- displayDelay :: MonadClientUI m => m ()
- displayActorStart :: MonadClientUI m => Actor -> Frames -> m ()
- drawOverlay :: MonadClientUI m => Bool -> ColorMode -> Overlay -> m SingleFrame
- stopPlayBack :: MonadClientUI m => m ()
- askConfig :: MonadClientUI m => m Config
- askBinding :: MonadClientUI m => m Binding
- syncFrames :: MonadClientUI m => m ()
- setFrontAutoYes :: MonadClientUI m => Bool -> m ()
- tryTakeMVarSescMVar :: MonadClientUI m => m Bool
- scoreToSlideshow :: MonadClientUI m => Int -> Status -> m Slideshow
- getLeaderUI :: MonadClientUI m => m ActorId
- getArenaUI :: MonadClientUI m => m LevelId
- viewedLevel :: MonadClientUI m => m LevelId
- targetDescLeader :: MonadClientUI m => ActorId -> m (Text, Maybe Text)
- targetDescCursor :: MonadClientUI m => m (Text, Maybe Text)
- leaderTgtToPos :: MonadClientUI m => m (Maybe Point)
- leaderTgtAims :: MonadClientUI m => m (Either Text Int)
- cursorToPos :: MonadClientUI m => m (Maybe Point)
Client UI monad
class MonadClient m => MonadClientUI m where Source #
The monad that gives the client access to UI operations.
Minimal complete definition
Instances
| MonadClientUI (CliImplementation resp req) Source # | |
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. This includes a frontend session and keybinding info.
Display and key input
Color mode for the display.
promptGetKey :: MonadClientUI m => [KM] -> SingleFrame -> m KM Source #
getKeyOverlayCommand :: MonadClientUI m => Maybe Bool -> Overlay -> m KM Source #
Display an overlay and wait for a human player command.
getInitConfirms :: MonadClientUI m => ColorMode -> [KM] -> Slideshow -> m Bool Source #
Display a slideshow, awaiting confirmation for each slide except the last.
displayFrame :: MonadClientUI m => Maybe SingleFrame -> m () Source #
displayDelay :: MonadClientUI m => m () Source #
displayActorStart :: MonadClientUI m => Actor -> Frames -> m () Source #
Push frames or delays to the frame queue. Additionally set sdisplayed.
because animations not always happen after SfxActorStart on the leader's
level (e.g., death can lead to leader change to another level mid-turn,
and there could be melee and animations on that level at the same moment).
Insert delays, so that the animations don't look rushed.
drawOverlay :: MonadClientUI m => Bool -> ColorMode -> Overlay -> m SingleFrame Source #
Draw the current level with the overlay on top.
Assorted primitives
stopPlayBack :: MonadClientUI m => m () Source #
askConfig :: MonadClientUI m => m Config Source #
askBinding :: MonadClientUI m => m Binding Source #
Get the key binding.
syncFrames :: MonadClientUI m => m () Source #
Sync frames display with the frontend.
setFrontAutoYes :: MonadClientUI m => Bool -> m () Source #
tryTakeMVarSescMVar :: MonadClientUI m => m Bool Source #
scoreToSlideshow :: MonadClientUI m => Int -> Status -> m Slideshow Source #
getLeaderUI :: MonadClientUI m => m ActorId Source #
getArenaUI :: MonadClientUI m => m LevelId Source #
viewedLevel :: MonadClientUI m => m LevelId Source #
targetDescLeader :: MonadClientUI m => ActorId -> m (Text, Maybe Text) Source #
targetDescCursor :: MonadClientUI m => m (Text, Maybe Text) Source #
leaderTgtToPos :: MonadClientUI m => m (Maybe Point) Source #
leaderTgtAims :: MonadClientUI m => m (Either Text Int) Source #
cursorToPos :: MonadClientUI m => m (Maybe Point) Source #