diff --git a/src/roles/mystic.py b/src/roles/mystic.py index 4bd4d3b..c4b9394 100644 --- a/src/roles/mystic.py +++ b/src/roles/mystic.py @@ -10,12 +10,12 @@ from src.events import Event @event_listener("exchange_roles") def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): - evt = Event("get_special", {"special": set()}) - evt.dispatch(cli, var) + evt2 = Event("get_special", {"special": set()}) + evt2.dispatch(cli, var) pl = set(list_players()) wolves = set(list_players(var.WOLFTEAM_ROLES)) neutral = set(list_players(var.TRUE_NEUTRAL_ROLES)) - special = evt.data["special"] + special = evt2.data["special"] if nick_role == "wolf mystic" and actor_role != "wolf mystic": # # of special villagers = # of players - # of villagers - # of wolves - # of neutrals @@ -35,12 +35,12 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): @event_listener("transition_night_end", priority=2.01) def on_transition_night_end(evt, cli, var): - evt = Event("get_special", {"special": set()}) - evt.dispatch(cli, var) + evt2 = Event("get_special", {"special": set()}) + evt2.dispatch(cli, var) pl = set(list_players()) wolves = set(list_players(var.WOLFTEAM_ROLES)) neutral = set(list_players(var.TRUE_NEUTRAL_ROLES)) - special = evt.data["special"] + special = evt2.data["special"] for wolf in var.ROLES["wolf mystic"]: # if adding this info to !myrole, you will need to save off this count so that they can't get updated info until the next night diff --git a/src/roles/wolf.py b/src/roles/wolf.py index e0a9568..a56ae25 100644 --- a/src/roles/wolf.py +++ b/src/roles/wolf.py @@ -223,6 +223,8 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): notify = [] for i, player in enumerate(pl): prole = get_role(player) + if player == nick: + prole = actor_role if prole in wcroles: cursed = "" if player in var.ROLES["cursed villager"]: @@ -232,14 +234,14 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): elif player in var.ROLES["cursed villager"]: pl[i] = player + " (cursed)" - mass_privmsg(cli, notify, messages["players_exchanged_roles"].format(nick, actor)) - evt.data["actor_messages"].append("Players: " + ", ".join(pl)) - if nick_role in CAN_KILL and var.DISEASED_WOLVES: - evt.data["actor_messages"].append(messages["ill_wolves"]) - if not var.DISEASED_WOLVES and var.ANGRY_WOLVES and nick_role in CAN_KILL: - evt.data["actor_messages"].append(messages["angry_wolves"]) - if var.ALPHA_ENABLED and nick_role == "alpha wolf" and actor not in var.ALPHA_WOLVES: - evt.data["actor_messages"].append(messages["wolf_bite"]) + mass_privmsg(cli, notify, messages["players_exchanged_roles"].format(nick, actor)) + evt.data["actor_messages"].append("Players: " + ", ".join(pl)) + if nick_role in CAN_KILL and var.DISEASED_WOLVES: + evt.data["actor_messages"].append(messages["ill_wolves"]) + if not var.DISEASED_WOLVES and var.ANGRY_WOLVES and nick_role in CAN_KILL: + evt.data["actor_messages"].append(messages["angry_wolves"]) + if var.ALPHA_ENABLED and nick_role == "alpha wolf" and actor not in var.ALPHA_WOLVES: + evt.data["actor_messages"].append(messages["wolf_bite"]) elif actor_role in wcroles and nick_role not in wcroles: pl = list_players() random.shuffle(pl) @@ -247,6 +249,8 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): notify = [] for i, player in enumerate(pl): prole = get_role(player) + if player == actor: + prole = nick_role if prole in wcroles: cursed = "" if player in var.ROLES["cursed villager"]: @@ -256,14 +260,14 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): elif player in var.ROLES["cursed villager"]: pl[i] = player + " (cursed)" - mass_privmsg(cli, notify, messages["players_exchanged_roles"].format(actor, nick)) - evt.data["nick_messages"].append("Players: " + ", ".join(pl)) - if actor_role in CAN_KILL and var.DISEASED_WOLVES: - evt.data["nick_messages"].append(messages["ill_wolves"]) - if not var.DISEASED_WOLVES and var.ANGRY_WOLVES and actor_role in CAN_KILL: - evt.data["nick_messages"].append(messages["angry_wolves"]) - if var.ALPHA_ENABLED and actor_role == "alpha wolf" and nick not in var.ALPHA_WOLVES: - evt.data["nick_messages"].append(messages["wolf_bite"]) + mass_privmsg(cli, notify, messages["players_exchanged_roles"].format(actor, nick)) + evt.data["nick_messages"].append("Players: " + ", ".join(pl)) + if actor_role in CAN_KILL and var.DISEASED_WOLVES: + evt.data["nick_messages"].append(messages["ill_wolves"]) + if not var.DISEASED_WOLVES and var.ANGRY_WOLVES and actor_role in CAN_KILL: + evt.data["nick_messages"].append(messages["angry_wolves"]) + if var.ALPHA_ENABLED and actor_role == "alpha wolf" and nick not in var.ALPHA_WOLVES: + evt.data["nick_messages"].append(messages["wolf_bite"]) if actor in KILLS: del KILLS[actor] diff --git a/src/wolfgame.py b/src/wolfgame.py index 295a020..2e73d88 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -5921,8 +5921,8 @@ def charm(cli, nick, chan, rest): chk_nightdone(cli) -@event_listener("targeted_cmd", priority=9) -def on_targeted_cmd(evt, cli, var, cmd, actor, orig_target, tags): +@event_listener("targeted_command", priority=9) +def on_targeted_command(evt, cli, var, cmd, actor, orig_target, tags): # TODO: move beneficial command check into roles/succubus.py if "beneficial" not in tags and is_safe(actor, evt.data["target"]): pm(cli, actor, messages["no_acting_on_succubus"].format(cmd))