Add get_all_players function and use it wherever necessary
This commit is contained in:
parent
0f1d513daa
commit
17688050d6
@ -3,7 +3,7 @@ from src.events import Event
|
||||
from src import settings as var
|
||||
from src import users
|
||||
|
||||
__all__ = ["get_players", "get_participants", "get_target", "get_main_role", "get_all_roles"]
|
||||
__all__ = ["get_players", "get_all_players", "get_participants", "get_target", "get_main_role", "get_all_roles"]
|
||||
|
||||
def get_players(roles=None, *, mainroles=None):
|
||||
if mainroles is None:
|
||||
@ -21,6 +21,16 @@ def get_players(roles=None, *, mainroles=None):
|
||||
return list(pl)
|
||||
return [p for p in var.ALL_PLAYERS if p in pl]
|
||||
|
||||
def get_all_players(roles=None):
|
||||
if roles is None:
|
||||
roles = var.ROLES
|
||||
pl = set()
|
||||
for role in roles:
|
||||
for nick in var.ROLES[role]:
|
||||
pl.add(users._get(nick)) # FIXME
|
||||
|
||||
return pl
|
||||
|
||||
def get_participants():
|
||||
"""List all players who are still able to participate in the game."""
|
||||
evt = Event("get_participants", {"players": get_players()})
|
||||
|
@ -8,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -229,7 +229,7 @@ def on_transition_night_begin(evt, cli, var):
|
||||
def on_transition_night_end(evt, var):
|
||||
# the messages for angel and guardian angel are different enough to merit individual loops
|
||||
ps = get_players()
|
||||
for bg in get_players(("bodyguard",)):
|
||||
for bg in get_all_players(("bodyguard",)):
|
||||
pl = ps[:]
|
||||
random.shuffle(pl)
|
||||
pl.remove(bg)
|
||||
@ -243,7 +243,7 @@ def on_transition_night_end(evt, var):
|
||||
to_send = "bodyguard_simple"
|
||||
bg.send(messages[to_send].format(warning), "Players: " + ", ".join(p.nick for p in pl), sep="\n")
|
||||
|
||||
for gangel in get_players(("guardian angel",)):
|
||||
for gangel in get_all_players(("guardian angel",)):
|
||||
pl = ps[:]
|
||||
random.shuffle(pl)
|
||||
gself = messages["guardian_self_notification"]
|
||||
|
@ -8,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -44,12 +44,11 @@ def on_transition_day_resolve(evt, cli, var, victim):
|
||||
@event_listener("transition_night_end", priority=5)
|
||||
def on_transition_night_end(evt, var):
|
||||
if var.FIRST_NIGHT or var.ALWAYS_PM_ROLE:
|
||||
for blessed in var.ROLES["blessed villager"]: # FIXME
|
||||
user = users._get(blessed) # FIXME
|
||||
for blessed in get_all_players(("blessed villager",)):
|
||||
to_send = "blessed_notify"
|
||||
if user.prefers_simple():
|
||||
if blessed.prefers_simple():
|
||||
to_send = "blessed_simple"
|
||||
user.send(messages[to_send])
|
||||
blessed.send(messages[to_send])
|
||||
|
||||
@event_listener("desperation_totem")
|
||||
def on_desperation(evt, cli, var, votee, target, prot):
|
||||
|
@ -5,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -67,7 +67,7 @@ def on_del_player(evt, cli, var, nick, mainrole, allroles, death_triggers):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("detective",)))
|
||||
evt.data["special"].update(get_all_players(("detective",)))
|
||||
|
||||
@event_listener("exchange_roles")
|
||||
def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role):
|
||||
@ -79,7 +79,7 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role):
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
ps = get_players()
|
||||
for dttv in get_players(("detective",)):
|
||||
for dttv in get_all_players(("detective",)):
|
||||
pl = ps[:]
|
||||
random.shuffle(pl)
|
||||
pl.remove(dttv)
|
||||
|
@ -4,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -104,7 +104,7 @@ def on_doctor_immunize(evt, cli, var, doctor, target):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("doomsayer",)))
|
||||
evt.data["special"].update(get_all_players(("doomsayer",)))
|
||||
|
||||
@event_listener("chk_nightdone")
|
||||
def on_chk_nightdone(evt, cli, var):
|
||||
|
@ -4,7 +4,7 @@ import random
|
||||
from collections import defaultdict, deque
|
||||
|
||||
from src.utilities import *
|
||||
from src.functions import get_players, get_target
|
||||
from src.functions import get_players, get_all_players, get_target
|
||||
from src import users, debuglog, errlog, plog
|
||||
from src.decorators import command, event_listener
|
||||
from src.messages import messages
|
||||
@ -131,7 +131,7 @@ def on_swap(evt, var, old_user, user):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("dullahan",)))
|
||||
evt.data["special"].update(get_all_players(("dullahan",)))
|
||||
|
||||
@event_listener("transition_day", priority=2)
|
||||
def on_transition_day(evt, cli, var):
|
||||
@ -163,7 +163,7 @@ def on_chk_nightdone(evt, cli, var):
|
||||
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
for dullahan in get_players(("dullahan",)):
|
||||
for dullahan in get_all_players(("dullahan",)):
|
||||
targets = list(TARGETS[dullahan])
|
||||
for target in targets[:]:
|
||||
if target.nick in var.DEAD:
|
||||
|
@ -8,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -123,7 +123,7 @@ def on_exchange_roles(evt, cli, var, actor, nick, actor_role, nick_role):
|
||||
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
for harlot in get_players(("harlot",)):
|
||||
for harlot in get_all_players(("harlot",)):
|
||||
pl = get_players()
|
||||
random.shuffle(pl)
|
||||
pl.remove(harlot)
|
||||
@ -138,7 +138,7 @@ def on_begin_day(evt, var):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("harlot",)))
|
||||
evt.data["special"].update(get_all_players(("harlot",)))
|
||||
|
||||
@event_listener("del_player")
|
||||
def on_del_player(evt, cli, var, nick, mainrole, allroles, death_triggers):
|
||||
|
@ -5,7 +5,7 @@ from collections import defaultdict
|
||||
import src.settings as var
|
||||
from src.utilities import *
|
||||
from src import users, debuglog, errlog, plog
|
||||
from src.functions import get_players, get_target
|
||||
from src.functions import get_players, get_all_players, get_target
|
||||
from src.decorators import command, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -102,7 +102,7 @@ def on_acted(evt, var, nick, sender):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("hunter",)))
|
||||
evt.data["special"].update(get_all_players(("hunter",)))
|
||||
|
||||
@event_listener("transition_day", priority=2)
|
||||
def on_transition_day(evt, cli, var):
|
||||
@ -133,7 +133,7 @@ def on_chk_nightdone(evt, cli, var):
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
ps = get_players()
|
||||
for hunter in get_players(("hunter",)):
|
||||
for hunter in get_all_players(("hunter",)):
|
||||
if hunter in HUNTERS:
|
||||
continue # already killed
|
||||
pl = ps[:]
|
||||
|
@ -8,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import command, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -152,7 +152,7 @@ def on_del_player(evt, cli, var, nick, mainrole, allroles, death_triggers):
|
||||
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
for ms in get_players(("mad scientist",)):
|
||||
for ms in get_all_players(("mad scientist",)):
|
||||
pl = list_players()
|
||||
target1, target2 = _get_targets(var, pl, ms.nick) # FIXME: Need to update _get_targets to accept users
|
||||
|
||||
|
@ -4,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -51,12 +51,12 @@ def on_transition_night_end(evt, var):
|
||||
neutral = set(get_players(var.TRUE_NEUTRAL_ROLES))
|
||||
special = evt2.data["special"]
|
||||
|
||||
for wolf in get_players(("wolf mystic",)):
|
||||
for wolf in get_all_players(("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
|
||||
# # of special villagers = # of players - # of villagers - # of wolves - # of neutrals
|
||||
numvills = len(special & (pl - wolves - neutral))
|
||||
wolf.send(messages["wolf_mystic_info"].format("are" if numvills != 1 else "is", numvills, "s" if numvills != 1 else ""))
|
||||
for mystic in get_players(("mystic",)):
|
||||
for mystic in get_all_players(("mystic",)):
|
||||
to_send = "mystic_notify"
|
||||
if mystic.prefers_simple():
|
||||
to_send = "mystic_simple"
|
||||
@ -67,6 +67,6 @@ def on_transition_night_end(evt, var):
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
# mystics count as special even though they don't have any commands
|
||||
evt.data["special"].update(get_players(("mystic",)))
|
||||
evt.data["special"].update(get_all_players(("mystic",)))
|
||||
|
||||
# vim: set sw=4 expandtab:
|
||||
|
@ -8,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -268,7 +268,7 @@ def on_targeted_command(evt, cli, var, cmd, actor, orig_target, tags):
|
||||
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
succubi = get_players(("succubus",))
|
||||
succubi = get_all_players(("succubus",))
|
||||
for succubus in succubi:
|
||||
pl = get_players()
|
||||
random.shuffle(pl)
|
||||
@ -299,7 +299,7 @@ def on_transition_day(evt, cli, var):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("succubus",)))
|
||||
evt.data["special"].update(get_all_players(("succubus",)))
|
||||
|
||||
@event_listener("vg_kill")
|
||||
def on_vg_kill(evt, var, ghost, target):
|
||||
|
@ -5,7 +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.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -94,7 +94,7 @@ def on_acted(evt, var, nick, sender):
|
||||
|
||||
@event_listener("get_special")
|
||||
def on_get_special(evt, var):
|
||||
evt.data["special"].update(get_players(("vigilante",)))
|
||||
evt.data["special"].update(get_all_players(("vigilante",)))
|
||||
|
||||
@event_listener("transition_day", priority=2)
|
||||
def on_transition_day(evt, cli, var):
|
||||
@ -125,7 +125,7 @@ def on_chk_nightdone(evt, cli, var):
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
ps = get_players()
|
||||
for vigilante in get_players(("vigilante",)):
|
||||
for vigilante in get_all_players(("vigilante",)):
|
||||
pl = ps[:]
|
||||
random.shuffle(pl)
|
||||
pl.remove(vigilante)
|
||||
|
@ -4,7 +4,7 @@ import re
|
||||
import src.settings as var
|
||||
from src.utilities import *
|
||||
from src import users, debuglog, errlog, plog
|
||||
from src.functions import get_players
|
||||
from src.functions import get_players, get_all_players
|
||||
from src.decorators import cmd, event_listener
|
||||
from src.messages import messages
|
||||
from src.events import Event
|
||||
@ -139,7 +139,7 @@ def on_transition_day_begin(evt, cli, var):
|
||||
|
||||
@event_listener("transition_night_end", priority=2)
|
||||
def on_transition_night_end(evt, var):
|
||||
for child in get_players(("wild child",)):
|
||||
for child in get_all_players(("wild child",)):
|
||||
to_send = "child_notify"
|
||||
if child.prefers_simple():
|
||||
to_send = "child_simple"
|
||||
|
Loading…
Reference in New Issue
Block a user