import src.settings as var from src.utilities import * from src import debuglog, errlog, plog from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event # handles villager and cultist @event_listener("transition_night_end", priority=2) def on_transition_night_end(evt, cli, var): if var.FIRST_NIGHT or var.ALWAYS_PM_ROLE: villroles = var.HIDDEN_VILLAGERS | {"villager"} if var.DEFAULT_ROLE == "villager": villroles |= var.HIDDEN_ROLES villagers = list_players(villroles) for villager in villagers: if villager in var.PLAYERS and not is_user_simple(villager): pm(cli, villager, messages["villager_notify"]) else: pm(cli, villager, messages["villager_simple"]) cultroles = {"cultist"} if var.DEFAULT_ROLE == "cultist": cultroles |= var.HIDDEN_ROLES cultists = list_players(cultroles) for cultist in cultists: if cultist in var.PLAYERS and not is_user_simple(cultist): pm(cli, cultist, messages["cultist_notify"]) else: pm(cli, cultist, messages["cultist_simple"]) # No listeners should register before this one # This sets up the initial state, based on village/wolfteam/neutral affiliation @event_listener("player_win", priority=0) def on_player_win(evt, cli, var, nick, role, winner, survived): # init won/iwon to False evt.data["won"] = False evt.data["iwon"] = False if role in var.WOLFTEAM_ROLES or (var.DEFAULT_ROLE == "cultist" and role in var.HIDDEN_ROLES): if winner == "wolves": evt.data["won"] = True evt.data["iwon"] = survived elif role in var.TRUE_NEUTRAL_ROLES: # handled in their individual files pass elif winner == "villagers": evt.data["won"] = True evt.data["iwon"] = survived # vim: set sw=4 expandtab: