wOxlf/README.md

61 lines
2.4 KiB
Markdown
Raw Normal View History

2022-03-05 21:35:02 +00:00
# wOXlf
Discord bot for managing an anonymous [Werewolf Game](https://en.wikipedia.org/wiki/Mafia_(party_game)).
## How It Works
A host gets a list of players to play, and then begins the game with the `!start` command.
Each player is assigned a channel where they will view the game through. The player can read and send messages
in this channel normally. When a message is sent, it is forwarded to all other player channels. The message's author
is obscured by a codename. During day phases, players can cast a vote for who they wish to "terminate" that day.
2022-03-05 21:35:02 +00:00
The game proceeds as a normal Werewolf game.
## Channels
* Host Channel: Used by the host to interact with the game, can also be used by spectators to see the game state.
* Real player names are displayed along with code names in this channel
* Player Channel: A channel for a single player, allows them to chat with the other players and run commands.
* Vote Channel: Contains all the votes made in a game.
## Commands
## Host
* `!start <list of player ids>` - starts the game
* `!end` - Ends the current game
* `!say <msg>` - Allows the host to speak into the game chat
* `!broadcast <msg>` - Broadcasts a system message, this message is then pinned in each player channel
* `!next_phase <duration> <msg>` - Send the next phase message. Also cycles the phase
* `!terminate <player>` - Kills a player and removes them from the game
* `!add_time <duration>` - Adds more time to the current game
## Players
* `!vote <player>` - Casts a vote for a player to be terminated. Only can be used during the day phase
* `!status` - Get the current game status. Includes time left in the phase and current vote tallies
2022-03-06 21:18:54 +00:00
* `!players` - Lists all the players in the game
2022-03-05 21:35:02 +00:00
## Example Config
```toml
# Discord Bot Token
token = ""
# Discord App Id
app_id = 0
# Channel to accept host commands from
host_channel = 1
# Channel to put vote status messages in
vote_channel = 2
2022-03-05 21:35:02 +00:00
# Category to crate the player cannels in
category = 3
# Directory to save game data into, game data will be saved as "wOxlf.toml"
game_state_dir = "."
2022-03-05 21:35:02 +00:00
# Random code names are generated in the format of <Adjective> <Occupation>
occupation = ["Engineer", "Scientist", "Dancer", "Farmer", "Captain", "Janitor", "Author", "Bartender", "Bum",
"Student", "Teacher", "Chef", "Waiter", "Comedian"]
adjective = ["Sleepy", "Drunk", "Smart", "Gifted", "Extreme", "Eccentric", "Amazing", "Bad", "Silly", "Dumb", "Smelly"]
```
## License
[MIT License](./LICENSE)