diff --git a/src/gamemodes.py b/src/gamemodes.py index ef62875..8b7d2e3 100644 --- a/src/gamemodes.py +++ b/src/gamemodes.py @@ -215,7 +215,7 @@ class VillagergameMode(GameMode): 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(get_players(("seer", "harlot", "shaman", "crazed shaman"))) + nspecials = len(get_all_players(("seer", "harlot", "shaman", "crazed shaman"))) rand = random.gauss(5, 1.5) if rand <= 0 and nspecials > 0: transition_day(cli, gameid=gameid) diff --git a/src/roles/shaman.py b/src/roles/shaman.py index 1f269e7..ef8e50f 100644 --- a/src/roles/shaman.py +++ b/src/roles/shaman.py @@ -587,7 +587,7 @@ def on_assassinate(evt, var, killer, target, prot): @event_listener("succubus_visit") def on_succubus_visit(evt, cli, var, nick, victim): - if (users._get(SHAMANS.get(victim, (None, None))[1]) in var.ROLES["succubus"] and # FIXME (psst Vgr: this probably breaks now if the shaman didn't give out totems when succ visits) + if (users._get(SHAMANS.get(victim, (None, None))[1], allow_none=True) in var.ROLES["succubus"] and (get_role(victim) == "crazed shaman" or TOTEMS[victim] not in var.BENEFICIAL_TOTEMS)): pm(cli, victim, messages["retract_totem_succubus"].format(SHAMANS[victim])) del SHAMANS[victim]