- Split turncoat - Add `new_role` and `swap_role_state` events, convert some `exchange_roles` listeners to them (handles both exchange as well as roleswaps such as clone->X or traitor->wolf) - Refactor change_role(). Calling that is all that is needed for a roleswap now (no boilerplate) - Always give player list to new wolf roles. This does mean they'll get double lists in some cases, dealwithit.jpg - Make exchange totem no-op due to technical issues until we get role classes set up (exchanging role state across two new_role listeners doesn't work very well when the listeners get rid of old state) |
||
---|---|---|
messages | ||
oyoyo | ||
roles | ||
src | ||
.gitignore | ||
.mailmap | ||
botconfig.py.example | ||
CONTRIBUTING.md | ||
gamemodes.py.example | ||
LICENSE | ||
messages.json.example | ||
README.md | ||
requirements.txt | ||
wolfbot.py |
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.