Commit Graph

1268 Commits

Author SHA1 Message Date
skizzerz
1e09bff8df Fix alpha wolf bug 2014-12-26 22:32:44 -06:00
Ryan Schmidt
4e3b61f8dc Merge pull request #98 from skizzerz/alphawolf
Add 2 new roles: doctor and alpha wolf
2014-12-26 19:30:40 -06: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
93f5c6a4f8 Make the bite command make use of the new get_victim function 2014-12-26 01:06:23 -06:00
skizzerz
d42fa45d2f Make alpha wolf more powerful
Each time a wolf dies while a bitten person is undergoing
transformation, they will now transform one night earlier. This makes it
much more likely for the bitten person to actually turn into a wolf
before the game is over. For larger game sizes, the turn is pretty much
guaranteed due to the number of wolves, which means safes need to
tightly coordinate to figure out who was actually bitten due to wolves
possibly having full info and an insider.
2014-12-26 01:06:23 -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
nyuszika7h
db9c52a3e2 Fix admin check in fdie and frestart 2014-12-23 23:56:55 +01:00
jacob1
ff737609b5 Fix error when silenced gunner shoots 2014-12-23 17:45:07 -05:00
nyuszika7h
274aedf050 Add SIGUSR2 for aftergame restart 2014-12-23 12:05:50 +01:00
nyuszika7h
036ac29f4b Add signal handling
- SIGINT (Ctrl-C) and SIGTERM will do a clean quit now.
- SIGUSR1 will restart the bot.
2014-12-22 23:38:06 +01:00
Janik Kleinhoff
c611db5109 botconfig.py.example: improve example values
* there is no good reason *not* to use SSL;
* the example config assumes freenode, where a wolfgame channel would be
  expected to use the double-# namespace; if we're going to suggest
  a network to use, our example should follow their policy, too.
2014-12-19 21:52:12 +00:00
jacob1
15fab6c0b7 possibly prevent error if bot is opped before WHO results come back 2014-12-19 12:24:21 -05:00
jacob1
a6a87c2dde add villager and cultist to the amnesiac blacklist 2014-12-19 10:29:07 -05:00
jacob1
6a09f77a85 fix for recent gstats commit 2014-12-18 22:42:05 -05:00
jacob1
4573242f78 !roles uses var.role_order also (useful with !roles #) 2014-12-18 22:37:10 -05:00
jacob1
93cd95cfef fix !goat (also wasn't fully fixed) 2014-12-18 20:37:10 -05:00
jacob1
3a7c7f777b fix !faftergame frestart
was calling the pmcmd version with the arguments inside chan instead of *rest
2014-12-18 18:18:57 -05:00
jacob1
61e41a5776 fix gstats error when using 8p instead of just 8 2014-12-18 18:18:57 -05:00
jacob1
1a4ad90dd2 don't show "was x" for templates (thought I did this already) 2014-12-18 18:18:57 -05:00
VULPINE
07ddf35c37 Update .mailmap 2014-12-18 15:47:38 -05:00
jacob1
92a7697584 order !pstats and !stats using var.role_order() 2014-12-18 13:26:20 -05:00
jacob1
7d2d65f80d fix player count not appearing when quitting in join phase 2014-12-18 00:03:36 -05:00
jacob1
e9944f06eb stop_game errors don't prevent !frestart and !fdie from working 2014-12-17 23:44:32 -05:00
jacob1
5736f3d758 fix error if mad scientist-assassin targets one of their own kills 2014-12-17 23:18:27 -05:00
skizzerz
6911ce2ac7 Revert "amnesiac can't turn into default role"
They most certainly can, changing this is a gameplay change and is not
the proper place for this anyway.

This reverts commit 43676344a8.
2014-12-17 21:40:32 -06:00
jacob1
43676344a8 amnesiac can't turn into default role
It seems I wasn't a villager, I was actually a villager all along
2014-12-17 22:37:13 -05:00
jacob1
4bced1cf2a ping villagers in end of game list + some bugfixes 2014-12-17 21:49:39 -05:00
Ryan Schmidt
44a10b206e Merge pull request #97 from lykoss/nickcomplete
new complete_match/get_victim functions to clean up code for role commands
2014-12-17 20:29:45 -06: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
8eb1138a4b Remove unnecessary function calls, add DYNQUIT_DURING_GAME check for noreveal per woffle 2014-12-17 14:35:32 -05:00
jacob1
898893f72c fix killing cultist/minion, !goat, and other minor bugs 2014-12-16 22:14:18 -05:00
skizzerz
a7928399a7 Fix hunter and vengeful ghost being unable to kill a visiting harlot 2014-12-14 23:53:27 -06:00
skizzerz
baa3831ce7 Fix bot's handling of WHO replies on connect:
Some IRCds always output the servername on a WHOX query even if it
wasn't asked for. Let's ask for it now and just ignore the response. The
order of parameters in WHOX is now in the order they are returned, to
make life easier.

Also tidy up the generator a tad; if we aren't using things we're
computing then there's no need to compute it at all :)
2014-12-14 23:48:24 -06:00
Ominous
5c57c62be3 Make dynquit during game configurable, per woffle 2014-12-14 23:34:15 -05:00
jacob1
18199b166c fix multiple letter command prefixes 2014-12-14 17:42:36 -05:00
jacob1
be250fabe2 !roles/!gamestats accept partial names, new complete_match/get_victim functions to clean up code for role commands 2014-12-14 17:06:22 -05:00
jacob1
bc60357ae5 !roles/!gamestats accept partial names, new complete_match/get_victim functions to clean up code for role commands (reverted from commit c1a937f763) 2014-12-14 16:30:25 -05:00
jacob1
c1a937f763 !roles/!gamestats accept partial names, new complete_match/get_victim functions to clean up code for role commands 2014-12-14 16:23:52 -05:00
nyuszika7h
c4fb449a77 Reintroduce !mystats
It's useful for things like "!m wolf", and it's easier to do this than
hacking !pstats to support "!p wolf", which could be ambiguous if
there's a player with an account name of "wolf".
2014-12-14 15:14:28 +01:00
jacob1
60cd1ee06c allow gstats and pstats in pm during games 2014-12-14 01:30:07 -05:00
Ominous
3294c01b49 Avert convention rot per woffle 2014-12-13 19:27:09 -05:00
skizzerz
970e55e828 Fix instance where harlot A would not die if harlot A is visiting harlot B, harlot B is visiting someone, and wolves attack harlot B 2014-12-13 17:19:25 -06: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
skizzerz
7d3a7cd140 Fix fjoining fake nicks 2014-12-13 11:30:06 -06:00
Janik Kleinhoff
5789be967e ping: more useful behaviour when noone can be pinged 2014-12-12 18:53:50 +00:00
Janik Kleinhoff
e9c8768b31 settings/wolfgame.py: fix typo (I blame Vgr) 2014-12-12 18:50:31 +00:00
Vgr E.Barry
17c59fd277 Fix a few random issues with previous commit. 2014-12-09 21:40:25 -05:00
Ryan Schmidt
ca8fe1ae86 Merge pull request #92 from Vgr255/various-adds
Huge overhaul to the system to use accounts.
2014-12-09 20:39:25 -06:00