Remove forced_death param from del_player
It was causing subtle bugs with vote counting and is not needed since ismain is a better thing to check anyway.
This commit is contained in:
parent
de566f839b
commit
6d26d8e90c
@ -104,7 +104,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers):
|
||||
else:
|
||||
channels.Main.send(messages["dullahan_die_success_noreveal"].format(user, target))
|
||||
debuglog("{0} (dullahan) DULLAHAN ASSASSINATE: {1} ({2})".format(user, target, get_main_role(target)))
|
||||
evt.params.del_player(target, forced_death=True, end_game=False, killer_role="dullahan", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False)
|
||||
evt.params.del_player(target, end_game=False, killer_role="dullahan", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False)
|
||||
evt.data["pl"] = evt.params.refresh_pl(pl)
|
||||
|
||||
@event_listener("night_acted")
|
||||
|
@ -117,8 +117,8 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers):
|
||||
deadlist1.append(target2)
|
||||
deadlist2 = evt.params.deadlist[:]
|
||||
deadlist2.append(target1)
|
||||
evt.params.del_player(target1, forced_death=True, end_game=False, killer_role="mad scientist", deadlist=deadlist1, original=evt.params.original, ismain=False)
|
||||
evt.params.del_player(target2, forced_death=True, end_game=False, killer_role="mad scientist", deadlist=deadlist2, original=evt.params.original, ismain=False)
|
||||
evt.params.del_player(target1, end_game=False, killer_role="mad scientist", deadlist=deadlist1, original=evt.params.original, ismain=False)
|
||||
evt.params.del_player(target2, end_game=False, killer_role="mad scientist", deadlist=deadlist2, original=evt.params.original, ismain=False)
|
||||
pl = evt.params.refresh_pl(pl)
|
||||
else:
|
||||
if var.ROLE_REVEAL in ("on", "team"):
|
||||
@ -129,7 +129,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers):
|
||||
tmsg = messages["mad_scientist_kill_single_no_reveal"].format(user, target1)
|
||||
channels.Main.send(tmsg)
|
||||
debuglog(user.nick, "(mad scientist) KILL: {0} ({1})".format(target1, get_main_role(target1)))
|
||||
evt.params.del_player(target1, forced_death=True, end_game=False, killer_role="mad scientist", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False)
|
||||
evt.params.del_player(target1, end_game=False, killer_role="mad scientist", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False)
|
||||
pl = evt.params.refresh_pl(pl)
|
||||
else:
|
||||
if kill2:
|
||||
@ -141,7 +141,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers):
|
||||
tmsg = messages["mad_scientist_kill_single_no_reveal"].format(user, target2)
|
||||
channels.Main.send(tmsg)
|
||||
debuglog(user.nick, "(mad scientist) KILL: {0} ({1})".format(target2, get_main_role(target2)))
|
||||
evt.params.del_player(target2, forced_death=True, end_game=False, killer_role="mad scientist", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False)
|
||||
evt.params.del_player(target2, end_game=False, killer_role="mad scientist", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False)
|
||||
pl = evt.params.refresh_pl(pl)
|
||||
else:
|
||||
tmsg = messages["mad_scientist_fail"].format(user)
|
||||
|
@ -299,7 +299,7 @@ def on_chk_decision_lynch5(evt, cli, var, voters):
|
||||
evt.data["deadlist"].append(target)
|
||||
better_deadlist = [users._get(p) for p in evt.data["deadlist"]] # FIXME
|
||||
target_user = users._get(target) # FIXME
|
||||
evt.params.del_player(target_user, forced_death=True, end_game=False, killer_role="shaman", deadlist=better_deadlist, ismain=False)
|
||||
evt.params.del_player(target_user, end_game=False, killer_role="shaman", deadlist=better_deadlist, ismain=False)
|
||||
|
||||
@event_listener("player_win")
|
||||
def on_player_win(evt, var, user, rol, winner, survived):
|
||||
|
@ -1886,7 +1886,7 @@ def chk_decision(cli, force=""):
|
||||
lmsg = random.choice(messages["lynch_no_reveal"]).format(votee)
|
||||
cli.msg(botconfig.CHANNEL, lmsg)
|
||||
better_deadlist = [users._get(p) for p in deadlist] # FIXME -- convert chk_decision_lynch to be user-aware
|
||||
if not del_player(users._get(votee), forced_death=True, killer_role="villager", deadlist=better_deadlist): # FIXME
|
||||
if not del_player(users._get(votee), killer_role="villager", deadlist=better_deadlist): # FIXME
|
||||
return
|
||||
do_night_transision = True
|
||||
break
|
||||
@ -2372,10 +2372,9 @@ def chk_win_conditions(cli, rolemap, mainroles, end_game=True, winner=None):
|
||||
return True
|
||||
|
||||
@handle_error
|
||||
def del_player(player, *, forced_death=False, devoice=True, end_game=True, death_triggers=True, killer_role="", deadlist=[], original=None, cmode=[], deadchat=[], ismain=True):
|
||||
def del_player(player, *, devoice=True, end_game=True, death_triggers=True, killer_role="", deadlist=[], original=None, cmode=[], deadchat=[], ismain=True):
|
||||
"""
|
||||
Returns: False if one side won.
|
||||
arg: forced_death = True when lynched
|
||||
"""
|
||||
|
||||
def refresh_pl(old_pl):
|
||||
@ -2490,7 +2489,7 @@ def del_player(player, *, forced_death=False, devoice=True, end_game=True, death
|
||||
message = messages["lover_suicide_no_reveal"].format(lover)
|
||||
channels.Main.send(message)
|
||||
debuglog("{0} ({1}) LOVE SUICIDE: {2} ({3})".format(lover, get_main_role(lover), player, mainrole))
|
||||
del_player(lover, forced_death=True, end_game=False, killer_role=killer_role, deadlist=deadlist, original=original, ismain=False)
|
||||
del_player(lover, end_game=False, killer_role=killer_role, deadlist=deadlist, original=original, ismain=False)
|
||||
pl = refresh_pl(pl)
|
||||
if "assassin" in allroles:
|
||||
if player.nick in var.TARGETED:
|
||||
@ -2535,7 +2534,7 @@ def del_player(player, *, forced_death=False, devoice=True, end_game=True, death
|
||||
message = messages["assassin_success_no_reveal"].format(player, target)
|
||||
channels.Main.send(message)
|
||||
debuglog("{0} (assassin) ASSASSINATE: {1} ({2})".format(player, target, get_main_role(target)))
|
||||
del_player(target, forced_death=True, end_game=False, killer_role=mainrole, deadlist=deadlist, original=original, ismain=False)
|
||||
del_player(target, end_game=False, killer_role=mainrole, deadlist=deadlist, original=original, ismain=False)
|
||||
pl = refresh_pl(pl)
|
||||
if mainrole == "time lord":
|
||||
if "DAY_TIME_LIMIT" not in var.ORIGINAL_SETTINGS:
|
||||
@ -2592,7 +2591,7 @@ def del_player(player, *, forced_death=False, devoice=True, end_game=True, death
|
||||
# i herd u liek parameters
|
||||
evt_death_triggers = death_triggers and var.PHASE in var.GAME_PHASES
|
||||
event = Event("del_player", {"pl": pl},
|
||||
forced_death=forced_death, end_game=end_game,
|
||||
end_game=end_game,
|
||||
deadlist=deadlist, original=original, killer_role=killer_role,
|
||||
ismain=ismain, refresh_pl=refresh_pl, del_player=del_player)
|
||||
event.dispatch(var, player, mainrole, allroles, evt_death_triggers)
|
||||
@ -2684,7 +2683,7 @@ def del_player(player, *, forced_death=False, devoice=True, end_game=True, death
|
||||
# if these aren't cleared properly night may end prematurely
|
||||
for x in (var.PASSED, var.HEXED, var.MATCHMAKERS, var.CURSED, var.CHARMERS):
|
||||
x.discard(player.nick)
|
||||
if var.PHASE == "day" and not forced_death and ret: # didn't die from lynching
|
||||
if var.PHASE == "day" and ret:
|
||||
var.VOTES.pop(player.nick, None) # Delete other people's votes on the player
|
||||
for k in list(var.VOTES.keys()):
|
||||
if player.nick in var.VOTES[k]:
|
||||
|
Loading…
x
Reference in New Issue
Block a user