Nomyx-Language-0.7.5: Language to express rules for Nomic

Safe HaskellNone
LanguageHaskell98

Language.Nomyx.Players

Description

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 " ++)

Synopsis

Documentation

data Player Source

Events parameters

Constructors

Arrive 
Leave 

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

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

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