Commit Graph

203 Commits

Author SHA1 Message Date
Janik Kleinhoff
71b420a1a5 Merge branch 'ping-if-feature'
This appears to have been sufficiently reviewed and doesn't seem to have
any critical flaws remaining; multiple other people agreed with merging.
2015-02-21 23:17:19 +00:00
nyuszika7h
d295a0bdc2 Re-add settings/__init__.py
That shouldn't have been removed. Oops. Now I also added a notice to
anyone who may be looking at the otherwise pretty empty file in the
future.
2015-02-21 23:05:08 +01:00
nyuszika7h
9f6e474ff6 Remove unused code and files 2015-02-21 23:03:11 +01:00
Vgr E.Barry
75b14a87c1 Improve the ping-if feature.
This adds sort of a rate-limiting and pinging method preferences. If the
amount of players the person wants is reached or exceeded, they will be
automatically added to the !ping list; this is the default behaviour.
Doing !pingpref will make the bot automatically ping them shortly after
- this is done by a separate thread which is started on the first join
and exits when game starts or last player quits. Doing so will not
remove them from the ping list.
2015-02-15 17:56:00 -05:00
Vgr E.Barry
d22d03d7d6 Add the new ping-if feature. 2015-02-15 14:47:46 +00:00
skizzerz
3d8ba4c1dd Add valentine mode 2015-02-13 19:28:00 -06:00
Vgr E.Barry
1ce5d69113 Improve is_admin and is_owner to check for cloak in privmsg if available. 2015-02-01 06:08:44 -05:00
Vgr E.Barry
98901ab86e Add a spontaneous combustion quit message. 2015-01-27 16:24:33 -05:00
skizzerz
ba9a9839fd noreveal balance tweaks: remove CS and make traitor turning message play when traitor turns 2015-01-26 22:24:16 -06:00
skizzerz
42e67f7900 Alpha balance tweak: remove gunner 2015-01-25 19:51:55 -06:00
Vgr E.Barry
52502de515 Add monster to cursed restrictions. 2015-01-21 21:36:02 -05:00
Janik Kleinhoff
1f916a8f57 mass_mode: look at ISUPPORT MODES= token 2015-01-14 21:05:57 +00:00
nyuszika7h
431ebe86d3 wait: Add per-user rate limit 2015-01-14 13:50:14 +01:00
Vgr E.Barry
20eda8c5d1 Removed obsolete logging code. 2015-01-13 19:58:58 -05:00
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