Commit Graph

189 Commits

Author SHA1 Message Date
Vgr E.Barry
cbd3c60890 Fix bot crashing on start if DENY_ACCOUNTS is not empty. 2015-01-11 22:11:14 -05:00
skizzerz
b4fc0a214b Reduce number of immunizations doctor gets
Now doctor gets 2 at 10p, 3 at 15p, and 4 at 23p. Formerly it was 2 at
10p, 3 at 12p, 4 at 18p, and 5 at 24p.

This reduces the doctor to being able to only immunize between 13.64%
and 20% of the village (min at 22p, max at 10p and 15p), down from
between 17.39% and 25% (min at 23p, max at 12p).
2015-01-03 21:29:25 -06:00
skizzerz
9f28036494 Remove some restrictions on who can be assassin
The only roles that should NOT be assassin are roles that the other team
MUST kill in order to have a good shot at winning. Therefore, we don't
need to have so many saferoles unable to be assassin, as well as certain
neutral roles. The current list is as follows:

- wolves + traitor, since these all need to die for village to win
- lycan, because if turned they need to die for village to win
- seer/oracle/harlot/augur/detective, capable of making safes so wolves
  need to focus on killing them in order to have a shot at winning
- bodyguard/GA, capable of preventing other safes from dying, again need
  to die for wolves to have a shot at winning

Everyone else is fair game, including shaman, drunk, hunter, doctor,
crazed shaman, and fool (who were all previously restricted).

If drunk is assassin, they don't get to choose their target, rather they
get one randomly assigned to them automatically.
2015-01-03 12:16:26 -06:00
Vgr E.Barry
6e9c2ef6ff Change a few minor things. 2015-01-03 10:55:48 -05:00
Vgr E.Barry
41089786d8 Remove notice if using a role command you don't have access to. 2015-01-02 20:40:15 -05:00
Vgr E.Barry
df26d8d25e Huge overhaul to the decorators + small changes.
- Merge channel and PM commands in a single decorator.
- Add many parameters for the decorators, reducing commands cluster.
- Added back the admin_only check for some commands; special-cased
'<console>'.
- Moved the checking for which roles are seen wolf in the settings; same
for seen as default.
- Added a variable to pick if one is seen as the default role or as a
villager where applicable (default: True).
- Fixed seer/oracle seeing through amnesiac.
- Some fixes to the totem chances that I forgot to add in the previous
commit.
- Removed some useless module imports.
- Moved some functions to settings.
- Changed all single-quotes to double-quotes in commands for
consistency.
- Renamed 'cmd' variable in both force and rforce commands to avoid
confusion.
- Probably a bunch of other things. Don't consider this commit
description to be 100% complete.
2015-01-02 15:57:44 -05:00
Janik Kleinhoff
09b5a62a9b Disallow !quit immediately after starting to avoid accidents 2015-01-01 05:20:52 +00:00
nyuszika7h
7d509e7c1d start: Add per-user rate limit 2014-12-31 21:07:25 +01:00
Vgr E.Barry
4f4a3f82a2 Fix totem chances.
This fixes the totem chances needing to add up to 1, and now can add up
to any arbitrary number or fraction. This also adds a TOTEM_ORDER
variable for shamans, as an attempt to allow more shamans in the future.
2014-12-30 15:04:43 -05:00
jacob1
453242a257 improve some comments and fix 'f rom' typo 2014-12-28 17:26:30 -05:00
jacob1
8dce5a4d16 gramatical fixes (var.plural one by skizzerz) 2014-12-28 17:06:15 -05:00
skizzerz
aaba899983 Add "alpha" gamemode
This mode features the alpha wolf and doctor roles, and should provide
for very "swingy" games where wolves are very disadvantaged at first
but should be able to make a decent comeback later on.

This also brought some rebalancing to gamemode weights, mostly all of
the existing ones stayed the same though, a summary of changes is below.
Numbers below are rounded to the nearest percent, so they won't
necessarily add up to 100.

default: 41% -> 40% (-1%)
foolish: 19% -> 16% (-3%)
mad: 19% -> 16% (-3%)
classic: 11% -> 8% (-3%)
lycan: 3% -> 2% (-1%)
aleatoire: 8% -> 8% (0%)
alpha: n/a -> 10%
2014-12-26 01:07:27 -06:00
skizzerz
9b61dde15e Add 2 new roles: doctor and alpha wolf
Doctor is on the village team, and has a number of immunizations they
can give out during the day. An immunized lycan reverts a normal
villager, and anyone that is immunized will die instead of turning into
a wolf if they are bitten by the alpha wolf. Beware, however, because
attempting to immunize someone already bitten will simply speed up the
process of them becoming a wolf!

