LambdaHack- A game engine library for tactical squad ASCII roguelike dungeon crawlers
Safe HaskellNone



Semantics of human player commands.



cmdSemInCxtOfKM :: (MonadClient m, MonadClientUI m) => KM -> HumanCmd -> m (Either MError ReqUI) Source #

The semantics of human player commands in terms of the client monad, in context of the given km as the last action.

Some time cosuming commands are enabled even in aiming mode, but cannot be invoked in aiming mode on a remote level (level different than the level of the leader). Commands that require a pointman fail when no leader is designated.

Internal operations

noRemoteHumanCmd :: HumanCmd -> Bool Source #

Commands that are forbidden on a remote level, because they would usually take time when invoked on one, but not necessarily do what the player expects. Note that some commands that normally take time are not included, because they don't take time in aiming mode or their individual sanity conditions include a remote level check.

addLeader :: Monad m => (ActorId -> m ()) -> CmdLeaderNeed m Source #