Commit Graph

2698 Commits

Author SHA1 Message Date
notnull
3c14e0deaf updated readme 2019-01-28 04:13:19 -05:00
notnull
65474d498e updated readme 2019-01-28 04:10:41 -05:00
notnull
6f02feeb4e edited messages/en.json 2019-01-28 04:08:50 -05:00
random-nick
d2ed485995 Rework how the !rolestats command parses its arguments (#350)
Now it tries completing the everything as a role first before attempting to complete it as a gamemode.
2018-07-24 09:27:45 -07:00
Ryan Schmidt
1e91f1a907
Fix rstats during game 2018-07-24 09:21:20 -07:00
Ryan Schmidt
0183d4af00
Change USER params to conform to RFC2812 and ircv3 recommendations. 2018-07-24 08:25:28 -07:00
random-nick
34da084a94 Add !rolestats command (#344)
This might me a little confusing, because it calculates the number of players that won (similar to !playerstats) instead of the number of times a team won (like !gamestats). This way it gives the proper winrate of a player playing that role, but gives an inflated number of total victories and games in cases where there are multiples of a role in the same game. Maybe it would be better to hide the actual numbers and show only the winrates in order to avoid confusion.
2018-07-17 09:18:37 -07:00
Ryan Schmidt
43471dcf03
Redact passwords that we send to NickServ from logs
We redacted PASS and SASL but neglected to redact messages to NickServ. whoops.
2018-07-13 22:34:05 -07:00
Ryan Schmidt
e426c25ddd
Change oyoyo tokenbucket to be consistent with !wait TB
In !wait, the delay is how long it takes (in seconds) to add one token,
whereas in oyoyo the delay was the opposite (lower = longer refill).

IMO the !wait one makes more sense, so change oyoyo to match.
2018-07-13 21:45:25 -07:00
Ryan Schmidt
4077bfe398
Make the fastest recommendation a bit more sane 2018-07-13 21:23:41 -07:00
Ryan Schmidt
537d139168
Make lagcheck a bit more reliable 2018-07-13 19:10:38 -07:00
Ryan Schmidt
8da46db506
Add --fakelag switch to determine tokenbucket settings (experimental) 2018-07-13 16:34:40 -07:00
Ryan Schmidt
36d856a764
Lower warning cap to 12
20 was too high and nobody ever hit it unless ops gave out manual warnings. Idlers mostly just got away with a very small amount of stasis.
2018-07-11 09:22:50 -07:00
Ryan Schmidt
939c4d8555 Integers best gers 2018-07-09 20:41:29 -07:00
Ryan Schmidt
9167b4b83d Make it more likely that lykos picks a voted mode 2018-07-09 20:39:26 -07:00
Ryan Schmidt
198632248e Fix doomsayer see not being applied 2018-07-08 21:10:30 -07:00
Em Barry
ca684ce2e4
Convert wolf.py and friends to the new User API (#347)
Also add a _wolf_helper.py file under the src/roles subfolder, containing helpers for all wolf-related roles.
2018-07-05 15:28:30 -04:00
Vgr E. Barry
7adebc49fa Fix priest message 2018-07-04 16:26:32 -04:00
ATMunn
ba78d5a40e Added random join messages (#343)
Changes the "player_joined" message in messages/en.json to a list of 10 unique messages and adds the appropriate code to wolfgame.py so a random message is chosen each time a player joins.
2018-07-04 09:51:27 -07:00
Ryan Schmidt
87291965c3
Merge pull request #346 from lykoss/split-priest
Split and convert priest
2018-07-04 09:36:39 -07:00
jacob1
5d6bb8d4c2 use new_role event when a player joins midgame in maelstrom 2018-07-03 19:56:04 -04:00
Vgr E. Barry
5cbb7f2a81 Finish priest 2018-07-03 19:24:35 -04:00
Emanuelle Barry
6c2861168a Split priest 2018-07-03 18:54:28 -04:00
Ryan Schmidt
ef20a35deb
Merge pull request #345 from electricalabrocoma/deadlink
remove deadlink
2018-07-03 12:41:12 -07:00
simplexish
2b5d83f82a remove deadlink 2018-07-03 19:03:22 +00:00
Em Barry
41262a148a Split turncoat and convert some of the exchange_roles listeners into new_role (#342)
- 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)
2018-07-03 07:41:51 -07:00
Ryan Schmidt
7d2eefd12a Fix lover chain winning
The base code is still not user aware and uses nicks, so make sure we pass in nicks to it.
2018-07-01 14:57:44 -07:00
Ryan Schmidt
5f7e4e4d05 Revamp how gamemode votes work
- Majority vote will still select that mode unconditionally
- When there is no majority vote, the game mode is decided in a two-step process:
  1. The bot will first try to select a game mode among those voted vs a random gamemode (for the purpose of this, all players who did not vote are considered to have voted for a random gamemode). For example, in an 8 player game if there are 2 votes for foolish, 2 votes for aleatoire, and 1 vote for default, one of `{foolish, foolish, aleatoire, aleatoire, default, random gamemode, random gamemode, random gamemode}` will be chosen (25% foolish, 25% alea, 12.5% default, 37.5% random gamemode)
  2. If random gamemode is selected, a random mode is selected according to the base likelihoods. Votes do not modify this anymore

Votes which are for majority-only modes or modes with incorrect player counts are not counted (and treated as votes for a random gamemode instead)
2018-07-01 13:18:36 -07:00
Ryan Schmidt
38505ba9a9 Rebalance likelihoods
There are now 5 general brackets of game likelihoods:
- default gets 40 because it's default
- game modes which have proven to be popular and which don't modify core gameplay get 10
- game modes which modify core gameplay a small amount or do not modify it but aren't as popular get 5
- game modes which modify core gameplay a lot or should only rarely appear in rotation get 1
- game modes which are not balanced get 0 (joke/fun modes)

Default likelihoods add up to 95, so the likelihood is approximately also the % chance of it showing up without any votes.
2018-07-01 12:09:38 -07:00
Ryan Schmidt
974f67360d Fix night timeout bug 2018-06-29 20:47:21 -07:00
Emanuelle Barry
7da54b39a7 Fix !swap if used during join phase 2018-06-27 13:46:54 -04:00
skizzerz
59ceb13329 Sleepy bug fix
Don't error if someone tries to move after having gotten out of a
nightmare. Also use clear instead of del because I thought that it may
have been an issue but it turned out to have been fine but I'm too lazy
to revert it and it doesn't change anything.
2018-06-26 11:09:05 -05:00
skizzerz
c79fbb03c1 Make wolf chk_nightdone less hacky 2018-06-26 00:06:30 -05:00
Ryan Schmidt
4f5d3f1371
Style changes
- Turns out we use OR elsewhere in expression context (even though it's technically an undocumented behavior), so use it here as well for consistency
- Change indents to match other SQL statement indentation
- Change join condition ordering to put the joined table first (personal nit I enjoy picking)
2018-06-25 13:39:48 -07:00
electricalabrocoma
7552c492d6 Add total winrate output to !p (#341)
Mostly motivated by https://werewolf.chat/leaderboard/ listing only people with 200+ games
2018-06-25 13:36:14 -07:00
jacob1
a9a664b101 import threading in timelord.py 2018-06-24 00:50:21 -04:00
Vgr E. Barry
37dfdf7fc9 Fix maelstrom breaking 2018-06-22 17:18:54 -04:00
Ryan Schmidt
bd3fffaa6a
!fgoat Vgr
Fix people winning when they lose
2018-06-21 15:59:58 -07:00
Vgr E. Barry
9856fb1180 Rework the User containers a bit. Also add a friendlier string repr. 2018-06-21 17:58:22 -04:00
Vgr E. Barry
685a904889 Make sure bot doesn't break if someone quits during join phase 2018-06-21 15:50:18 -04:00
Em Barry
213f7b2c3b
Split and convert clone (#340) 2018-06-21 15:35:03 -04:00
Ryan Schmidt
aaeb51b203
Don't copy var.ROLE_GUIDE in default
Since the base var.ROLE_GUIDE is default anyway, and copying it breaks custom roles trying to be entirely contained within their file
2018-06-20 08:43:27 -07:00
Vgr E. Barry
4667bf9987 Remove unneeded botconfig imports in role files 2018-06-19 12:38:09 -04:00
Vgr E. Barry
817d71c332 Fix werecrow observing prophet 2018-06-19 12:16:38 -04:00
Vgr E. Barry
0479bab5e1 Split and convert prophet
Also changes prophet from being able to pray twice to only being able to pray once, but they get the third of the player list (instead of half and then one).
2018-06-19 11:34:46 -04:00
Ammon Smith
e54a3f7672 Convert wild child (#338)
* Start conversion of wild child.

* Remove redundant silenced=False.

* Inline random idol selection.

* Use get_players() instead of get_all_players().

* Remove botconfig import.

* Fix checks.

* Remove wild child from wolves when notifying.

* Update listeners.
2018-05-26 23:58:59 -04:00
Ammon Smith
afa9a04077 Split minion (#337) 2018-05-26 18:33:56 -04:00
Em Barry
845663820f
Merge pull request #326 from ammongit/split-wolves-players-english
Remove hardcoded English for "Players:" and "Wolves:"
2018-05-26 09:20:32 -04:00
Ryan Schmidt
c42c68f4cc
Merge pull request #329 from ammongit/mudkip-no-4p
Remove 4p mudkip
2018-05-25 06:52:35 -07:00
Ryan Schmidt
eeb4a6cd27
Merge pull request #334 from lykoss/succubus-overhaul
Overhaul succubus
2018-05-25 06:51:52 -07:00