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:
skizzerz 2017-09-26 15:59:42 -05:00
parent de566f839b
commit 6d26d8e90c
4 changed files with 12 additions and 13 deletions

View File

@ -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")

View File

@ -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)

View File

@ -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):

View File

@ -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]: