werewolf-1.5.1.1: A game engine for playing werewolf within an arbitrary chat client

Copyright(c) Henry J. Wylde 2016
LicenseBSD3
Maintainerpublic@hjwylde.com
Safe HaskellNone
LanguageHaskell2010

Game.Werewolf.Player

Contents

Description

Players are quite simple in themselves. They have a name, role and state.

Synopsis

Player

data Player Source #

A player has a name, role and state. Any stateful information needed for a player's role is held on the Game itself.

N.B., player equality is defined on just the name.

name :: Lens' Player Text Source #

data State Source #

Surprise surprise, players may be Dead or Alive.

Constructors

Alive 
Dead 

_Alive :: Prism' State () Source #

_Dead :: Prism' State () Source #

newPlayer :: Text -> Role -> Player Source #

Creates a new Alive player.

Traversals

alphaWolf :: Traversal' Player () Source #

The traversal of Players with an alphaWolfRole.

alphaWolf = role . only alphaWolfRole

beholder :: Traversal' Player () Source #

The traversal of Players with a beholderRole.

beholder = role . only beholderRole

crookedSenator :: Traversal' Player () Source #

druid :: Traversal' Player () Source #

The traversal of Players with a druidRole.

druid = role . only druidRole

dullahan :: Traversal' Player () Source #

The traversal of Players with a dullahanRole.

dullahan = role . only dullahanRole

fallenAngel :: Traversal' Player () Source #

The traversal of Players with a fallenAngelRole.

fallenAngel = role . only fallenAngelRole

hunter :: Traversal' Player () Source #

The traversal of Players with a hunterRole.

hunter = role . only hunterRole

jester :: Traversal' Player () Source #

The traversal of Players with a jesterRole.

jester = role . only jesterRole

lycan :: Traversal' Player () Source #

The traversal of Players with a lycanRole.

lycan = role . only lycanRole

medusa :: Traversal' Player () Source #

The traversal of Players with a medusaRole.

medusa = role . only medusaRole

necromancer :: Traversal' Player () Source #

The traversal of Players with a necromancerRole.

necromancer = role . only necromancerRole

oracle :: Traversal' Player () Source #

The traversal of Players with a oracleRole.

oracle = role . only oracleRole

orphan :: Traversal' Player () Source #

The traversal of Players with an orphanRole.

orphan = role . only orphanRole

protector :: Traversal' Player () Source #

The traversal of Players with a protectorRole.

protector = role . only protectorRole

saint :: Traversal' Player () Source #

The traversal of Players with a saintRole.

saint = role . only saintRole

scapegoat :: Traversal' Player () Source #

The traversal of Players with a scapegoatRole.

scapegoat = role . only scapegoatRole

seer :: Traversal' Player () Source #

The traversal of Players with a seerRole.

seer = role . only seerRole

simpleVillager :: Traversal' Player () Source #

simpleWerewolf :: Traversal' Player () Source #

trueVillager :: Traversal' Player () Source #

The traversal of Players with a trueVillagerRole.

trueVillager = role . only trueVillagerRole

villageDrunk :: Traversal' Player () Source #

The traversal of Players with a villageDrunkRole.

villageDrunk = role . only villageDrunkRole

witch :: Traversal' Player () Source #

The traversal of Players with a witchRole.

witch = role . only witchRole

zombie :: Traversal' Player () Source #

The traversal of Players with a zombieRole.

zombie = role . only zombieRole

loner :: Traversal' Player () Source #

The traversal of Players aligned with NoOne.

loner = role . allegiance . _NoOne

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

The following traversals are provided just as a bit of sugar to avoid continually writing traverse ..

names :: Traversable t => Traversal' (t Player) Text Source #

The traversal of Player names.

names = traverse . name

roles :: Traversable t => Traversal' (t Player) Role Source #

The traversal of Player roles.

roles = traverse . role

states :: Traversable t => Traversal' (t Player) State Source #

