packages feed

werewolf-1.3.0.0: app/Game/Werewolf/Variant/NoRoleReveal/Command.hs

{-|
Module      : Game.Werewolf.Variant.NoRoleReveal.Command
Description : Suite of command messages used throughout the game.

Copyright   : (c) Henry J. Wylde, 2016
License     : BSD3
Maintainer  : public@hjwylde.com

A 'Message' is used to relay information back to either all players or a single player. This module
defines suite of command messages used throughout the werewolf game for the 'NoRoleReveal' variant.
-}

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes       #-}

module Game.Werewolf.Variant.NoRoleReveal.Command (
    -- * Choose
    playerShotText,

    -- * Ping
    nocturnalRolePingedText, werewolvesPingedText,

    -- * Quit
    callerQuitText,

    -- * Status
    currentNocturnalTurnText, deadPlayersText,
) where

import Control.Lens

import Data.String.Humanise
import Data.String.Interpolate.Extra
import Data.Text                     (Text)

import Game.Werewolf
import Game.Werewolf.Message

playerShotText :: Player -> Text
playerShotText player = [iFile|variant/no-role-reveal/command/choose/player-shot.txt|]

nocturnalRolePingedText :: Role -> Text
nocturnalRolePingedText _ = [iFile|variant/no-role-reveal/command/ping/nocturnal-role-pinged.txt|]

werewolvesPingedText :: Text
werewolvesPingedText = [iFile|variant/no-role-reveal/command/ping/werewolves-pinged.txt|]

callerQuitText :: Player -> Text
callerQuitText caller = [iFile|variant/no-role-reveal/command/quit/caller-quit.txt|]

currentNocturnalTurnText :: Game -> Text
currentNocturnalTurnText _ = [iFile|variant/no-role-reveal/command/status/current-nocturnal-turn.txt|]

deadPlayersText :: Game -> Text
deadPlayersText game = [iFile|variant/no-role-reveal/command/status/dead-players.txt|]