For now, seer and wild child are done. There are some aspects of those
roles that are still incomplete, namely:
- sorcerer and alpha wolf handling of seer/oracle/augur is still in
wolfgame.py instead of via events
- wild child does not modify !stats
I could have avoided the two-liner in src/wolfgame.py, but it's much
more cleaner that way, even if it's not in src/gamemodes.py
To have the code in src/gamemodes.py means we'd have duplicated code
(and thus increased the chance of random bugs, as well as maintenance
burden). And practicality beats purity.
Can be either time-based or points-based. Also, made fwarn a bit smarter
at guessing what the user actually wanted to do based on the parameters
given to it. Warnings now always require acknowledgement, because that
paves the way for a future commit only beginning stasis once a warning
is acknowledged.
Warnings also split off into their own file to declutter wolfgame.py a
bit (now only 9k lines, wooooo! >_>)
Does not play nice with eir, that functionality isn't going to be in the
bot itself but rather some custom code in lykos (hooking into privmsg).
Before a winner of "" indicated abnormal game stop, so it wasn't logged;
add a new log parameter to account for those so we can free up "" for
games wherein nobody should win but the game should still be logged.
Also make the everyone dying condition use that.
All hostmask and account comparisons are now case-insensitive (nicks
still aren't, related to #217 -- changing nick sensitivity would break
everything in numerous places).
Also, refactor some things into other files where it makes sense to do
so, because putting unrelated things into the same commit is fun.