packages feed

werewolf 0.3.1.3 → 0.3.2.0

raw patch · 5 files changed

+47/−26 lines, 5 files

Files

CHANGELOG.md view
@@ -2,6 +2,17 @@  #### Upcoming +#### v0.3.2.0++*Minor*++* Added a "Whom would you like to lynch?" message during the Villagers' turn. ([#25](https://github.com/hjwylde/werewolf/issues/25))+* Allowed lowercase roles for `--extra-roles` in the `start` command. ([#33](https://github.com/hjwylde/werewolf/issues/33))++*Revisions*++* Shrunk some of the help text to make it more readable. ([#25](https://github.com/hjwylde/werewolf/issues/25))+ #### v0.3.1.3  *Revisions*
app/Werewolf/Commands/Help.hs view
@@ -46,7 +46,7 @@     messages = map (privateMessage [callerName]) descriptionMessages     } handle callerName (Options (Just Roles)) = exitWith success {-    messages = map (\role -> privateMessage [callerName] $ T.unlines [+    messages = map (\role -> privateMessage [callerName] $ T.intercalate "\n" [         T.snoc (role ^. Role.name) ':',         role ^. description,         role ^. advice@@ -61,24 +61,19 @@  commandsMessages :: [Text] commandsMessages = map (T.intercalate "\n") [[-    "End: end the current game",-    "Usage: end",+    "end",     "- Ends the current game."     ], [-    "Quit: quit the current game",-    "Usage: quit",+    "quit",     "- Quit the current game."     ], [-    "See: see a player's allegiance",-    "Usage: see PLAYER",+    "see PLAYER",     "- See a player's allegiance. A Seer may determine a player's allegiance once per day."     ], [-    "Start: start a new game",-    "Usage: start [--extra-roles ROLE,...] PLAYER ...",+    "start [--extra-roles ROLE,...] PLAYER ...",     "- Starts a new game with the given players and extra roles. A game requires at least 7 players."     ], [-    "Vote: vote against a player",-    "Usage: vote PLAYER",+    "vote PLAYER",     T.unwords [         "- Vote against a player.",         "A townsperson may vote at daytime to lynch someone",@@ -138,11 +133,15 @@  helpMessages :: [Text] helpMessages = map (T.intercalate "\n") [[-    "Usage: help COMMAND"+    "help commands",+    "- Print the in-game commands."     ], [-    "Available commands:",-    "  commands - print the in-game commands",-    "  description - print the game description",-    "  rules - print the game rules",-    "  roles - print the roles and their description"+    "help description",+    "- Print the game description."+    ], [+    "help roles",+    "- Print the roles and their description."+    ], [+    "help rules",+    "- Print the game rules."     ]]
app/Werewolf/Options.hs view
@@ -19,6 +19,7 @@     werewolfPrefs, werewolfInfo, werewolf, ) where +import           Data.Char import           Data.List.Extra import           Data.Text       (Text) import qualified Data.Text       as T@@ -108,7 +109,7 @@  start :: Parser Command start = fmap Start $ Start.Options-    <$> fmap (map T.pack . wordsBy (',' ==)) (strOption $ mconcat [+    <$> fmap (map (T.pack . capitalise) . wordsBy (',' ==)) (strOption $ mconcat [         long "extra-roles", metavar "ROLE,...",         value [],         help "Specify the extra roles to include"@@ -117,3 +118,7 @@  vote :: Parser Command vote = Vote . Vote.Options . T.pack <$> strArgument (metavar "PLAYER")++capitalise :: String -> String+capitalise []           = []+capitalise (head:tail)  = toUpper head : map toLower tail
src/Game/Werewolf/Response.hs view
@@ -147,8 +147,8 @@  newPlayerMessage :: [Player] -> Player -> Message newPlayerMessage players player-    | isWerewolf player = privateMessage [player ^. name] $ T.unlines [T.concat ["You're a Werewolf", packMessage], player ^. role . description]-    | otherwise         = privateMessage [player ^. name] $ T.unlines [T.concat ["You're a ", player ^. role . Role.name, "."], player ^. role . description]+    | isWerewolf player = privateMessage [player ^. name] $ T.intercalate "\n" [T.concat ["You're a Werewolf", packMessage], player ^. role . description]+    | otherwise         = privateMessage [player ^. name] $ T.intercalate "\n" [T.concat ["You're a ", player ^. role . Role.name, "."], player ^. role . description]     where         packMessage             | length (filterWerewolves players) <= 1    = "."@@ -156,7 +156,7 @@  turnMessages :: Turn -> [Player] -> [Message] turnMessages Seers players      = seersTurnMessages $ filter isSeer players-turnMessages Villagers _        = [villagersTurnMessage]+turnMessages Villagers players  = villagersTurnMessage players turnMessages Werewolves players = werewolvesTurnMessages $ filter isWerewolf players turnMessages NoOne _            = [] @@ -171,13 +171,19 @@ playerQuitMessage player = publicMessage $ T.unwords [player ^. name, "the", player ^. role . Role.name, "has quit!"]  seersTurnMessages :: [Player] -> [Message]-seersTurnMessages seers = publicMessage "The Seers wake up.":privateMessage (map _name seers) "Who's allegiance would you like to see?":[]+seersTurnMessages seers = [+    publicMessage "The Seers wake up.",+    privateMessage (map _name seers) "Whose allegiance would you like to see?"+    ]  playerSeenMessage :: Text -> Player -> Message playerSeenMessage seerName target = privateMessage [seerName] $ T.concat [target ^. name, " is aligned with the ", T.pack . show $ target ^. role . allegiance, "."] -villagersTurnMessage :: Message-villagersTurnMessage = publicMessage "The sun rises. Everybody wakes up and opens their eyes..."+villagersTurnMessage :: [Player] -> [Message]+villagersTurnMessage players = [+    publicMessage "The sun rises. Everybody wakes up and opens their eyes...",+    privateMessage (map _name players) "Whom would you like to lynch?"+    ]  playerMadeLynchVoteMessage :: Text -> Text -> Message playerMadeLynchVoteMessage voterName targetName = publicMessage $ T.concat [voterName, " voted to lynch ", targetName, "."]@@ -200,7 +206,7 @@ werewolvesTurnMessages :: [Player] -> [Message] werewolvesTurnMessages werewolves = [     publicMessage "The Werewolves wake up, recognise one another and choose a new victim.",-    privateMessage (map _name werewolves) "Who would you like to devour?"+    privateMessage (map _name werewolves) "Whom would you like to devour?"     ]  playerMadeDevourVoteMessage :: [Text] -> Text -> Text -> Message
werewolf.cabal view
@@ -1,5 +1,5 @@ name:           werewolf-version:        0.3.1.3+version:        0.3.2.0  author:         Henry J. Wylde maintainer:     public@hjwylde.com