Fix detection of harlot visiting wolfvictim and wolves stealing gun and other wolf-kill related things
This commit is contained in:
parent
2584bebd4a
commit
a8e1f84412
@ -2033,7 +2033,8 @@ def transition_day(cli, gameid=0):
|
|||||||
|
|
||||||
maxc = 0
|
maxc = 0
|
||||||
victims = []
|
victims = []
|
||||||
bywolves = []
|
bywolves = [] # wolves targeted, others may have as well (needed for harlot visit and maybe other things)
|
||||||
|
onlybywolves = [] # wolves and nobody else targeted (needed for lycan)
|
||||||
dups = []
|
dups = []
|
||||||
for v, c in found.items():
|
for v, c in found.items():
|
||||||
if c > maxc:
|
if c > maxc:
|
||||||
@ -2046,6 +2047,7 @@ def transition_day(cli, gameid=0):
|
|||||||
victim = random.choice(dups)
|
victim = random.choice(dups)
|
||||||
victims.append(victim)
|
victims.append(victim)
|
||||||
bywolves.append(victim)
|
bywolves.append(victim)
|
||||||
|
onlybywolves.append(victim)
|
||||||
|
|
||||||
if victims and var.ANGRY_WOLVES:
|
if victims and var.ANGRY_WOLVES:
|
||||||
# they got a 2nd kill
|
# they got a 2nd kill
|
||||||
@ -2067,11 +2069,10 @@ def transition_day(cli, gameid=0):
|
|||||||
if monster in victims:
|
if monster in victims:
|
||||||
victims.remove(monster)
|
victims.remove(monster)
|
||||||
|
|
||||||
victims += var.OTHER_KILLS.values()
|
for d in list(var.OTHER_KILLS.values()) + var.DYING:
|
||||||
for d in var.DYING:
|
|
||||||
victims.append(d)
|
victims.append(d)
|
||||||
if d in bywolves:
|
if d in onlybywolves:
|
||||||
bywolves.remove(d)
|
onlybywolves.remove(d)
|
||||||
victims = set(victims) # remove duplicates
|
victims = set(victims) # remove duplicates
|
||||||
|
|
||||||
# Select a random target for assassin that isn't already going to die if they didn't target
|
# Select a random target for assassin that isn't already going to die if they didn't target
|
||||||
@ -2126,10 +2127,10 @@ def transition_day(cli, gameid=0):
|
|||||||
message.append(("\u0002{0}\u0002 sacrificed their life to guard that of another.").format(gangel))
|
message.append(("\u0002{0}\u0002 sacrificed their life to guard that of another.").format(gangel))
|
||||||
novictmsg = False
|
novictmsg = False
|
||||||
break
|
break
|
||||||
elif victim in var.ROLES["harlot"] and victim in bywolves and var.HVISITED.get(victim):
|
elif victim in var.ROLES["harlot"] and victim in onlybywolves and var.HVISITED.get(victim):
|
||||||
message.append("The wolves' selected victim was a harlot, who was not at home last night.")
|
message.append("The wolves' selected victim was a harlot, who was not at home last night.")
|
||||||
novictmsg = False
|
novictmsg = False
|
||||||
elif victim in var.ROLES["lycan"] and victim in bywolves:
|
elif victim in var.ROLES["lycan"] and victim in onlybywolves:
|
||||||
message.append("A chilling howl was heard last night, it appears there is another werewolf in our midst!")
|
message.append("A chilling howl was heard last night, it appears there is another werewolf in our midst!")
|
||||||
pm(cli, victim, 'HOOOOOOOOOWL. You have become... a wolf!')
|
pm(cli, victim, 'HOOOOOOOOOWL. You have become... a wolf!')
|
||||||
var.ROLES["lycan"].remove(victim)
|
var.ROLES["lycan"].remove(victim)
|
||||||
@ -2168,7 +2169,10 @@ def transition_day(cli, gameid=0):
|
|||||||
"https://i.imgur.com/b8HAvjL.gif",
|
"https://i.imgur.com/b8HAvjL.gif",
|
||||||
"https://i.imgur.com/PIIfL15.gif"]
|
"https://i.imgur.com/PIIfL15.gif"]
|
||||||
))
|
))
|
||||||
if victim in var.GUNNERS.keys() and var.GUNNERS[victim] and victim not in var.ROLES["amnesiac"] and victim in bywolves: # gunner was attacked by wolves and had bullets!
|
if (victim in var.GUNNERS.keys() and var.GUNNERS[victim] # gunner attacked and has bullets
|
||||||
|
and victim not in var.ROLES["amnesiac"] # and not amnesiac (they don't remember they have a gun)
|
||||||
|
and not (victim in var.ROLES["harlot"] and victim in var.HVISITED) # and not a harlot that visited
|
||||||
|
and victim in bywolves): # and was attacked by wolves
|
||||||
if random.random() < var.GUNNER_KILLS_WOLF_AT_NIGHT_CHANCE:
|
if random.random() < var.GUNNER_KILLS_WOLF_AT_NIGHT_CHANCE:
|
||||||
wc = var.ROLES["werecrow"][:]
|
wc = var.ROLES["werecrow"][:]
|
||||||
for crow in wc:
|
for crow in wc:
|
||||||
@ -2241,14 +2245,10 @@ def transition_day(cli, gameid=0):
|
|||||||
for msg in message:
|
for msg in message:
|
||||||
var.LOGGER.logMessage(msg.replace("\02", ""))
|
var.LOGGER.logMessage(msg.replace("\02", ""))
|
||||||
|
|
||||||
for deadperson in dead: # kill each player, but don't end the game if one group outnumbers another
|
|
||||||
del_player(cli, deadperson, end_game = False)
|
|
||||||
if chk_win(cli): # if after the last person is killed, one side wins, then actually end the game here
|
|
||||||
return
|
|
||||||
|
|
||||||
for victim in victims:
|
for victim in victims:
|
||||||
if (var.WOLF_STEALS_GUN and victim in dead and victim in bywolves and
|
if (var.WOLF_STEALS_GUN and victim in dead and victim in bywolves
|
||||||
victim in var.GUNNERS.keys() and var.GUNNERS[victim] > 0):
|
and victim in var.GUNNERS.keys() and var.GUNNERS[victim] > 0
|
||||||
|
and not (victim in var.ROLES["harlot"] and victim in var.HVISITED)):
|
||||||
# victim has bullets
|
# victim has bullets
|
||||||
guntaker = random.choice(var.list_players(var.WOLFCHAT_ROLES)) # random looter
|
guntaker = random.choice(var.list_players(var.WOLFCHAT_ROLES)) # random looter
|
||||||
numbullets = var.GUNNERS[victim]
|
numbullets = var.GUNNERS[victim]
|
||||||
@ -2262,6 +2262,11 @@ def transition_day(cli, gameid=0):
|
|||||||
pm(cli, guntaker, mmsg)
|
pm(cli, guntaker, mmsg)
|
||||||
var.GUNNERS[victim] = 0 # just in case
|
var.GUNNERS[victim] = 0 # just in case
|
||||||
|
|
||||||
|
for deadperson in dead: # kill each player, but don't end the game if one group outnumbers another
|
||||||
|
del_player(cli, deadperson, end_game = False)
|
||||||
|
if chk_win(cli): # if after the last person is killed, one side wins, then actually end the game here
|
||||||
|
return
|
||||||
|
|
||||||
begin_day(cli)
|
begin_day(cli)
|
||||||
|
|
||||||
def chk_nightdone(cli):
|
def chk_nightdone(cli):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user