From 8236664e15452980eaee5cd3c80e66f0d5061ea9 Mon Sep 17 00:00:00 2001 From: "Vgr E. Barry" Date: Mon, 11 Dec 2017 15:21:01 -0500 Subject: [PATCH] Fix some issues with harlot conversion --- src/roles/harlot.py | 20 ++++++++++++-------- src/roles/succubus.py | 8 ++++---- src/wolfgame.py | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/roles/harlot.py b/src/roles/harlot.py index 2c69a74..648f3dd 100644 --- a/src/roles/harlot.py +++ b/src/roles/harlot.py @@ -13,8 +13,8 @@ from src.decorators import command, event_listener from src.messages import messages from src.events import Event -VISITED = {} -PASSED = set() +VISITED = {} # type: Dict[users.User, users.User] +PASSED = set() # type: Set[users.User] @command("visit", chan=False, pm=True, playing=True, silenced=True, phases=("night",), roles=("harlot",)) def hvisit(var, wrapper, message): @@ -98,8 +98,8 @@ def on_transition_day_resolve_end3(evt, var, victims): evt.data["dead"].append(harlot) @event_listener("night_acted") -def on_night_acted(evt, var, user, actor): - if VISITED.get(user): +def on_night_acted(evt, var, target, spy): + if VISITED.get(target): evt.data["acted"] = True @event_listener("chk_nightdone") @@ -138,11 +138,15 @@ def on_begin_day(evt, var): @event_listener("swap_player") def on_swap(evt, var, old_user, user): - for actor, target in set(VISITED.items()): + for harlot, target in set(VISITED.items()): if target is old_user: - VISITED[actor] = user - if actor is old_user: - VISITED[user] = VISITED.pop(actor) + VISITED[harlot] = user + if harlot is old_user: + VISITED[user] = VISITED.pop(harlot) + + if old_user in PASSED: + PASSED.remove(old_user) + PASSED.add(user) @event_listener("get_special") def on_get_special(evt, var): diff --git a/src/roles/succubus.py b/src/roles/succubus.py index 2bf85a6..fa3969b 100644 --- a/src/roles/succubus.py +++ b/src/roles/succubus.py @@ -83,11 +83,11 @@ def pass_cmd(cli, nick, chan, rest): chk_nightdone(cli) @event_listener("harlot_visit") -def on_harlot_visit(evt, var, actor, victim): +def on_harlot_visit(evt, var, harlot, victim): if victim.nick in var.ROLES["succubus"]: - actor.send(messages["notify_succubus_target"].format(victim)) - victim.send(messages["succubus_harlot_success"].format(actor)) - ENTRANCED.add(actor.nick) + harlot.send(messages["notify_succubus_target"].format(victim)) + victim.send(messages["succubus_harlot_success"].format(harlot)) + ENTRANCED.add(harlot.nick) @event_listener("get_random_totem_targets") def on_get_random_totem_targets(evt, var, shaman): diff --git a/src/wolfgame.py b/src/wolfgame.py index 19f32df..325556d 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -3516,7 +3516,7 @@ def transition_day(cli, gameid=0): victims.append(v) elif v.nick in var.ROLES["bodyguard"] and v.nick in angel.GUARDED and users._get(angel.GUARDED[v.nick]) in victims_set: # FIXME vappend.append(v) - elif v in harlot.VISITED and harlot.VISITED[v] in victims_set: + elif harlot.VISITED.get(v) in victims_set: vappend.append(v) else: victims.append(v)