From 516d1d0c8cd03d727f1fa3271fd12ce255b42077 Mon Sep 17 00:00:00 2001 From: "Vgr E. Barry" Date: Mon, 4 Sep 2017 13:56:33 -0400 Subject: [PATCH] Update the chk_nightdone function and event --- src/gamemodes.py | 6 +++--- src/roles/angel.py | 4 ++-- src/roles/doomsayer.py | 4 ++-- src/roles/dullahan.py | 2 +- src/roles/harlot.py | 4 ++-- src/roles/hunter.py | 4 ++-- src/roles/seer.py | 6 +++--- src/roles/shaman.py | 4 ++-- src/roles/succubus.py | 4 ++-- src/roles/vengefulghost.py | 4 ++-- src/roles/vigilante.py | 4 ++-- src/roles/wildchild.py | 4 ++-- src/roles/wolf.py | 6 +++--- src/wolfgame.py | 23 ++++++++++++----------- 14 files changed, 40 insertions(+), 39 deletions(-) diff --git a/src/gamemodes.py b/src/gamemodes.py index 23e0f57..51a9945 100644 --- a/src/gamemodes.py +++ b/src/gamemodes.py @@ -210,9 +210,9 @@ class VillagergameMode(GameMode): else: evt.data["winner"] = None - def chk_nightdone(self, evt, cli, var): + def chk_nightdone(self, evt, var): transition_day = evt.data["transition_day"] - evt.data["transition_day"] = lambda cli2, gameid=0: self.prolong_night(cli2, var, gameid, transition_day) + evt.data["transition_day"] = lambda cli, gameid=0: self.prolong_night(cli, var, gameid, transition_day) def prolong_night(self, cli, var, gameid, transition_day): nspecials = len(var.ROLES["seer"] | var.ROLES["harlot"] | var.ROLES["shaman"] | var.ROLES["crazed shaman"]) @@ -1126,7 +1126,7 @@ class SleepyMode(GameMode): pm(cli, self.having_nightmare, messages["sleepy_nightmare_restart"]) self.nightmare_step(cli) - def prolong_night(self, evt, cli, var): + def prolong_night(self, evt, var): if self.having_nightmare is not None: evt.data["actedcount"] = -1 diff --git a/src/roles/angel.py b/src/roles/angel.py index 2fc491a..901aca2 100644 --- a/src/roles/angel.py +++ b/src/roles/angel.py @@ -112,9 +112,9 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): del LASTGUARDED[nick] @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(GUARDED) + len(PASSED) - evt.data["nightroles"].extend(list_players(("guardian angel", "bodyguard"))) + evt.data["nightroles"].extend(get_players(("guardian angel", "bodyguard"))) @event_listener("transition_day", priority=4.2) def on_transition_day(evt, cli, var): diff --git a/src/roles/doomsayer.py b/src/roles/doomsayer.py index b7cb028..11de485 100644 --- a/src/roles/doomsayer.py +++ b/src/roles/doomsayer.py @@ -107,9 +107,9 @@ def on_get_special(evt, var): evt.data["special"].update(get_players(("doomsayer",))) @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(SEEN) - evt.data["nightroles"].extend(get_roles("doomsayer")) + evt.data["nightroles"].extend(get_all_players(("doomsayer",))) @event_listener("abstain") def on_abstain(evt, cli, var, nick): diff --git a/src/roles/dullahan.py b/src/roles/dullahan.py index 280eaf1..f7663d4 100644 --- a/src/roles/dullahan.py +++ b/src/roles/dullahan.py @@ -154,7 +154,7 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): TARGET[users._get(actor)] = TARGETS.pop(k) - {users._get(actor)} # FIXME @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): spl = set(get_players()) evt.data["actedcount"] += len(KILLS) for dullahan, targets in TARGETS.items(): diff --git a/src/roles/harlot.py b/src/roles/harlot.py index e5df628..e5516f1 100644 --- a/src/roles/harlot.py +++ b/src/roles/harlot.py @@ -104,9 +104,9 @@ def on_night_acted(evt, var, user, actor): evt.data["acted"] = True @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(VISITED) - evt.data["nightroles"].extend(var.ROLES["harlot"]) + evt.data["nightroles"].extend(get_all_players(("harlot",))) @event_listener("exchange_roles") def on_exchange_roles(evt, cli, var, actor, nick, actor_role, nick_role): diff --git a/src/roles/hunter.py b/src/roles/hunter.py index 2289734..8e73b89 100644 --- a/src/roles/hunter.py +++ b/src/roles/hunter.py @@ -124,9 +124,9 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): PASSED.discard(target) @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(KILLS) + len(PASSED) - hunter_users = (users._get(p) for p in var.ROLES["hunter"]) # FIXME + hunter_users = get_all_players(("hunter",)) evt.data["nightroles"].extend([p for p in hunter_users if p not in HUNTERS or p in KILLS]) @event_listener("transition_night_end", priority=2) diff --git a/src/roles/seer.py b/src/roles/seer.py index 58650b9..d3437f0 100644 --- a/src/roles/seer.py +++ b/src/roles/seer.py @@ -5,7 +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, get_main_role +from src.functions import get_players, get_all_players, get_main_role from src.messages import messages from src.events import Event @@ -100,9 +100,9 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): SEEN.discard(actor) @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(SEEN) - evt.data["nightroles"].extend(get_roles("seer", "oracle", "augur")) + evt.data["nightroles"].extend(get_all_players(("seer", "oracle", "augur"))) @event_listener("transition_night_end", priority=2) def on_transition_night_end(evt, var): diff --git a/src/roles/shaman.py b/src/roles/shaman.py index 3f5fa0d..4dc8f00 100644 --- a/src/roles/shaman.py +++ b/src/roles/shaman.py @@ -176,9 +176,9 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): TOTEMS[nick] = actor_totem @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(SHAMANS) - evt.data["nightroles"].extend(list_players(var.TOTEM_ORDER)) + evt.data["nightroles"].extend(get_players(var.TOTEM_ORDER)) @event_listener("get_voters") def on_get_voters(evt, var): diff --git a/src/roles/succubus.py b/src/roles/succubus.py index a550759..70c3c1d 100644 --- a/src/roles/succubus.py +++ b/src/roles/succubus.py @@ -251,9 +251,9 @@ def on_night_acted(evt, var, user, actor): evt.data["acted"] = True @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(VISITED) - evt.data["nightroles"].extend(var.ROLES["succubus"]) + evt.data["nightroles"].extend(get_all_players(("succubus",))) @event_listener("targeted_command") def on_targeted_command(evt, cli, var, cmd, actor, orig_target, tags): diff --git a/src/roles/vengefulghost.py b/src/roles/vengefulghost.py index a00fd97..a289c40 100644 --- a/src/roles/vengefulghost.py +++ b/src/roles/vengefulghost.py @@ -184,9 +184,9 @@ def on_get_participant_role(evt, var, user): evt.data["role"] = "villager" @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(KILLS) - evt.data["nightroles"].extend([p.nick for p in GHOSTS if GHOSTS[p][0] != "!"]) + evt.data["nightroles"].extend([p for p in GHOSTS if GHOSTS[p][0] != "!"]) @event_listener("transition_night_end", priority=2) def on_transition_night_end(evt, var): diff --git a/src/roles/vigilante.py b/src/roles/vigilante.py index 68e0008..7270d5a 100644 --- a/src/roles/vigilante.py +++ b/src/roles/vigilante.py @@ -118,9 +118,9 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): PASSED.discard(nick) @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): evt.data["actedcount"] += len(KILLS) + len(PASSED) - evt.data["nightroles"].extend(get_roles("vigilante")) + evt.data["nightroles"].extend(get_all_players(("vigilante",))) @event_listener("transition_night_end", priority=2) def on_transition_night_end(evt, var): diff --git a/src/roles/wildchild.py b/src/roles/wildchild.py index 7af2d97..365156b 100644 --- a/src/roles/wildchild.py +++ b/src/roles/wildchild.py @@ -124,10 +124,10 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers): child.send(messages["no_other_wolves"]) @event_listener("chk_nightdone") -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): if var.FIRST_NIGHT: evt.data["actedcount"] += len(IDOLS.keys()) - evt.data["nightroles"].extend(var.ROLES["wild child"]) + evt.data["nightroles"].extend(get_all_players(("wild child",))) @event_listener("transition_day_begin") def on_transition_day_begin(evt, cli, var): diff --git a/src/roles/wolf.py b/src/roles/wolf.py index 8fa0e95..0d4b5e0 100644 --- a/src/roles/wolf.py +++ b/src/roles/wolf.py @@ -289,13 +289,13 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role): del KILLS[nick] @event_listener("chk_nightdone", priority=3) -def on_chk_nightdone(evt, cli, var): +def on_chk_nightdone(evt, var): if not var.DISEASED_WOLVES: evt.data["actedcount"] += len(KILLS) - evt.data["nightroles"].extend(list_players(CAN_KILL)) + evt.data["nightroles"].extend(get_players(CAN_KILL)) @event_listener("chk_nightdone", priority=20) -def on_chk_nightdone2(evt, cli, var): +def on_chk_nightdone2(evt, var): if not evt.prevent_default: nevt = Event("wolf_numkills", {"numkills": 1}) nevt.dispatch(var) diff --git a/src/wolfgame.py b/src/wolfgame.py index 94a2c9e..6e427b9 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -49,7 +49,7 @@ import src.settings as var from src.utilities import * from src import db, events, dispatcher, channels, users, hooks, logger, proxy, debuglog, errlog, plog from src.decorators import command, cmd, hook, handle_error, event_listener, COMMANDS -from src.functions import get_players, get_participants, get_main_role +from src.functions import get_players, get_all_players, get_participants, get_main_role from src.messages import messages from src.warnings import * from src.context import IRCContext @@ -3850,12 +3850,12 @@ def chk_nightdone(cli): if var.PHASE != "night": return - pl = list_players() + pl = get_players() spl = set(pl) actedcount = sum(map(len, (var.PASSED, var.OBSERVED, var.HEXED, var.CURSED, var.CHARMERS))) - nightroles = get_roles("sorcerer", "hag", "warlock", "werecrow", "piper", "prophet") + nightroles = list(get_all_players(("sorcerer", "hag", "warlock", "werecrow", "piper", "prophet"))) for nick, info in var.PRAYED.items(): if info[0] > 0: @@ -3863,31 +3863,32 @@ def chk_nightdone(cli): if var.FIRST_NIGHT: actedcount += len(var.MATCHMAKERS | var.CLONED.keys()) - nightroles.extend(get_roles("matchmaker", "clone")) + nightroles.extend(get_all_players(("matchmaker", "clone"))) if var.ALPHA_ENABLED: # alphas both kill and bite if they're activated at night, so add them into the counts - nightroles.extend(get_roles("alpha wolf")) + nightroles.extend(get_all_players(("alpha wolf",))) actedcount += len([p for p in var.ALPHA_WOLVES if p in var.ROLES["alpha wolf"]]) # add in turncoats who should be able to act -- if they passed they're already in var.PASSED # but if they can act they're in var.TURNCOATS where the second tuple item is the current night # (if said tuple item is the previous night, then they are not allowed to act tonight) for tc, tu in var.TURNCOATS.items(): - if tc not in pl: + user = users._get(tc) # FIXME + if user not in pl: continue if tu[1] == var.NIGHT_COUNT: - nightroles.append(tc) + nightroles.append(user) actedcount += 1 elif tu[1] < var.NIGHT_COUNT - 1: - nightroles.append(tc) + nightroles.append(user) event = Event("chk_nightdone", {"actedcount": actedcount, "nightroles": nightroles, "transition_day": transition_day}) - event.dispatch(cli, var) + event.dispatch(var) actedcount = event.data["actedcount"] - # remove all instances of their name if they are silenced (makes implementing the event easier) - nightroles = [p for p in nightroles if p not in var.SILENCED] + # remove all instances of them if they are silenced (makes implementing the event easier) + nightroles = [p for p in nightroles if p.nick not in var.SILENCED] if var.PHASE == "night" and actedcount >= len(nightroles): if not event.prevent_default: