diff --git a/src/roles/angel.py b/src/roles/angel.py index fd24c6d..60df04f 100644 --- a/src/roles/angel.py +++ b/src/roles/angel.py @@ -8,6 +8,7 @@ import botconfig import src.settings as var from src.utilities import * from src import users, debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -95,8 +96,8 @@ def on_acted(evt, var, nick, sender): evt.data["acted"] = True @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(list_players(("guardian angel", "bodyguard"))) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("guardian angel", "bodyguard"))) @event_listener("exchange_roles") def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): diff --git a/src/roles/detective.py b/src/roles/detective.py index ebc472d..47cb64b 100644 --- a/src/roles/detective.py +++ b/src/roles/detective.py @@ -5,6 +5,7 @@ import random import src.settings as var from src.utilities import * from src import debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -65,8 +66,8 @@ def on_del_player(evt, cli, var, nick, mainrole, allroles, death_triggers): INVESTIGATED.discard(nick) @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["detective"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("detective",))) @event_listener("exchange_roles") def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): diff --git a/src/roles/doomsayer.py b/src/roles/doomsayer.py index b69233b..084e9d5 100644 --- a/src/roles/doomsayer.py +++ b/src/roles/doomsayer.py @@ -4,6 +4,7 @@ import random import src.settings as var from src.utilities import * from src import debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -102,8 +103,8 @@ def on_doctor_immunize(evt, cli, var, doctor, target): evt.data["message"] = "not_sick" @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["doomsayer"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("doomsayer",))) @event_listener("chk_nightdone") def on_chk_nightdone(evt, cli, var): diff --git a/src/roles/dullahan.py b/src/roles/dullahan.py index d0ad35e..aec2ea0 100644 --- a/src/roles/dullahan.py +++ b/src/roles/dullahan.py @@ -130,8 +130,8 @@ def on_swap(evt, var, old_user, user): targets.add(user) @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["dullahan"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("dullahan",))) @event_listener("transition_day", priority=2) def on_transition_day(evt, cli, var): diff --git a/src/roles/harlot.py b/src/roles/harlot.py index 933bafa..e3cee88 100644 --- a/src/roles/harlot.py +++ b/src/roles/harlot.py @@ -8,6 +8,7 @@ import botconfig import src.settings as var from src.utilities import * from src import channels, users, debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -137,8 +138,8 @@ def on_begin_day(evt, var): VISITED.clear() @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["harlot"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("harlot",))) @event_listener("del_player") def on_del_player(evt, cli, var, nick, mainrole, allroles, death_triggers): diff --git a/src/roles/hunter.py b/src/roles/hunter.py index 79ee97f..54c1998 100644 --- a/src/roles/hunter.py +++ b/src/roles/hunter.py @@ -101,8 +101,8 @@ def on_acted(evt, var, nick, sender): evt.data["acted"] = True @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["hunter"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("hunter",))) @event_listener("transition_day", priority=2) def on_transition_day(evt, cli, var): diff --git a/src/roles/mystic.py b/src/roles/mystic.py index 6088ab3..e6b4622 100644 --- a/src/roles/mystic.py +++ b/src/roles/mystic.py @@ -4,19 +4,23 @@ import random import src.settings as var from src.utilities import * from src import debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @event_listener("exchange_roles") def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): - special = set(list_players(("harlot", "priest", "prophet", "matchmaker", - "doctor", "hag", "sorcerer", "turncoat", "clone", "piper"))) + if nick_role not in ("mystic", "wolf mystic") and actor_role not in ("mystic", "wolf mystic"): + return + + special = set(get_players(("harlot", "priest", "prophet", "matchmaker", + "doctor", "hag", "sorcerer", "turncoat", "clone", "piper"))) evt2 = Event("get_special", {"special": special}) - evt2.dispatch(cli, var) - pl = set(list_players()) - wolves = set(list_players(var.WOLFTEAM_ROLES)) - neutral = set(list_players(var.TRUE_NEUTRAL_ROLES)) + evt2.dispatch(var) + pl = set(get_players()) + wolves = set(get_players(var.WOLFTEAM_ROLES)) + neutral = set(get_players(var.TRUE_NEUTRAL_ROLES)) special = evt2.data["special"] if nick_role == "wolf mystic" and actor_role != "wolf mystic": @@ -38,13 +42,13 @@ 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): # init with all roles that haven't been split yet - special = set(list_players(("harlot", "priest", "prophet", "matchmaker", - "doctor", "hag", "sorcerer", "turncoat", "clone", "piper"))) + special = set(get_players(("harlot", "priest", "prophet", "matchmaker", + "doctor", "hag", "sorcerer", "turncoat", "clone", "piper"))) evt2 = Event("get_special", {"special": special}) - evt2.dispatch(cli, var) - pl = set(list_players()) - wolves = set(list_players(var.WOLFTEAM_ROLES)) - neutral = set(list_players(var.TRUE_NEUTRAL_ROLES)) + evt2.dispatch(var) + pl = set(get_players()) + wolves = set(get_players(var.WOLFTEAM_ROLES)) + neutral = set(get_players(var.TRUE_NEUTRAL_ROLES)) special = evt2.data["special"] for wolf in var.ROLES["wolf mystic"]: @@ -62,8 +66,8 @@ def on_transition_night_end(evt, cli, var): pm(cli, mystic, messages["mystic_info"].format("are" if numevil != 1 else "is", numevil, "s" if numevil != 1 else "")) @event_listener("get_special") -def on_get_special(evt, cli, var): +def on_get_special(evt, var): # mystics count as special even though they don't have any commands - evt.data["special"].update(list_players(("mystic",))) + evt.data["special"].update(get_players(("mystic",))) # vim: set sw=4 expandtab: diff --git a/src/roles/seer.py b/src/roles/seer.py index 23fe47f..162965d 100644 --- a/src/roles/seer.py +++ b/src/roles/seer.py @@ -5,6 +5,7 @@ import src.settings as var from src.utilities import * from src import debuglog, errlog, plog from src.decorators import cmd, event_listener +from src.functions import get_players from src.messages import messages from src.events import Event @@ -90,8 +91,8 @@ def on_acted(evt, var, nick, sender): evt.data["acted"] = True @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(list_players(("seer", "oracle", "augur"))) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("seer", "oracle", "augur"))) @event_listener("exchange_roles") def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): diff --git a/src/roles/shaman.py b/src/roles/shaman.py index ae11a8d..609b40a 100644 --- a/src/roles/shaman.py +++ b/src/roles/shaman.py @@ -7,6 +7,7 @@ import botconfig import src.settings as var from src.utilities import * from src import debuglog, errlog, plog, users +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -146,8 +147,8 @@ def on_acted(evt, var, nick, sender): evt.data["acted"] = True @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(list_players(("shaman", "crazed shaman", "wolf shaman"))) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("shaman", "crazed shaman", "wolf shaman"))) @event_listener("exchange_roles") def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): diff --git a/src/roles/succubus.py b/src/roles/succubus.py index 02739ac..ea182c5 100644 --- a/src/roles/succubus.py +++ b/src/roles/succubus.py @@ -8,6 +8,7 @@ import botconfig import src.settings as var from src.utilities import * from src import channels, users, debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -291,8 +292,8 @@ def on_transition_day(evt, cli, var): # we do not add to killers as retribution totem should not work on entranced not following succubus @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["succubus"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("succubus",))) @event_listener("vg_kill") def on_vg_kill(evt, var, ghost, target): diff --git a/src/roles/vigilante.py b/src/roles/vigilante.py index 07ef61d..fa05dec 100644 --- a/src/roles/vigilante.py +++ b/src/roles/vigilante.py @@ -5,6 +5,7 @@ from collections import defaultdict import src.settings as var from src.utilities import * from src import debuglog, errlog, plog +from src.functions import get_players from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -92,8 +93,8 @@ def on_acted(evt, var, nick, sender): evt.data["acted"] = True @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(var.ROLES["vigilante"]) +def on_get_special(evt, var): + evt.data["special"].update(get_players(("vigilante",))) @event_listener("transition_day", priority=2) def on_transition_day(evt, cli, var): diff --git a/src/roles/wolf.py b/src/roles/wolf.py index daffdd7..1b640d2 100644 --- a/src/roles/wolf.py +++ b/src/roles/wolf.py @@ -146,8 +146,8 @@ def on_acted(evt, var, nick, sender): evt.data["acted"] = True @event_listener("get_special") -def on_get_special(evt, cli, var): - evt.data["special"].update(list_players(CAN_KILL)) +def on_get_special(evt, var): + evt.data["special"].update(get_players(CAN_KILL)) @event_listener("transition_day", priority=1) def on_transition_day(evt, cli, var):