Go to file
skizzerz 116653432b !stats Overhaul
Decoupled ROLE_REVEAL from impacting !stats, added new STATS_TYPE.

ROLE_REVEAL is now a string:
- on = roles revealed on death
- off = roles not revealed on death
- team = user's team revealed on death but not their role

STATS_TYPE is also a string:
- default = stats are calculated as if a villager or nonplayer was
  manually tracking who was what; this leads to !stats not revealing
  any information that is not publicly known
- accurate = what it used to be with a couple modifications; all roles
  are shown (VG and time lord are no longer lumped with villager),
  alpha wolf and lycans turning are hidden, nothing else is hidden
  (so you can see what amnesiac turned into or when clone turns)
- team = only shows number of people on each team, calculated the same
  way as accurate
- disabled = stats are disabled, doing !stats only serves as a mass-ping
  of alive players

Removed random_reveal/random_noreveal hack
- !fgame random=role reveal:on|off does the same thing as the hack used
  to do.

Allow all game modes to take arguments (aka the blah in roles=blah).
- Allowed arguments are "role reveal" (on/off/team), "stats type"
  (default/accurate/team/disabled), and "abstain"
  (enabled/restricted/disabled).
- roles obviously still allows for taking individual roles as arguments
  as well as specifying a default role, however this functionality is
  not available for any other gamemode.
- if any custom options are set as a result of this or changing them in
  game mode constructors, players will be informed of which options are
  in play.

Performing !frole will force STATS_TYPE from default to accurate, this
is done because the default logic is based not on what roles are
currently in existence, but rather what roles the game was started with
and what transformations could have applied to them. !frole throws a
complete monkey wrench in that to the point where it is impossible to
nicely recover.

Clone and Traitor are now unconditionally blacklisted for amnesiac, as
the additional logic to support them in default !stats is incredibly
complex and as such was not done for this PR.

Matchmaker is conditionally blacklisted for amnesiac if amnesiacs turn
after the first night. It is an allowed choice (unless it appears on the
config blacklist) if amnesiacs turn night 1.
2015-07-17 18:42:07 +02:00
oyoyo Fix capability negotiation to be more sane (and IRCv3.2-compliant) 2015-06-15 20:20:28 +02:00
src !stats Overhaul 2015-07-17 18:42:07 +02:00
.gitignore Add a proper logging feature. Closes #72. 2015-01-13 19:58:55 -05:00
.mailmap Fix @skizzerz's entry in .mailmap 2015-03-08 21:40:34 +01:00
botconfig.py.example Remove DISABLED_GAMEMODES 2015-06-13 17:25:23 +02:00
CONTRIBUTING.md Rename .markdown files back to .md 2015-05-24 00:30:54 +02:00
LICENSE Convert Windows line endings to Unix 2013-09-04 11:56:00 +02:00
README.md Update README.md 2015-05-24 00:32:02 +02:00
wolfbot.py Fix imports 2015-06-15 17:36:46 +02: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.2 or newer to run the bot.

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.

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.