Alpha wolf has a once-per-game ability where they can bite the wolves'
target instead of killing them following the death of a werewolf during
the day. The bitten person will subsequently turn into a wolf in 3
nights.
2014-12-26 01:06:17 -06:00
jacob1
a6a87c2dde add villager and cultist to the amnesiac blacklist 2014-12-19 10:29:07 -05:00
jacob1
92a7697584 order !pstats and !stats using var.role_order() 2014-12-18 13:26:20 -05:00
Ryan Schmidt
a960696e6e Merge pull request #95 from kernelpanic3/dyn-quit
Dynamic quit messages, take 2
2014-12-17 20:27:38 -06:00
jacob1
0a48c3ced4 end of game role list shows role swaps / is ordered mostly alphabetically
TODO: also order !stats, !pstats, others; and maybe show villagers in end of game list
2014-12-17 18:12:13 -05:00
Ominous
5c57c62be3 Make dynquit during game configurable, per woffle 2014-12-14 23:34:15 -05:00
Ominous
3294c01b49 Avert convention rot per woffle 2014-12-13 19:27:09 -05:00
nyuszika7h
63d4ac6e05 Don't mark services away in settings/wolfgame.py
This can be done in botconfig.py now.
2014-12-13 20:58:55 +01:00
Vgr E.Barry
3aa54cf565 Add an automatic mode toggling. 2014-12-13 14:23:56 -05:00
Janik Kleinhoff
e9c8768b31 settings/wolfgame.py: fix typo (I blame Vgr) 2014-12-12 18:50:31 +00:00
Vgr E.Barry
6a2eec608a Huge overhaul to the system to use accounts. 2014-12-09 19:44:06 -05:00
Ominous
0f6ee5c994 Distinction between a and an 2014-12-09 00:17:33 -05:00
kernelpanic3
906e181f16 Dynamic, random quit messages 2014-12-08 23:22:32 -05:00
Janik Kleinhoff
6dfce11865 Player totals: sum up totals for different capitalizations 2014-12-08 21:12:40 +00:00
Janik Kleinhoff
1d06b68d24 Move database/persistence initialization into a function
This allows us to postpone init_db(). One advantage of this is that
specifying AWAY in botconfig.py won't overwrite the away list from the
DB anymore, but properly get added to (as would be expected).
2014-12-08 14:02:09 +00:00
Janik Kleinhoff
7ad48ee412 Always initialize opt-in ping list
If OPT_IN_PING is enabled via botconfig.py, OPT_IN_PING isn't set to
True at the time we set up tables as necessary, so people using !in will
make the bot run into the lack of table and crash.

We already do this with the away list even if we're going to use opt-in
ping, so this shouldn't cause any issues.
2014-12-08 13:01:12 +00:00
Vgr E.Barry
f43dba4a3f Fix some specific PM commands not working. 2014-12-07 16:33:39 -05:00
Vgr E.Barry
3192052add Allow admins and owners tracking via account. 2014-12-06 15:43:34 -05:00
jacob1
47f3b0e4d3 fix fool wins with lover setting, adjust lots of numbers 2014-11-30 17:27:27 -05:00
jacob1
9e83ac941c increase likelihood of default-like rolesets, make rapid/drunkfire and amnesia only picked from a majority of the votes 2014-11-29 15:03:50 -05:00
jacob1
193ead22aa change "roleset" to "game mode" in the code / messages 2014-11-29 13:39:55 -05:00
jacob1
c964b556de update aleatoire roleset with description + likelihood 2014-11-28 16:29:37 -05:00
jacob1
857a9be355 balance adjustments to mad roleset 2014-11-28 16:25:42 -05:00
jacob1
185e750a0f fix !fgame roles to set MAX_PLAYERS to 35 (maybe useful for testing / huge games) 2014-11-28 16:25:42 -05:00
jacob1
a33e8cecd8 give the new rolesets real names 2014-11-28 16:25:42 -05:00
jacob1
d31a75c43f log stats for templates and "lover" 2014-11-28 16:24:55 -05:00
jacob1
059fe556ec gamestats are stored per roleset 2014-11-28 16:24:55 -05:00
jacob1
0708ace615 new test/unbalanced rolesets: drunkfire, lycan, something, potato 2014-11-28 16:24:55 -05:00
jacob1
d174fc4d89 rolesets are randomly picked with varying frequencies / add a !game command to make certain rolesets more likely
Not done, even if this is final it still needs more good rolesets to choose from
2014-11-28 16:23:56 -05:00
kernelpanic3
90dbbbe23e Fix comments 2014-11-28 01:55:58 -05:00
kernelpanic3
643dab58d0 More sensible and elegant name 2014-11-28 01:54:26 -05:00
skizzerz
21904cd33a Disable evilvillage since it's broken, and add a new roleset designed by Metacity 2014-11-28 00:47:48 -06:00
skizzerz
9ecd1075be 2 wolves instead of just 1, also make sure that hidden amnesiac is off (is by default, but just in case it gets changed) 2014-11-05 22:48:03 -06:00
skizzerz
7ad7580817 Add amnesia gamemode 2014-11-05 21:45:15 -06:00
jacob1
9f979439ea minor !fdeny change
to please the woffle god
2014-11-03 20:13:28 -05:00
jacob1
85675dedc6 remove ALLOW / DENY from botconfig 2014-11-03 13:44:39 -05:00
jacob1
c514296a80 save !fdeny / !fallow in database, also allow commands to be added / removed individually 2014-11-03 13:37:24 -05:00
Janik Kleinhoff
e16ed28787 settings/wolfgame.py: raise WAIT_AFTER_JOIN to 25 2014-11-02 04:15:21 +01:00