Fix some del_player call sites and default params
This commit is contained in:
parent
35439209e0
commit
a4c9fe6377
@ -297,7 +297,9 @@ def on_chk_decision_lynch5(evt, cli, var, voters):
|
||||
cli.msg(botconfig.CHANNEL, tmsg)
|
||||
# we lie to this function so it doesn't devoice the player yet. instead, we'll let the call further down do it
|
||||
evt.data["deadlist"].append(target)
|
||||
evt.params.del_player(cli, target, True, end_game=False, killer_role="shaman", deadlist=evt.data["deadlist"], original=target, ismain=False)
|
||||
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)
|
||||
|
||||
@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, original=votee): # FIXME
|
||||
if not del_player(users._get(votee), forced_death=True, killer_role="villager", deadlist=better_deadlist): # FIXME
|
||||
return
|
||||
do_night_transision = True
|
||||
break
|
||||
@ -2372,7 +2372,7 @@ 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="", cmode=[], deadchat=[], ismain=True):
|
||||
def del_player(player, *, forced_death=False, 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
|
||||
@ -2386,6 +2386,9 @@ def del_player(player, *, forced_death=False, devoice=True, end_game=True, death
|
||||
var.LAST_STATS = None # reset
|
||||
var.LAST_VOTES = None
|
||||
|
||||
if original is None:
|
||||
original = player
|
||||
|
||||
with var.GRAVEYARD_LOCK:
|
||||
if not var.GAME_ID or var.GAME_ID > t:
|
||||
# either game ended, or a new game has started.
|
||||
@ -2407,7 +2410,7 @@ def del_player(player, *, forced_death=False, devoice=True, end_game=True, death
|
||||
# handle roles that trigger on death
|
||||
# clone happens regardless of death_triggers being true or not
|
||||
if var.PHASE in var.GAME_PHASES:
|
||||
clones = var.ROLES["clone"][:]
|
||||
clones = var.ROLES["clone"].copy()
|
||||
for clone in clones:
|
||||
# clone is a User, var.CLONED is a Dict[str,str]
|
||||
# dealist is a List[User]; ensure we add .nick appropriately
|
||||
@ -3833,7 +3836,7 @@ def transition_day(cli, gameid=0):
|
||||
# check if they have already been killed since del_player could do chain reactions and we want
|
||||
# to avoid sending duplicate messages.
|
||||
if deadperson in get_players():
|
||||
del_player(deadperson, end_game=False, killer_role=killer_role[deadperson], deadlist=dead, original=deadperson)
|
||||
del_player(deadperson, end_game=False, killer_role=killer_role[deadperson], deadlist=dead)
|
||||
|
||||
event_end = Event("transition_day_end", {"begin_day": begin_day})
|
||||
event_end.dispatch(var)
|
||||
|
Loading…
Reference in New Issue
Block a user