wOxlf/README.md

61 lines
2.5 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
2022-03-08 02:56:12 +00:00
A host gets a list of players to play, and then begins the game with the `$start` command.
2022-03-05 21:35:02 +00:00
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 <hours>h<minutes>m <list of player ids>` - starts the game
2022-03-08 02:56:12 +00:00
* `$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 <hours>h<minutes>m <msg>` - Send the next phase message. Also cycles the phase
2022-03-08 02:56:12 +00:00
* `$terminate <player>` - Kills a player and removes them from the game
* `$add_time <hours>h<minutes>m` - Adds more time to the current game
## Players
2022-03-08 02:56:12 +00:00
* `$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
* `$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)