Change handling of chk_win events
This commit is contained in:
parent
04180bc036
commit
27f39c916f
@ -111,8 +111,7 @@ class GameMode:
|
|||||||
if len(lovers) == lpl:
|
if len(lovers) == lpl:
|
||||||
evt.data["winner"] = "lovers"
|
evt.data["winner"] = "lovers"
|
||||||
evt.data["message"] = "Game over! All of the remaining villagers are in love with each other! All of them win."
|
evt.data["message"] = "Game over! All of the remaining villagers are in love with each other! All of them win."
|
||||||
evt.data["players"] = ["{0} ({1})".format(x, var.get_role(x)) for x in lovers]
|
evt.data["additional_winners"] = list(lovers)
|
||||||
evt.data["winners"] = list(lovers)
|
|
||||||
|
|
||||||
@game_mode("roles", minp = 4, maxp = 35)
|
@game_mode("roles", minp = 4, maxp = 35)
|
||||||
class ChangedRolesMode(GameMode):
|
class ChangedRolesMode(GameMode):
|
||||||
|
@ -2623,7 +2623,7 @@ def chk_win_conditions(lpl, lwolves, lcubs, lrealwolves, lmonsters, ltraitors, l
|
|||||||
ltraitors = len(var.ROLES.get("traitor", ()))
|
ltraitors = len(var.ROLES.get("traitor", ()))
|
||||||
return chk_win_conditions(lpl, lwolves, lcubs, lrealwolves, lmonsters, ltraitors, lpipers, cli, end_game)
|
return chk_win_conditions(lpl, lwolves, lcubs, lrealwolves, lmonsters, ltraitors, lpipers, cli, end_game)
|
||||||
|
|
||||||
event = Event("chk_win", {"winner": winner, "message": message, "players": [], "winners": None})
|
event = Event("chk_win", {"winner": winner, "message": message, "additional_winners": None})
|
||||||
event.dispatch(var, lpl, lwolves, lrealwolves)
|
event.dispatch(var, lpl, lwolves, lrealwolves)
|
||||||
winner = event.data["winner"]
|
winner = event.data["winner"]
|
||||||
message = event.data["message"]
|
message = event.data["message"]
|
||||||
@ -2632,7 +2632,10 @@ def chk_win_conditions(lpl, lwolves, lcubs, lrealwolves, lmonsters, ltraitors, l
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
if end_game:
|
if end_game:
|
||||||
players = event.data["players"]
|
if event.data["additional_winners"] is None:
|
||||||
|
players = []
|
||||||
|
else:
|
||||||
|
players = ["{0} ({1})".format(x, var.get_role(x)) for x in event.data["additional_winners"]]
|
||||||
if winner == "monsters":
|
if winner == "monsters":
|
||||||
for plr in var.ROLES["monster"]:
|
for plr in var.ROLES["monster"]:
|
||||||
players.append("{0} ({1})".format(plr, var.get_role(plr)))
|
players.append("{0} ({1})".format(plr, var.get_role(plr)))
|
||||||
@ -2649,7 +2652,7 @@ def chk_win_conditions(lpl, lwolves, lcubs, lrealwolves, lmonsters, ltraitors, l
|
|||||||
debuglog("WIN:", winner)
|
debuglog("WIN:", winner)
|
||||||
debuglog("PLAYERS:", ", ".join(players))
|
debuglog("PLAYERS:", ", ".join(players))
|
||||||
cli.msg(chan, message)
|
cli.msg(chan, message)
|
||||||
stop_game(cli, winner, winners=event.data["winners"])
|
stop_game(cli, winner, winners=event.data["additional_winners"])
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def del_player(cli, nick, forced_death = False, devoice = True, end_game = True, death_triggers = True, killer_role = "", deadlist = [], original = "", cmode = [], ismain = True):
|
def del_player(cli, nick, forced_death = False, devoice = True, end_game = True, death_triggers = True, killer_role = "", deadlist = [], original = "", cmode = [], ismain = True):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user