Don't do death triggers when someone idles out/quits/etc. Closes #41

This commit is contained in:
skizzerz 2014-07-19 18:32:21 -05:00
parent f23c899ce2
commit 10e50e88c8

View File

@ -550,7 +550,7 @@ def fleave(cli, nick, chann_, rest):
if var.PHASE in ("day", "night"):
var.LOGGER.logMessage("{0} is forcing {1} to leave.".format(nick, a))
var.LOGGER.logMessage("Say goodbye to the {0}".format(var.get_role(a)))
del_player(cli, a)
del_player(cli, a, death_triggers = False)
@cmd("fstart", admin_only=True)
@ -1243,7 +1243,7 @@ def chk_win(cli, end_game = True):
stop_game(cli, winner)
return True
def del_player(cli, nick, forced_death = False, devoice = True, end_game = True):
def del_player(cli, nick, forced_death = False, devoice = True, end_game = True, death_triggers = True):
"""
Returns: False if one side won.
arg: forced_death = True when lynched or when the seer/wolf both don't act
@ -1264,7 +1264,7 @@ def del_player(cli, nick, forced_death = False, devoice = True, end_game = True)
nicktpls = var.get_templates(nick)
var.del_player(nick)
# handle roles that trigger on death
if var.PHASE in ("night", "day"):
if death_triggers and var.PHASE in ("night", "day"):
if nick in var.LOVERS:
others = copy.copy(var.LOVERS[nick])
del var.LOVERS[nick][:]
@ -1448,7 +1448,7 @@ def reaper(cli, gameid):
cli.msg(chan, ("\u0002{0}\u0002 didn't get out of bed for a very long " +
"time and has been found dead.").format(nck))
make_stasis(nck, var.IDLE_STASIS_PENALTY)
if not del_player(cli, nck):
if not del_player(cli, nck, death_triggers = False):
return
pl = var.list_players()
x = [a for a in to_warn if a in pl]
@ -1466,7 +1466,7 @@ def reaper(cli, gameid):
cli.msg(chan, ("\u0002{0}\u0002 was mauled by wild animals and has died.").format(dcedplayer))
if var.PHASE != "join":
make_stasis(dcedplayer, var.PART_STASIS_PENALTY)
if not del_player(cli, dcedplayer, devoice = False):
if not del_player(cli, dcedplayer, devoice = False, death_triggers = False):
return
elif what == "part" and (datetime.now() - timeofdc) > timedelta(seconds=var.PART_GRACE_TIME):
if var.ROLE_REVEAL:
@ -1476,7 +1476,7 @@ def reaper(cli, gameid):
cli.msg(chan, ("\u0002{0}\u0002 ate some poisonous berries and has died.").format(dcedplayer))
if var.PHASE != "join":
make_stasis(dcedplayer, var.PART_STASIS_PENALTY)
if not del_player(cli, dcedplayer, devoice = False):
if not del_player(cli, dcedplayer, devoice = False, death_triggers = False):
return
time.sleep(10)
@ -1772,7 +1772,7 @@ def leave(cli, what, nick, why=""):
cli.msg(botconfig.CHANNEL, msg)
var.LOGGER.logMessage(msg.replace("\02", ""))
if killplayer:
del_player(cli, nick)
del_player(cli, nick, death_triggers = False)
else:
var.DISCONNECTED[nick] = (cloak, datetime.now(), what)
@ -1809,7 +1809,7 @@ def leave_game(cli, nick, chan, rest):
if var.PHASE != "join":
make_stasis(nick, var.LEAVE_STASIS_PENALTY)
del_player(cli, nick)
del_player(cli, nick, death_triggers = False)
def begin_day(cli):
chan = botconfig.CHANNEL