allow hunter to pick a new target if their old one idles/quits

It also sends hunters/ghosts a message informing them of this
This commit is contained in:
jacob1 2015-09-09 01:18:39 -04:00
parent 4257de5f76
commit 50dc87938a

View File

@ -2947,10 +2947,17 @@ def del_player(cli, nick, forced_death = False, devoice = True, end_game = True,
var.KILLS[a].remove(nick)
if a == nick or len(var.KILLS[a]) == 0:
del var.KILLS[a]
for x in (var.OBSERVED, var.HVISITED, var.GUARDED, var.TARGETED, var.LASTGUARDED, var.LASTGIVEN, var.LASTHEXED, var.OTHER_KILLS, var.SHAMANS):
for x in (var.OBSERVED, var.HVISITED, var.GUARDED, var.TARGETED, var.LASTGUARDED, var.LASTGIVEN, var.LASTHEXED, var.SHAMANS):
for k in list(x):
if nick in (k, x[k]):
del x[k]
for k in list(var.OTHER_KILLS):
if var.OTHER_KILLS[k] == nick:
var.HUNTERS.discard(k)
pm(cli, k, "Your target has died, so you may now pick a new one.")
del var.OTHER_KILLS[k]
elif nick == k:
del var.OTHER_KILLS[k]
if nick in var.DISCONNECTED:
del var.DISCONNECTED[nick]
if var.PHASE == "night":
@ -3876,6 +3883,7 @@ def transition_day(cli, gameid=0):
killers[d].append(k)
if var.VENGEFUL_GHOSTS.get(k) == "villagers":
wolfghostvictims.append(d)
var.OTHER_KILLS = {} # clear list so that it doesn't pm hunter / ghost about being able to kill again
for k, d in var.DEATH_TOTEM:
victims.append(d)
@ -4393,9 +4401,7 @@ def chk_nightdone(cli):
elif tu[1] < var.NIGHT_COUNT - 1:
nightroles.append(tc)
playercount = len(nightroles) + var.ACTED_EXTRA
if var.PHASE == "night" and actedcount >= playercount:
if var.PHASE == "night" and actedcount >= len(nightroles):
# check for assassins that have not yet targeted
# must be handled separately because assassin only acts on nights when their target is dead
# and silenced assassin shouldn't add to actedcount
@ -4589,7 +4595,7 @@ def check_exchange(cli, actor, nick):
del var.KILLS[actor]
elif actor_role == "hunter":
if actor in var.OTHER_KILLS:
var.ACTED_EXTRA += 1
del var.OTHER_KILLS[actor]
var.HUNTERS.discard(actor)
elif actor_role in ("bodyguard", "guardian angel"):
if actor in var.GUARDED:
@ -4653,7 +4659,7 @@ def check_exchange(cli, actor, nick):
del var.KILLS[nick]
elif nick_role == "hunter":
if nick in var.OTHER_KILLS:
var.ACTED_EXTRA += 1
del var.OTHER_KILLS[nick]
var.HUNTERS.discard(nick)
elif nick_role in ("bodyguard", "guardian angel"):
if nick in var.GUARDED:
@ -5972,7 +5978,6 @@ def transition_night(cli):
# Reset nighttime variables
var.KILLS = {}
var.OTHER_KILLS = {}
var.GUARDED = {} # key = by whom, value = the person that is visited
var.KILLER = "" # nickname of who chose the victim
var.SEEN = set() # set of seers that have had visions
@ -6001,7 +6006,6 @@ def transition_night(cli):
var.NIGHT_COUNT += 1
var.FIRST_NIGHT = (var.NIGHT_COUNT == 1)
var.TOTEMS = {}
var.ACTED_EXTRA = 0
daydur_msg = ""
@ -6857,7 +6861,6 @@ def start(cli, nick, chan, forced = False, restart = ""):
var.SHAMANS = {}
var.HEXED = set()
var.OTHER_KILLS = {}
var.ACTED_EXTRA = 0
var.ABSTAINED = False
var.DOCTORS = {}
var.IMMUNIZED = set()