The traversal of Player states.

states = traverse . state

N.B., the following traversals are not legal for the same reason filtered isn't!

named :: Text -> Traversal' Player Player Source #

The traversal of Players with the given name.

named name' = filteredBy . name name'

alphaWolves :: Traversable t => Traversal' (t Player) Player Source #

The traversal of alphaWolf Players.

alphaWolves = traverse . filtered (is alphaWolf)

beholders :: Traversable t => Traversal' (t Player) Player Source #

The traversal of beholder Players.

beholders = traverse . filtered (is beholder)

druids :: Traversable t => Traversal' (t Player) Player Source #

The traversal of druid Players.

druids = traverse . filtered (is druid)

dullahans :: Traversable t => Traversal' (t Player) Player Source #

The traversal of dullahan Players.

dullahans = traverse . filtered (is dullahan)

fallenAngels :: Traversable t => Traversal' (t Player) Player Source #

The traversal of fallenAngel Players.

fallenAngels = traverse . filtered (is fallenAngel)

hunters :: Traversable t => Traversal' (t Player) Player Source #

The traversal of hunter Players.

hunters = traverse . filtered (is hunter)

jesters :: Traversable t => Traversal' (t Player) Player Source #

The traversal of jester Players.

jesters = traverse . filtered (is jester)

lycans :: Traversable t => Traversal' (t Player) Player Source #

The traversal of lycan Players.

lycans = traverse . filtered (is lycan)

medusas :: Traversable t => Traversal' (t Player) Player Source #

The traversal of medusa Players.

medusas = traverse . filtered (is medusa)

necromancers :: Traversable t => Traversal' (t Player) Player Source #

The traversal of necromancer Players.

necromancers = traverse . filtered (is necromancer)

oracles :: Traversable t => Traversal' (t Player) Player Source #

The traversal of oracle Players.

oracles = traverse . filtered (is oracle)

orphans :: Traversable t => Traversal' (t Player) Player Source #

The traversal of orphan Players.

orphans = traverse . filtered (is orphan)

protectors :: Traversable t => Traversal' (t Player) Player Source #

The traversal of protector Players.

protectors = traverse . filtered (is protector)

saints :: Traversable t => Traversal' (t Player) Player Source #

The traversal of saint Players.

saints = traverse . filtered (is saint)

scapegoats :: Traversable t => Traversal' (t Player) Player Source #

The traversal of scapegoat Players.

scapegoats = traverse . filtered (is scapegoat)

seers :: Traversable t => Traversal' (t Player) Player Source #

The traversal of seer Players.

seers = traverse . filtered (is seer)

trueVillagers :: Traversable t => Traversal' (t Player) Player Source #

The traversal of trueVillager Players.

trueVillagers = traverse . filtered (is trueVillager)

villageDrunks :: Traversable t => Traversal' (t Player) Player Source #

The traversal of villageDrunk Players.

villageDrunks = traverse . filtered (is villageDrunk)

witches :: Traversable t => Traversal' (t Player) Player Source #

The traversal of witch Players.

witches = traverse . filtered (is witch)

zombies :: Traversable t => Traversal' (t Player) Player Source #

The traversal of zombie Players.

zombies = traverse . filtered (is zombie)

loners :: Traversable t => Traversal' (t Player) Player Source #

The traversal of loner Players.

loners = traverse . filtered . (is loner)

villagers :: Traversable t => Traversal' (t Player) Player Source #

The traversal of villager Players.

villagers = traverse . filtered (is villager)

werewolves :: Traversable t => Traversal' (t Player) Player Source #

The traversal of werewolf Players.

werewolves = traverse . filtered (is werewolf)

alive :: Traversal' Player Player Source #

The traversal of Alive Players.

alive = filtered (has $ state . _Alive)

dead :: Traversal' Player Player Source #

The traversal of Dead Players.

dead = filtered (has $ state . _Dead)