171 Commits

Author SHA1 Message Date
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
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
Ammon Smith
d8763c34a9 Remove hardcoded English for players list. 2018-05-01 15:48:05 -07:00
Vgr E. Barry
35bcda40dc Split and convert matchmaker 2018-04-30 14:51:42 -04:00
Ammon Smith
30fe9c09a2 Remove 4p mudkip. 2018-04-29 18:09:08 -07:00
Vgr E. Barry
1a446205ce Split and convert amnesiac 2018-04-23 20:27:00 -04:00
Em Barry
745a1dc68a
Convert chk_decision (#317)
Convert chk_decision, chk_nightdone, transition_day, transition_night, doomsayer, mayor, and convert+split shamans in three files with a shared helper. Fixes and updates for the User containers, and some other tweaks and fixes.
2018-04-23 13:25:38 -04:00
Vgr E. Barry
00291a9a85 Fix broken sleepy event 2018-04-17 19:36:28 -04:00
skizzerz
94cdfc0a55 Redo DISABLE_ACCOUNTS handling
Only check it where absolutely necessary, and ensure in User that we
don't set accounts if we don't support them. This lets us ensure that
account is always None when account support is disabled, which means
that the existing None checks handle that without additional conditions.
2018-04-13 17:09:42 -05:00
Em Barry
28f26e181b Add the new User containers (#316)
- Add the new User containers for easier handling of users throughout the codebase
- Remove the swap_player event (replaced by User.swap, made possible thanks to the containers)
- Remove the cli argument from several events
- Remove !frole (a replacement will follow)
- Remove the ALLOWED_NORMAL_MODE_COMMANDS config option

Plus a couple of small fixes here and there.
2018-04-13 13:37:04 -07:00
skizzerz
c121c0f08f Mudkip balance fix and bugfix
Fix balance in mudkip, it was skewed too much towards village winning.

Also, if day ended in mudkip and nobody was being voted, it would error.
Let's make that not error.
2018-04-04 17:06:03 -05:00
Vgr E. Barry
a8790b439a Remove the cli argument from chk_win 2018-02-04 17:26:40 -05:00
skizzerz
965b230f64 Fix mudkip day timeouts breaking things if game ends during them 2018-01-11 11:08:57 -07:00
skizzerz
4a7dd390e5 Don't try to voice/devoice fakenicks
There were a few places where we still tried to do this.
Also get rid of the FEATURES checking for what voice corresponds to,
+v is defined to be the channel mode for voice per RFC so we can
safely hardcode it. A few places weren't changed over because it may
be better to expand those places to handle the other status modes as
well.
2018-01-11 10:26:43 -07:00
skizzerz
0fa7664526 Voting fixes for mudkip and succubus
- Remove short-circuit in chk_decision event on day timeout. No idea why
  I put that there to begin with...
- Don't make succubus remove voters from the list, rather just set their
  weight to 0. This causes their vote to not count while still letting
  stuff interact with the fact they voted succ (such as desperation totem)
- Ensure that mudkip's vote change works on day timeout as well
2018-01-11 10:02:05 -07:00
skizzerz
f4876d254e Convert some things to new command API+users
MessageDispatcher, sleepy mode, warnings, and the latency command,
to be exact. Sleepy also benefits from some code deduplication in
addition to now operating on users.

The warnings code could use a more comprehensive overhaul too, but
that's going to be harder to achieve.
2018-01-09 16:06:40 -07:00
skizzerz
e8408214f5 Kill proxy with fire
It's not needed since we can import at function scope. Also make
chk_nightdone implicit for role commands executed during night, so we
can remove tons of redundant calls.
2017-12-29 16:49:09 -06:00
jacob1
15e0d9f503 convert most botconfig.NICK usages to users.Bot.nick 2017-12-29 11:30:04 -05:00
jacob1
8ed4b37633 fix mudkip again 2017-12-26 19:42:24 -05:00
skizzerz
7ba8290ece Mael and mudkip bugfixes
In mael, when giving wolflist to someone who joined midday, I assumed
that pl was a player list when it was already finessed into a list of
strings.

In mudkip, it is possible for the lynch logic to try to lynch someone
twice due to how chk_decision works (if you're forcing someone and
someone ELSE has a majority vote, who actually gets voted depends on the
order in which the dict keys are iterated over). As a result, ensure
that the only possible choice to lynch is the person we're interested in
lynching.
2017-12-22 12:49:55 -06:00
skizzerz
910d495f19 Balance changes
Swap cultist with minion so wolf can collab with them better and not
screw themselves over n1, and make shaman always get dt n1 to make
things more interesting.
2017-12-19 14:11:00 -06:00
jacob1
96aceb42be fix maelstrom midgame join 2017-12-17 20:01:11 -05:00
skizzerz
95da346344 Fix mudkip 2017-12-13 21:06:56 -06:00
skizzerz
efe4f538bb Fixes 2017-12-13 16:32:51 -06:00
skizzerz
4fde6f9bae Convert var.ROLES and var.ORIGINAL_ROLES to Users
This gets rid of the (dced) hack, with var.DCED_LOSERS taking its place.
Succubus was not touched, as there is already a PR which converts it,
although the succubus events in other files were touched.

Some sites were updated to be (more) Users-aware, while others replaced
it with an old deprecated get_roles() API. As more things get converted,
these will hopefully get eliminated as well. A FIXME comment was added
to all such occurrences.
2017-12-12 16:25:56 -06:00
Ryan Schmidt
d8aabf0db6
Merge pull request #306 from lykoss/harlot-convert
Convert harlot to the new API
2017-12-11 13:24:02 -07:00
jacob1
83f7294150 disable piper in maelstrom, broken for now 2017-12-10 22:03:07 -05:00
skizzerz
2aa4644ad8 Fix double lynch bug in new mode 2017-12-09 16:56:46 -06:00
skizzerz
a2dd0fd189 Balance tweaks for new mode
- Remove minion entirely, keeping cultist at 8p instead.
- Cultist swaps with doomsayer at 9p, so there's still only 2 wolfteam
  until 11p. Doomsayer is powerful enough already, don't need another
  wolfteam in there.
- Get rid of retribution totems. Shaman is now 50/50 death/pestilence
  and wolf shaman is 50/50 protection/misdirection.
- Make stalemates benefit village by allowing tied votes to lynch all
  tied people instead of nobody. Day ends once everyone votes, even if
  there is no majority vote. In that case, the plurality of votes is
  considered rather than majority.
2017-12-09 11:21:04 -06:00
skizzerz
f9119e12e0 pika pika 2017-12-08 22:36:11 -06:00
Vgr E. Barry
bfc5e6a9dd Convert harlot 2017-12-07 13:31:18 -05:00
skizzerz
4df8072afd Fix 8+ villagergame 2017-10-19 22:58:42 -05:00
Vgr E. Barry
cc4cfa34fe Remove testing leftover 2017-09-26 09:05:13 -04:00
Vgr E. Barry
d6540b4edb Fix some small issues 2017-09-26 07:56:11 -04:00
Vgr E. Barry
89cabd933b Update event listeners for del_player 2017-09-18 16:35:23 -04:00
Em Barry
95fd796953 Convert transition_day (#297)
transition_day and relevant events have been converted to the users API. Additionally, VG was converted to the users API.
2017-09-11 16:55:19 -07:00
Vgr E. Barry
516d1d0c8c Update the chk_nightdone function and event 2017-09-04 13:56:33 -04:00
Em Barry
a9067bb8ca Change a bunch of things because we felt like it
* Convert the del_player event
* HAAAAAAAAAAAAAAANDS
* <insert snarky commit message here>
2017-08-30 10:09:31 -07:00
skizzerz
4d9e509a58 Add drunk to guardian, bit too many vils in there 2017-08-19 23:35:47 -05:00
skizzerz
3ea7ba0d2c Add guardian to default rotation now that win conds are fixed 2017-08-19 22:38:29 -05:00
skizzerz
7568baced8 Fix users not being voiced in mael when joining midgame 2017-08-19 00:16:32 -05:00
skizzerz
ef3c670a0d Make sleepy 10+
8-9p has only one safe, 2 wolves, and a dullahan. Usually this means
dulla controls the game and the winner is entirely determined by whether
or not both wolves are on the kill list. Aka it sucks.
2017-08-09 17:18:59 -05:00
skizzerz
ad5ab73e00 Forgot to update gamemodes del_player events to use new var names 2017-07-20 19:07:00 -05:00
skizzerz
ffb23f587d derp 2017-04-01 13:39:16 -05:00
skizzerz
8a8a79627f Overhaul how templates work
Templates are still applied on game start according to
var.TEMPLATE_RESTRICTIONS, but now any arbitrary role can be applied as
a template during gameplay without breaking things horribly.

Speaking of breaking things horribly, things are probably broken
horribly due to this. It was lightly tested, but there's a lot of
fundamental stuff that changed.
2017-03-31 12:45:53 -05:00
skizzerz
d029302ead Reduce delay range for villagergame
Now has a standard deviation of 1.5 seconds rather than 3 seconds, which
makes it a lot easier (hopefully) to identify when lykos is wolf.
2017-03-28 11:49:18 -05:00
Emanuel Barry
5d03ed414b Convert dullahan to use the new API (#292)
* Convert dullahan to use the new API

* Address small nitpicks about dullahan

* Totally unimportant commit, please do not pay attention at all
2017-03-28 09:39:51 -07:00
jacob1
268129bd9d fix potential recursion error during maelstrom
when calling chk_win_conditions, maelstrom uses a rolemap where all players are usually '0', this is casted to a set which makes it think there is only one player
2017-02-23 23:43:32 -05:00
jacob1
8f38900a44 fix chk_win events in gamemodes.py 2017-01-27 21:42:52 -05:00