It will now return as soon as it finds the role for the player,
instead of calling var.list_players_and_roles every single time.
I haven't tested in a real-world scenario, but in a test game
with 10000 players (don't ask), the speed improvement is very clear
(~1-2s per player when sending out nighttime PMs instead of ~10s).
!fsend is a very dangerous command if abused (up there with exec), and
should be properly admin-only instead of allowed to be given out to
non-admins. Unlike fsay/fact, there is no easy way to restrict fsend
when a non-admin uses it.
_collections is the C implementation (and where defaultdict lies), and
is as such already loaded when the interpreter is launched. collections
imports a bunch of other useless stuff we're not interested in.
- You can now use "-cmds" to group by command rather than user. This is
useful to, say, check who is allowed to use !revealroles.
- The output is now sorted alphabetically, which should make visual
navigation much easier.
- The command character is no longer prefixed to the commands, as I feel
like it's just a waste of space.
- Long messages are now broken properly, using var.break_long_message().
After a discussion in ##werewolf-dev, we've decided that if a majority
of the players wants a game mode, there's no reason not to allow it.
If a game mode is broken, it can be commented out in the code.
It's been found that larger game sizes heavily favors the village, this
reduces the village power significantly by removing obvious "claim"
roles and shifting more powerful roles later into the rotation where
they are less effective. This may be too much of a shift but that is
currently unknown.
- Shaman removed entirely
- Hunter now at 10p (from 15)
- GA now at 12p (from 10)
- Detective now at 15p (from 12)