wolves can retract votes, and drunk can be cursed

This commit is contained in:
jacob1 2014-03-24 20:42:01 -04:00
parent 1aa8641102
commit dd0edb0a77

View File

@ -1657,7 +1657,31 @@ def retract(cli, nick, chann_, rest):
else: else:
cli.notice(nick, "You haven't voted yet.") cli.notice(nick, "You haven't voted yet.")
@pmcmd("retract")
def wolfretract(cli, nick, rest):
if var.PHASE in ("none", "join"):
cli.notice(nick, "No game is currently running.")
return
elif nick not in var.list_players() or nick in var.DISCONNECTED.keys():
cli.notice(nick, "You're not currently playing.")
return
role = var.get_role(nick)
if role not in ('wolf', 'werecrow'):
return
if var.PHASE != "night":
pm(cli, nick, "You may only retract at night.")
return
if role == "werecrow": # Check if already observed
if var.OBSERVED.get(nick):
pm(cli, nick, ("You have already transformed into a crow, and "+
"cannot turn back until day."))
return
if nick in var.KILLS.keys():
del var.KILLS[nick]
pm(cli, nick, "You have retracted your vote.")
#var.LOGGER.logBare(nick, "RETRACT", nick)
@cmd("shoot") @cmd("shoot")
def shoot(cli, nick, chann_, rest): def shoot(cli, nick, chann_, rest):
@ -2449,7 +2473,7 @@ def start(cli, nick, chann_, rest):
if var.ROLES["cursed villager"]: if var.ROLES["cursed villager"]:
possiblecursed = pl[:] possiblecursed = pl[:]
for cannotbe in (var.ROLES["wolf"] + var.ROLES["werecrow"] + for cannotbe in (var.ROLES["wolf"] + var.ROLES["werecrow"] +
var.ROLES["seer"] + var.ROLES["village drunk"]): var.ROLES["seer"]):
# traitor can be cursed # traitor can be cursed
possiblecursed.remove(cannotbe) possiblecursed.remove(cannotbe)