Clean up some of doomsayer's code
This commit is contained in:
parent
7c753b2810
commit
fb2ece45e6
@ -13,6 +13,8 @@ KILLS = {}
|
|||||||
SICK = {}
|
SICK = {}
|
||||||
LYCANS = {}
|
LYCANS = {}
|
||||||
|
|
||||||
|
_mappings = ("death", KILLS), ("lycan", LYCANS), ("sick", SICK)
|
||||||
|
|
||||||
@cmd("see", chan=False, pm=True, playing=True, silenced=True, phases=("night",), roles=("doomsayer",))
|
@cmd("see", chan=False, pm=True, playing=True, silenced=True, phases=("night",), roles=("doomsayer",))
|
||||||
def see(cli, nick, chan, rest):
|
def see(cli, nick, chan, rest):
|
||||||
"""Use your paranormal senses to determine a player's doom."""
|
"""Use your paranormal senses to determine a player's doom."""
|
||||||
@ -38,21 +40,11 @@ def see(cli, nick, chan, rest):
|
|||||||
victim = evt.data["target"]
|
victim = evt.data["target"]
|
||||||
victimrole = get_role(victim)
|
victimrole = get_role(victim)
|
||||||
|
|
||||||
mode = random.randint(1, 3)
|
mode, mapping = random.choice(_mappings)
|
||||||
if mode == 1:
|
pm(cli, nick, messages["doomsayer_{0}".format(mode)].format(victim))
|
||||||
mode = "DEATH"
|
mapping[nick] = victim
|
||||||
pm(cli, nick, messages["doomsayer_death"].format(victim))
|
|
||||||
KILLS[nick] = victim
|
|
||||||
elif mode == 2:
|
|
||||||
mode = "LYCAN"
|
|
||||||
pm(cli, nick, messages["doomsayer_lycan"].format(victim))
|
|
||||||
LYCANS[nick] = victim
|
|
||||||
elif mode == 3:
|
|
||||||
mode = "SICK"
|
|
||||||
pm(cli, nick, messages["doomsayer_sick"].format(victim))
|
|
||||||
SICK[nick] = victim
|
|
||||||
|
|
||||||
debuglog("{0} ({1}) SEE: {2} ({3}) - {4}".format(nick, role, victim, victimrole, mode))
|
debuglog("{0} ({1}) SEE: {2} ({3}) - {4}".format(nick, role, victim, victimrole, mode.upper()))
|
||||||
relay_wolfchat_command(cli, nick, messages["doomsayer_wolfchat"].format(nick, victim), ("doomsayer",), is_wolf_command=True)
|
relay_wolfchat_command(cli, nick, messages["doomsayer_wolfchat"].format(nick, victim), ("doomsayer",), is_wolf_command=True)
|
||||||
|
|
||||||
SEEN.add(nick)
|
SEEN.add(nick)
|
||||||
@ -63,7 +55,7 @@ def on_rename(evt, cli, var, prefix, nick):
|
|||||||
if prefix in SEEN:
|
if prefix in SEEN:
|
||||||
SEEN.remove(prefix)
|
SEEN.remove(prefix)
|
||||||
SEEN.add(nick)
|
SEEN.add(nick)
|
||||||
for dictvar in (KILLS, SICK, LYCANS):
|
for name, dictvar in _mappings:
|
||||||
kvp = []
|
kvp = []
|
||||||
for a, b in dictvar.items():
|
for a, b in dictvar.items():
|
||||||
if a == prefix:
|
if a == prefix:
|
||||||
@ -84,25 +76,18 @@ def on_acted(evt, cli, var, nick, sender):
|
|||||||
def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role):
|
def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role):
|
||||||
if actor_role == "doomsayer" and nick_role != "doomsayer":
|
if actor_role == "doomsayer" and nick_role != "doomsayer":
|
||||||
SEEN.discard(actor)
|
SEEN.discard(actor)
|
||||||
if actor in KILLS:
|
for name, mapping in _mappings:
|
||||||
del KILLS[actor]
|
mapping.pop(actor, None)
|
||||||
elif actor in SICK:
|
|
||||||
del SICK[actor]
|
|
||||||
elif actor in LYCANS:
|
|
||||||
del LYCANS[actor]
|
|
||||||
elif nick_role == "doomsayer" and actor_role != "doomsayer":
|
elif nick_role == "doomsayer" and actor_role != "doomsayer":
|
||||||
SEEN.discard(nick)
|
SEEN.discard(nick)
|
||||||
if nick in KILLS:
|
for name, mapping in _mappings:
|
||||||
del KILLS[nick]
|
mapping.pop(nick, None)
|
||||||
elif nick in SICK:
|
|
||||||
del SICK[nick]
|
|
||||||
elif nick in LYCANS:
|
|
||||||
del LYCANS[nick]
|
|
||||||
|
|
||||||
@event_listener("del_player")
|
@event_listener("del_player")
|
||||||
def on_del_player(evt, cli, var, nick, nickrole, nicktpls, death_triggers):
|
def on_del_player(evt, cli, var, nick, nickrole, nicktpls, death_triggers):
|
||||||
SEEN.discard(nick)
|
SEEN.discard(nick)
|
||||||
for dictvar in (KILLS, SICK, LYCANS):
|
for name, dictvar in _mappings:
|
||||||
for k, v in list(dictvar.items()):
|
for k, v in list(dictvar.items()):
|
||||||
if nick == k or nick == v:
|
if nick == k or nick == v:
|
||||||
del dictvar[k]
|
del dictvar[k]
|
||||||
|
Loading…
Reference in New Issue
Block a user