From 5d6bb8d4c2d57ef2619263454fcb03ad04fa392e Mon Sep 17 00:00:00 2001 From: jacob1 Date: Tue, 3 Jul 2018 19:56:04 -0400 Subject: [PATCH] use new_role event when a player joins midgame in maelstrom --- src/gamemodes.py | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/src/gamemodes.py b/src/gamemodes.py index 5d5d96e..f61d03d 100644 --- a/src/gamemodes.py +++ b/src/gamemodes.py @@ -1143,31 +1143,14 @@ class MaelstromMode(GameMode): if wrapper.source.nick in var.USERS: var.PLAYERS[wrapper.source.nick] = var.USERS[wrapper.source.nick] - # TODO: split this out with doctor - if role == "doctor": - lpl = len(list_players()) - var.DOCTORS[wrapper.source.nick] = math.ceil(var.DOCTOR_IMMUNIZATION_MULTIPLIER * lpl) - # let them know their role + evt = events.Event("new_role", {"messages": [], "role": role}, inherit_from=None) + # Use "player" as old role, to force wolf event to send "new wolf" messages + evt.dispatch(var, wrapper.source, "player") + for message in evt.data["messages"]: + wrapper.pm(message) + from src.decorators import COMMANDS COMMANDS["myrole"][0].caller(wrapper.source.client, wrapper.source.nick, wrapper.target.name, "") # FIXME: New/old API - # if they're a wolfchat role, alert the other wolves - if role in var.WOLFCHAT_ROLES: - relay_wolfchat_command(wrapper.source.client, wrapper.source.nick, messages["wolfchat_new_member"].format(wrapper.source.nick, "", role), var.WOLFCHAT_ROLES, is_wolf_command=True, is_kill_command=True) - # TODO: make this part of !myrole instead, no reason we can't give out wofllist in that - wolves = list_players(var.WOLFCHAT_ROLES) - pl = get_players() - random.shuffle(pl) - pl.remove(wrapper.source) - for i, player in enumerate(pl): - prole = get_main_role(player) - if prole in var.WOLFCHAT_ROLES: - cursed = "" - if player in var.ROLES["cursed villager"]: - cursed = "cursed " - pl[i] = "\u0002{0}\u0002 ({1}{2})".format(player, cursed, prole) - elif player in var.ROLES["cursed villager"]: - pl[i] = player.nick + " (cursed)" - wrapper.pm(messages["players_list"].format(", ".join(pl))) def role_attribution(self, evt, var, chk_win_conditions, villagers): self.chk_win_conditions = chk_win_conditions