This reverts commit f49e7371b8.
Thinking about it, the old behavior actually makes sense. X visits Y,
and Y visits X. When wolf targets X, they find Y, and vice versa.
At 12 players, there are two harlots, and they can visit each other.
This is intended to make both of them invincible, but the actual
behavior was that the one visiting the victim would die.
chk_nightdone used to check whether the number of people seen equals
the number of seers (and the same for harlot, etc.). This means night
times out if the seer (etc.) leaves after seeing but before night is
otherwise ended. This commit changes equals to >=, and swaps around the
wolf part of that condition so that it matches the other parts.
This commit moves the !votes and !stats rate limit warnings to user
notices intead of in-channel messages, to be consistent with the other
rate limit warnings and because those messages are usually just
pointless noise. It also moves the CARE_BOLD and CARE_COLOR messages
to user notices, because they're spammy and annoying and just make
things worse when they're in-channel.
Instead of setting make_stasis as soon as they leave, then setting it
again with a negative number if they rejoin, we can just set it when
they actually reach the timer and are killed. We were actually doing
*both* up to now (which was probably what was causing the double stasis
mentioned in issue #8), so I just removed the make_stasis calls when
people leave and come back, and kept the one when they get killed.
The message about wolves winning was unclear that the comparison is
between wolves and uninjured villagers, which caused confusion a few
times because people thought the game ended due to a bug. This commit
changes the message to avoid this confusion.
Minor change requested by someone in #wolfgame a while ago. The old
!retract message ended in a period, and it's still there in the logger
message, but the new in-channel message didn't have one.
This commit adds some variable declarations and other minor things so
that setting var.START_WITH_DAY to 1 doesn't cause errors. This commit
doesn't actually fix that gamemode completely, since I'm still
pondering how best to make the game notify people of their roles when
the game starts in this mode, but it's a good start.
This patch fixes a bug in !join that caused new entries to be created in
the var.illegal_joins dictionary for every joining player because of a
missing check to see if the player's cloak is in the dictionary at all.
It also adds logic to !start to remove entries from the
var.illegal_joins dict if they currently have a value of 0, since these
entries are no longer relevant.
These changes together make !eval var.illegal_joins far more useful for
getting a list of *just* stasised players.