Go to file
Ryan Schmidt 5f7e4e4d05 Revamp how gamemode votes work
- Majority vote will still select that mode unconditionally
- When there is no majority vote, the game mode is decided in a two-step process:
  1. The bot will first try to select a game mode among those voted vs a random gamemode (for the purpose of this, all players who did not vote are considered to have voted for a random gamemode). For example, in an 8 player game if there are 2 votes for foolish, 2 votes for aleatoire, and 1 vote for default, one of `{foolish, foolish, aleatoire, aleatoire, default, random gamemode, random gamemode, random gamemode}` will be chosen (25% foolish, 25% alea, 12.5% default, 37.5% random gamemode)
  2. If random gamemode is selected, a random mode is selected according to the base likelihoods. Votes do not modify this anymore

Votes which are for majority-only modes or modes with incorrect player counts are not counted (and treated as votes for a random gamemode instead)
2018-07-01 13:18:36 -07:00
messages Split and convert prophet 2018-06-19 11:34:46 -04:00
oyoyo Rework TLS validation a bit and support SASL EXTERNAL 2018-01-10 12:09:10 -07:00
roles Make sure only actual role files are imported 2018-04-24 13:25:16 -04:00
src Revamp how gamemode votes work 2018-07-01 13:18:36 -07:00
.gitignore Rework TLS validation a bit and support SASL EXTERNAL 2018-01-10 12:09:10 -07:00
.mailmap .mailmap: Update my primary email 2017-05-15 21:43:26 +02:00
botconfig.py.example Add the new User containers (#316) 2018-04-13 13:37:04 -07:00
CONTRIBUTING.md Update CONTRIBUTING.md 2016-11-19 11:37:26 +01:00
gamemodes.py.example revert previous commit (af4be89897) 2017-05-06 15:06:58 -04:00
LICENSE Convert Windows line endings to Unix 2013-09-04 11:56:00 +02:00
messages.json.example move irc messages to json and allow overriding in custom file 2015-11-10 19:58:50 -06:00
README.md README.md: Mention SQLite3 requirement 2017-05-15 21:42:34 +02:00
requirements.txt Fix requirements.txt to depend on the right enum module 2016-10-29 17:28:43 +02:00
wolfbot.py Support for TLS certificate verification and client certificates. (#301) 2018-01-10 07:58:19 -07:00

This is the Werewolf game bot for ##werewolf on freenode. It's a fork of lycanthrope, which was the last bot used in #wolfgame before it died.

We have an active community, and we'd love for you to join us!

Running your own copy

You need Python 3.3 or newer to run the bot. Python 3.4 and higher is recommended.

SQLite3 is required for the bot's database. If compiling Python from source, you may need to install the appropriate SQLite3 development libraries for your distribution first.

Copy botconfig.py.example to botconfig.py and modify the settings as needed. You can also copy-paste individual settings from src/settings.py into botconfig.py if you want to modify them. You may also add or customize your own game modes by renaming gamemodes.py.example to gamemodes.py and using the same layout used in src/gamemodes.py.

Note: you should never alter files under the src folder directly (unless you are submitting a change to the code), use botconfig.py and gamemodes.py for related changes.

To start the bot, run ./wolfbot.py. You can use --verbose to log all raw IRC messages and --debug to enable some debugging features. These options should not be used in production.