| Copyright | (c) Henry J. Wylde, 2016 |
|---|---|
| License | BSD3 |
| Maintainer | public@hjwylde.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Game.Werewolf.Player
Description
Players are quite simple in themselves. They have a name, role and state. Any complex
behaviour is handled in Game.Werewolf.Command and Game.Werewolf.Engine.
- data Player
- name :: Lens' Player Text
- role :: Lens' Player Role
- state :: Lens' Player State
- data State
- _Alive :: Prism' State ()
- _Dead :: Prism' State ()
- newPlayer :: Text -> Role -> Player
- crookedSenator :: Traversal' Player ()
- druid :: Traversal' Player ()
- fallenAngel :: Traversal' Player ()
- hunter :: Traversal' Player ()
- jester :: Traversal' Player ()
- orphan :: Traversal' Player ()
- protector :: Traversal' Player ()
- scapegoat :: Traversal' Player ()
- seer :: Traversal' Player ()
- simpleVillager :: Traversal' Player ()
- simpleWerewolf :: Traversal' Player ()
- trueVillager :: Traversal' Player ()
- villageDrunk :: Traversal' Player ()
- witch :: Traversal' Player ()
- villager :: Traversal' Player ()
- werewolf :: Traversal' Player ()
- names :: Traversable t => Traversal' (t Player) Text
- roles :: Traversable t => Traversal' (t Player) Role
- states :: Traversable t => Traversal' (t Player) State
- crookedSenators :: Traversable t => Traversal' (t Player) Player
- druids :: Traversable t => Traversal' (t Player) Player
- fallenAngels :: Traversable t => Traversal' (t Player) Player
- hunters :: Traversable t => Traversal' (t Player) Player
- jesters :: Traversable t => Traversal' (t Player) Player
- orphans :: Traversable t => Traversal' (t Player) Player
- protectors :: Traversable t => Traversal' (t Player) Player
- scapegoats :: Traversable t => Traversal' (t Player) Player
- seers :: Traversable t => Traversal' (t Player) Player
- simpleVillagers :: Traversable t => Traversal' (t Player) Player
- simpleWerewolves :: Traversable t => Traversal' (t Player) Player
- trueVillagers :: Traversable t => Traversal' (t Player) Player
- villageDrunks :: Traversable t => Traversal' (t Player) Player
- witches :: Traversable t => Traversal' (t Player) Player
- villagers :: Traversable t => Traversal' (t Player) Player
- werewolves :: Traversable t => Traversal' (t Player) Player
- alive :: Traversal' Player Player
- dead :: Traversal' Player Player
- is :: Getting Any s a -> s -> Bool
- isn't :: Getting All s a -> s -> Bool
- filteredBy :: Eq b => Lens' a b -> b -> Traversal' a a
Player
Traversals
crookedSenator :: Traversal' Player () Source
The traversal of Players with a crookedSenatorRole.
crookedSenator=role.onlycrookedSenatorRole
druid :: Traversal' Player () Source
fallenAngel :: Traversal' Player () Source
The traversal of Players with an fallenAngelRole.
fallenAngel=role.onlyfallenAngelRole
hunter :: Traversal' Player () Source
The traversal of Players with a hunterRole.
hunter=role.onlyhunterRole
jester :: Traversal' Player () Source
The traversal of Players with a jesterRole.
jester=role.onlyjesterRole
orphan :: Traversal' Player () Source
The traversal of Players with a orphanRole.
orphan=role.onlyorphanRole
protector :: Traversal' Player () Source
The traversal of Players with a protectorRole.
protector=role.onlyprotectorRole
scapegoat :: Traversal' Player () Source
The traversal of Players with a scapegoatRole.
scapegoat=role.onlyscapegoatRole
seer :: Traversal' Player () Source
simpleVillager :: Traversal' Player () Source
The traversal of Players with a simpleVillagerRole.
simpleVillager=role.onlysimpleVillagerRole
simpleWerewolf :: Traversal' Player () Source
The traversal of Players with a simpleWerewolfRole.
simpleWerewolf=role.onlysimpleWerewolfRole
trueVillager :: Traversal' Player () Source
The traversal of Players with a trueVillagerRole.
trueVillager=role.onlytrueVillagerRole
villageDrunk :: Traversal' Player () Source
The traversal of Players with a villageDrunkRole.
villageDrunk=role.onlyvillageDrunkRole
witch :: Traversal' Player () Source
villager :: Traversal' Player () Source
The traversal of Players aligned with the Villagers.
villager=role.allegiance._Villagers
werewolf :: Traversal' Player () Source
The traversal of Players aligned with the Werewolves.
werewolf=role.allegiance._Werewolves
These are provided just as a bit of sugar to avoid continually writing .traverse .
names :: Traversable t => Traversal' (t Player) Text Source
roles :: Traversable t => Traversal' (t Player) Role Source
states :: Traversable t => Traversal' (t Player) State Source
N.B., these are not legal traversals for the same reason filtered isn't!
crookedSenators :: Traversable t => Traversal' (t Player) Player Source
This Traversal provides the traversal of crookedSenator Players.
crookedSenators=traverse.filtered(iscrookedSenator)
druids :: Traversable t => Traversal' (t Player) Player Source
fallenAngels :: Traversable t => Traversal' (t Player) Player Source
This Traversal provides the traversal of fallenAngel Players.
fallenAngels=traverse.filtered(isfallenAngel)
hunters :: Traversable t => Traversal' (t Player) Player Source
jesters :: Traversable t => Traversal' (t Player) Player Source
orphans :: Traversable t => Traversal' (t Player) Player Source
protectors :: Traversable t => Traversal' (t Player) Player Source
scapegoats :: Traversable t => Traversal' (t Player) Player Source
seers :: Traversable t => Traversal' (t Player) Player Source
simpleVillagers :: Traversable t => Traversal' (t Player) Player Source
This Traversal provides the traversal of simpleVillager Players.
simpleVillagers=traverse.filtered(issimpleVillager)
simpleWerewolves :: Traversable t => Traversal' (t Player) Player Source
This Traversal provides the traversal of simpleWerewolf Players.
simpleWerewolves=traverse.filtered(issimpleWerewolf)
trueVillagers :: Traversable t => Traversal' (t Player) Player Source
This Traversal provides the traversal of trueVillager Players.
trueVillagers=traverse.filtered(istrueVillager)
villageDrunks :: Traversable t => Traversal' (t Player) Player Source
This Traversal provides the traversal of villageDrunk Players.
villageDrunks=traverse.filtered(isvillageDrunk)
witches :: Traversable t => Traversal' (t Player) Player Source
villagers :: Traversable t => Traversal' (t Player) Player Source
werewolves :: Traversable t => Traversal' (t Player) Player Source
Utility functions
filteredBy :: Eq b => Lens' a b -> b -> Traversal' a a Source
A companion to filtered that, rather than using a predicate, filters on the given lens for
matches.