def lynch(var, wrapper, message): """Use this to vote for a candidate to be lynched.""" if not message: show_votes.func(var, wrapper, message) return if wrapper.private: return msg = re.split(" +", message)[0].strip() can_vote_bot = var.CURRENT_GAMEMODE.can_vote_bot(var) voted = get_target(var, wrapper, msg, allow_self=var.SELF_LYNCH_ALLOWED, allow_bot=can_vote_bot, not_self_message="no_self_lynch") if not voted: return if try_absent(var, wrapper.source): return ABSTAINS.discard(wrapper.source) for votee in list(VOTES): # remove previous vote if votee is voted and wrapper.source in VOTES[votee]: break if wrapper.source in VOTES[votee]: VOTES[votee].remove(wrapper.source) if not VOTES.get(votee) and votee is not voted: del VOTES[votee] break if voted not in VOTES: VOTES[voted] = UserList() if wrapper.source not in VOTES[voted]: VOTES[voted].append(wrapper.source) channels.Main.send(messages["player_vote"].format( wrapper.source, voted)) global LAST_VOTES LAST_VOTES = None # reset chk_decision(var)
def no_lynch(var, wrapper, message): """Allow you to abstain from voting for the day.""" if not var.ABSTAIN_ENABLED: wrapper.pm(messages["command_disabled"]) return elif var.LIMIT_ABSTAIN and ABSTAINED: wrapper.pm(messages["exhausted_abstain"]) return elif var.LIMIT_ABSTAIN and var.FIRST_DAY: wrapper.pm(messages["no_abstain_day_one"]) return elif try_absent(var, wrapper.source): return for voter in list(VOTES): if wrapper.source in VOTES[voter]: VOTES[voter].remove(wrapper.source) if not VOTES[voter]: del VOTES[voter] ABSTAINS.add(wrapper.source) channels.Main.send(messages["player_abstain"].format(wrapper.source)) chk_decision(var)
def lynch(var, wrapper, message): """Use this to vote for a candidate to be lynched.""" if not message: show_votes.func(var, wrapper, message) return if wrapper.private: return msg = re.split(" +", message)[0].strip() can_vote_bot = var.CURRENT_GAMEMODE.can_vote_bot(var) voted = get_target(var, wrapper, msg, allow_self=var.SELF_LYNCH_ALLOWED, allow_bot=can_vote_bot, not_self_message="no_self_lynch") if not voted: return if try_absent(var, wrapper.source): return ABSTAINS.discard(wrapper.source) for votee in list(VOTES): # remove previous vote if votee is voted and wrapper.source in VOTES[votee]: break if wrapper.source in VOTES[votee]: VOTES[votee].remove(wrapper.source) if not VOTES.get(votee) and votee is not voted: del VOTES[votee] break if voted not in VOTES: VOTES[voted] = UserList() if wrapper.source not in VOTES[voted]: VOTES[voted].append(wrapper.source) channels.Main.send(messages["player_vote"].format(wrapper.source, voted)) global LAST_VOTES LAST_VOTES = None # reset chk_decision(var)