Fix some issues with harlot conversion

This commit is contained in:
Vgr E. Barry 2017-12-11 15:21:01 -05:00
parent ab0920f824
commit 8236664e15
3 changed files with 17 additions and 13 deletions

View File

@ -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):

View File

@ -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):

View File

@ -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)