From dd0edb0a7764a6fa4035cd826c383e86446c7a88 Mon Sep 17 00:00:00 2001 From: jacob1 Date: Mon, 24 Mar 2014 20:42:01 -0400 Subject: [PATCH] wolves can retract votes, and drunk can be cursed --- modules/wolfgame.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/modules/wolfgame.py b/modules/wolfgame.py index a0d7c92..44c4eda 100644 --- a/modules/wolfgame.py +++ b/modules/wolfgame.py @@ -1657,7 +1657,31 @@ def retract(cli, nick, chann_, rest): else: 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") def shoot(cli, nick, chann_, rest): @@ -2449,7 +2473,7 @@ def start(cli, nick, chann_, rest): if var.ROLES["cursed villager"]: possiblecursed = pl[:] for cannotbe in (var.ROLES["wolf"] + var.ROLES["werecrow"] + - var.ROLES["seer"] + var.ROLES["village drunk"]): + var.ROLES["seer"]): # traitor can be cursed possiblecursed.remove(cannotbe)