Safe Haskell | None |
---|---|
Language | Haskell98 |
All the building blocks to allow rules to manage players. for example, you can change the name of player 1 with: do void $ modifyPlayerName 1 ("King " ++)
- type PlayerNumber = Int
- type PlayerName = String
- data PlayerInfo = PlayerInfo {}
- data Player
- playerEvent :: Player -> Event PlayerInfo
- playerNumber :: Lens PlayerInfo PlayerNumber
- playerName :: Lens PlayerInfo String
- getPlayers :: NomexNE [PlayerInfo]
- getPlayer :: PlayerNumber -> NomexNE (Maybe PlayerInfo)
- getPlayerName :: PlayerNumber -> NomexNE (Maybe PlayerName)
- getPlayerName' :: PlayerNumber -> NomexNE PlayerName
- setPlayerName :: PlayerNumber -> PlayerName -> Nomex Bool
- modifyPlayerName :: PlayerNumber -> (PlayerName -> PlayerName) -> Nomex Bool
- getPlayersNumber :: NomexNE Int
- getAllPlayerNumbers :: NomexNE [PlayerNumber]
- delPlayer :: PlayerNumber -> Nomex Bool
- forEachPlayer :: (PlayerNumber -> Nomex ()) -> (PlayerNumber -> Nomex ()) -> (PlayerNumber -> Nomex ()) -> Nomex (EventNumber, EventNumber)
- forEachPlayer_ :: (PlayerNumber -> Nomex ()) -> Nomex (EventNumber, EventNumber)
- createValueForEachPlayer :: forall a. (Typeable a, Show a, Eq a) => a -> MsgVar [(PlayerNumber, a)] -> Nomex (EventNumber, EventNumber)
- createValueForEachPlayer_ :: MsgVar [(PlayerNumber, Int)] -> Nomex (EventNumber, EventNumber)
- getValueOfPlayer :: forall a. (Typeable a, Show a, Eq a) => PlayerNumber -> MsgVar [(PlayerNumber, a)] -> NomexNE (Maybe a)
- modifyValueOfPlayer :: (Eq a, Show a, Typeable a) => PlayerNumber -> MsgVar [(PlayerNumber, a)] -> (a -> a) -> Nomex Bool
- modifyAllValues :: (Eq a, Show a, Typeable a) => MsgVar [(PlayerNumber, a)] -> (a -> a) -> Nomex ()
- showPlayer :: PlayerNumber -> NomexNE String
- getProposerNumber :: NomexNE PlayerNumber
- getProposerNumber_ :: Nomex PlayerNumber
- setVictory :: NomexNE [PlayerNumber] -> Nomex ()
- giveVictory :: PlayerNumber -> Nomex ()
- getRandomNumber :: Random a => (a, a) -> Nomex a
Documentation
type PlayerNumber = Int Source
type PlayerName = String Source
data PlayerInfo Source
informations on players
playerEvent :: Player -> Event PlayerInfo Source
Build a event firing when a player arrives or leaves
getPlayers :: NomexNE [PlayerInfo] Source
get all the players
getPlayer :: PlayerNumber -> NomexNE (Maybe PlayerInfo) Source
Get a specific player
getPlayerName :: PlayerNumber -> NomexNE (Maybe PlayerName) Source
Get the name of a player
getPlayerName' :: PlayerNumber -> NomexNE PlayerName Source
Get the name of a player, his number if not found
setPlayerName :: PlayerNumber -> PlayerName -> Nomex Bool Source
Set the name of a player
modifyPlayerName :: PlayerNumber -> (PlayerName -> PlayerName) -> Nomex Bool Source
getPlayersNumber :: NomexNE Int Source
Get the total number of players
getAllPlayerNumbers :: NomexNE [PlayerNumber] Source
Get all the players number
delPlayer :: PlayerNumber -> Nomex Bool Source
Remove the player from the game (kick)
forEachPlayer :: (PlayerNumber -> Nomex ()) -> (PlayerNumber -> Nomex ()) -> (PlayerNumber -> Nomex ()) -> Nomex (EventNumber, EventNumber) Source
perform an action for each current players, new players and leaving players returns the event numbers for arriving players and leaving players
forEachPlayer_ :: (PlayerNumber -> Nomex ()) -> Nomex (EventNumber, EventNumber) Source
perform the same action for each players, including new players returns the event numbers for arriving players and leaving players
createValueForEachPlayer :: forall a. (Typeable a, Show a, Eq a) => a -> MsgVar [(PlayerNumber, a)] -> Nomex (EventNumber, EventNumber) Source
create a value initialized for each players manages players joining and leaving
createValueForEachPlayer_ :: MsgVar [(PlayerNumber, Int)] -> Nomex (EventNumber, EventNumber) Source
create a value initialized for each players initialized to zero manages players joining and leaving
getValueOfPlayer :: forall a. (Typeable a, Show a, Eq a) => PlayerNumber -> MsgVar [(PlayerNumber, a)] -> NomexNE (Maybe a) Source
modifyValueOfPlayer :: (Eq a, Show a, Typeable a) => PlayerNumber -> MsgVar [(PlayerNumber, a)] -> (a -> a) -> Nomex Bool Source
modifyAllValues :: (Eq a, Show a, Typeable a) => MsgVar [(PlayerNumber, a)] -> (a -> a) -> Nomex () Source
showPlayer :: PlayerNumber -> NomexNE String Source
show a player name based on his number
getProposerNumber :: NomexNE PlayerNumber Source
get the player number of the proposer of the rule
setVictory :: NomexNE [PlayerNumber] -> Nomex () Source
set victory to a list of players
giveVictory :: PlayerNumber -> Nomex () Source
give victory to one player
getRandomNumber :: Random a => (a, a) -> Nomex a Source
get a random number uniformly distributed in the closed interval [lo,hi] resets the number generator