From 073389bc35b257e69860298b7dc8fa84c01c2c86 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 10:39:12 +0200 Subject: [PATCH 01/20] =?UTF-8?q?Eh.=20S=C3=AC.=20Sono=20un=20genio.=20Lo?= =?UTF-8?q?=20so.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index e9f03d1..df27c77 100644 --- a/main.py +++ b/main.py @@ -74,7 +74,7 @@ class Mifioso(Role): def power(self, bot, game, player, arg): # Imposta una persona come bersaglio da uccidere. selected = game.findplayerbyusername(arg) - if self.target is not None: + if selected is not None: self.target = selected player.message(bot, s.mifia_target_selected.format(target=self.target.tusername)) else: From 3b61d984731f956dbd3edcb327001db91616fb7e Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 10:51:52 +0200 Subject: [PATCH 02/20] bugfix --- main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index df27c77..423f06f 100644 --- a/main.py +++ b/main.py @@ -301,7 +301,7 @@ class Game: if player.votingfor is not None and player.alive: player.votingfor.votes += 1 - def updatevotes(self): + def updatemifiavotes(self): """Aggiorna il conteggio dei voti mifiosi di tutti i giocatori.""" for player in self.players: player.mifiavotes = 0 @@ -323,13 +323,13 @@ class Game: if currenttop > 0: return mostvoted else: - return None + return list() def mostvotedmifia(self) -> list: """Trova il giocatore più votato dalla mifia.""" mostvoted = list() currenttop = 0 - self.updatevotes() + self.updatemifiavotes() for player in self.players: if player.mifiavotes > currenttop: mostvoted = [player] @@ -338,7 +338,7 @@ class Game: if currenttop > 0: return mostvoted else: - return None + return list() def endday(self, bot): From 8de9bff43230bfdb62bf6ba868d71f9180e59706 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 11:16:02 +0200 Subject: [PATCH 03/20] Update main.py --- main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 423f06f..d8bf7c5 100644 --- a/main.py +++ b/main.py @@ -361,7 +361,7 @@ class Game: # Mifiosi if self.votingmifia: # Trova il più votato dai mifiosi e uccidilo - killlist = mostvotedmifia() + killlist = self.mostvotedmifia() if len(killlist) > 0: # In caso di pareggio, elimina un giocatore casuale. random.seed() @@ -369,6 +369,7 @@ class Game: killed = killlist.pop() if killed.alive: self.message(bot, s.mifia_target_killed.format(name=killed.tusername, icon=killed.role.icon, role=killed.role.name)) + # Attiva il onendday dei mifiosi for player in self.mifiosiingame: if isinstance(player.role, Mifioso) and player.alive: player.role.onendday(bot, self) From 9758722cdf760abe119620d904e99e4fdef4b7a2 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 11:34:06 +0200 Subject: [PATCH 04/20] Per debug --- main.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index d8bf7c5..31b04e7 100644 --- a/main.py +++ b/main.py @@ -681,4 +681,6 @@ updater.dispatcher.addHandler(CommandHandler('debuggameslist', debuggameslist)) updater.dispatcher.addHandler(CommandHandler('kill', kill)) updater.dispatcher.addHandler(CommandHandler('config', config)) updater.start_polling() -updater.idle() +print("Bot avviato!") +if __name__ == "__main__": + updater.idle() From 30d6b7369fc3556ff4dc975e45857b06ae1d0d89 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 11:42:46 +0200 Subject: [PATCH 05/20] __repr__ From b3737d33f6bca90ae3febc6b3a7691b587aaccd0 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 11:46:54 +0200 Subject: [PATCH 06/20] boh --- main.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/main.py b/main.py index 31b04e7..20a4fb1 100644 --- a/main.py +++ b/main.py @@ -28,7 +28,7 @@ class Role: self.name = "UNDEFINED" # Nome del ruolo, viene visualizzato dall'investigatore e durante l'assegnazione dei ruoli self.powerdesc = None # Ha un potere? Se sì, inviagli le info su come usarlo. - def __repr__(self): + def __repr__(self) -> str: r = "< undefined Role >" return r @@ -49,7 +49,7 @@ class Royal(Role): self.team = 'Good' self.name = s.royal_name - def __repr__(self): + def __repr__(self) -> str: r = "< Role: Royal >" return r @@ -64,11 +64,11 @@ class Mifioso(Role): self.name = s.mifia_name self.powerdesc = s.mifia_power_description - def __repr__(self): + def __repr__(self) -> str: if self.target is None: r = "< Role: Mifioso >" else: - r = "< Role: Mifioso, targeting {target} >".format(target=target.tusername) + r = "< Role: Mifioso, targeting {target} >".format(target=self.target.tusername) return r def power(self, bot, game, player, arg): @@ -105,7 +105,7 @@ class Investigatore(Role): self.name = s.detective_name self.powerdesc = s.detective_power_description.format(maxuses=self.poweruses) - def __repr__(self): + def __repr__(self) -> str: r = "< Role: Investigatore, {uses} uses left >".format(uses=self.poweruses) return r @@ -137,7 +137,7 @@ class Angelo(Role): self.protecting = None # La persona che questo angelo sta proteggendo self.powerdesc = s.angel_power_description - def __repr__(self): + def __repr__(self) -> str: if protecting is None: r = "< Role: Angelo >" else: @@ -180,8 +180,9 @@ class Player: self.protectedby = None # Protettore. Oggetto player che protegge questo giocatore dalla mifia. self.mifiavotes = 0 # Voti che sta ricevendo questo giocatore dalla mifia. Aggiornato da updatemifiavotes() - def __repr__(self): + def __repr__(self) -> str: r = "< Player {username} >".format(username=self.tusername) + return r def message(self, bot, text): """Manda un messaggio privato al giocatore.""" @@ -519,7 +520,7 @@ def config(bot, update): if game is not None and game.phase is 'Config': if update.message.from_user['id'] == game.adminid: cmd = update.message.text.split(' ', 1) - if len(cmd) >= 1: + if len(cmd) >= 2: if game.configstep == 0: try: game.totalmifiosi = int(cmd[1]) From 5518dd5277b9c0d021610da11e558c585fd70b9f Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 11:51:57 +0200 Subject: [PATCH 07/20] che boiata --- main.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 20a4fb1..9107951 100644 --- a/main.py +++ b/main.py @@ -318,7 +318,9 @@ class Game: self.updatevotes() for player in self.players: if player.votes > currenttop: - mostvoted = [player] + mostvoted = list() + mostvoted.append(player) + currenttop = player.votes elif player.votes == currenttop: mostvoted.append(player) if currenttop > 0: @@ -332,9 +334,11 @@ class Game: currenttop = 0 self.updatemifiavotes() for player in self.players: - if player.mifiavotes > currenttop: - mostvoted = [player] - elif player.votes == currenttop: + if player.mifiavotes > currenttop: + mostvoted = list() + mostvoted.append(player) + currenttop = player.mifiavotes + elif player.votes == currenttop: mostvoted.append(player) if currenttop > 0: return mostvoted From 5999c76716f6c2e06414ca71fc917b6310bee188 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 13:42:25 +0200 Subject: [PATCH 08/20] 120 colonne --- main.py | 84 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 28 deletions(-) diff --git a/main.py b/main.py index 9107951..a614701 100644 --- a/main.py +++ b/main.py @@ -25,11 +25,11 @@ class Role: def __init__(self): self.icon = "-" # Icona del ruolo, da visualizzare di fianco al nome self.team = 'None' # Squadra: 'None', 'Good', 'Evil' - self.name = "UNDEFINED" # Nome del ruolo, viene visualizzato dall'investigatore e durante l'assegnazione dei ruoli + self.name = "UNDEFINED" # Nome del ruolo, viene visualizzato dall'investigatore e durante l'assegnazione self.powerdesc = None # Ha un potere? Se sì, inviagli le info su come usarlo. def __repr__(self) -> str: - r = "< undefined Role >" + r = "" return r def power(self, bot, game, player, arg): @@ -50,7 +50,7 @@ class Royal(Role): self.name = s.royal_name def __repr__(self) -> str: - r = "< Role: Royal >" + r = "" return r @@ -66,9 +66,9 @@ class Mifioso(Role): def __repr__(self) -> str: if self.target is None: - r = "< Role: Mifioso >" + r = "" else: - r = "< Role: Mifioso, targeting {target} >".format(target=self.target.tusername) + r = "".format(target=self.target.tusername) return r def power(self, bot, game, player, arg): @@ -86,10 +86,13 @@ class Mifioso(Role): if self.target is not None: if self.target.protectedby is None: self.target.kill() - game.message(bot, s.mifia_target_killed.format(target=self.target.tusername, icon=self.target.role.icon, role=self.target.role.name)) + game.message(bot, s.mifia_target_killed.format(target=self.target.tusername, + icon=self.target.role.icon, + role=self.target.role.name)) else: - game.message(bot, s.mifia_target_protected.format(target=self.target.tusername, icon=self.target.protectedby.role.icon, - protectedby=self.target.protectedby.tusername)) + game.message(bot, s.mifia_target_protected.format(target=self.target.tusername, + icon=self.target.protectedby.role.icon, + protectedby=self.target.protectedby.tusername)) self.target = None else: self.target = None @@ -106,7 +109,7 @@ class Investigatore(Role): self.powerdesc = s.detective_power_description.format(maxuses=self.poweruses) def __repr__(self) -> str: - r = "< Role: Investigatore, {uses} uses left >".format(uses=self.poweruses) + r = "".format(uses=self.poweruses) return r def power(self, bot, game, player, arg): @@ -115,8 +118,10 @@ class Investigatore(Role): target = game.findplayerbyusername(arg) if target is not None: self.poweruses -= 1 - player.message(bot, s.detective_discovery - .format(target=target.tusername, icon=target.role.icon, role=target.role.name, left=self.poweruses)) + player.message(bot, s.detective_discovery.format(target=target.tusername, + icon=target.role.icon, + role=target.role.name, + left=self.poweruses)) else: player.message(bot, s.error_username) else: @@ -128,7 +133,8 @@ class Investigatore(Role): class Angelo(Role): - """L'angelo può proteggere una persona al giorno dalla Mifia. Se ha successo nella protezione, il suo ruolo sarà rivelato a tutti.""" + """L'angelo può proteggere una persona al giorno dalla Mifia. + Se ha successo nella protezione, il suo ruolo sarà rivelato a tutti.""" def __init__(self): super().__init__() self.icon = s.angel_icon @@ -139,9 +145,9 @@ class Angelo(Role): def __repr__(self) -> str: if protecting is None: - r = "< Role: Angelo >" + r = "" else: - r = "< Role: Angelo, protecting {target}".format(target=self.protecting.tusername) + r = "".format(target=self.protecting.tusername) return r def power(self, bot, game, player, arg): @@ -169,7 +175,8 @@ class Angelo(Role): class Player: - """Classe di un giocatore. Contiene tutti i dati riguardanti un giocatore all'interno di una partita, come il ruolo, e i dati riguardanti telegram, come ID e username.""" + """Classe di un giocatore. Contiene tutti i dati riguardanti un giocatore all'interno di una partita, come il ruolo, + e i dati riguardanti telegram, come ID e username.""" def __init__(self, tid, tusername): self.tid = tid # ID di Telegram self.tusername = tusername # Username di Telegram @@ -181,7 +188,7 @@ class Player: self.mifiavotes = 0 # Voti che sta ricevendo questo giocatore dalla mifia. Aggiornato da updatemifiavotes() def __repr__(self) -> str: - r = "< Player {username} >".format(username=self.tusername) + r = "".format(username=self.tusername) return r def message(self, bot, text): @@ -194,7 +201,8 @@ class Player: self.alive = False class Game: - """Classe di una partita, contenente parametri riguardanti stato della partita e informazioni sul gruppo di Telegram.""" + """Classe di una partita, contenente parametri riguardanti stato della partita + e informazioni sul gruppo di Telegram.""" def __init__(self, groupid, adminid): self.groupid = groupid # ID del gruppo in cui si sta svolgendo una partita self.adminid = adminid # ID telegram dell'utente che ha creato la partita con /newgame @@ -228,7 +236,8 @@ class Game: freenames.append(self.name) def __repr__(self): - r = "< Game {name} in group {groupid} with {nplayers} players in phase {phase} >".format(name=self.name, groupid=self.groupid, nplayers=len(self.players), phase=self.phase) + r = "" \ + .format(name=self.name, groupid=self.groupid, nplayers=len(self.players), phase=self.phase) return r def message(self, bot, text): @@ -356,7 +365,9 @@ class Game: random.shuffle(topvotes) lynched = topvotes.pop() if lynched.alive: - self.message(bot, s.player_lynched.format(name=lynched.tusername, icon=lynched.role.icon, role=lynched.role.name)) + self.message(bot, s.player_lynched.format(name=lynched.tusername, + icon=lynched.role.icon, + role=lynched.role.name)) lynched.kill() else: self.message(bot, s.no_players_lynched) @@ -373,7 +384,9 @@ class Game: random.shuffle(killlist) killed = killlist.pop() if killed.alive: - self.message(bot, s.mifia_target_killed.format(name=killed.tusername, icon=killed.role.icon, role=killed.role.name)) + self.message(bot, s.mifia_target_killed.format(name=killed.tusername, + icon=killed.role.icon, + role=killed.role.name)) # Attiva il onendday dei mifiosi for player in self.mifiosiingame: if isinstance(player.role, Mifioso) and player.alive: @@ -474,9 +487,14 @@ def debug(bot, update): if not player.alive: text += s.status_dead_player.format(name=player.tusername) elif player.votingfor is not None: - text += s.status_voting_player.format(icon=player.role.icon, name=player.tusername, votes=str(player.votes), voting=player.votingfor.tusername) + text += s.status_voting_player.format(icon=player.role.icon, + name=player.tusername, + votes=str(player.votes), + voting=player.votingfor.tusername) else: - text += s.status_idle_player.format(icon=player.role.icon, name=player.tusername, votes=str(player.votes)) + text += s.status_idle_player.format(icon=player.role.icon, + name=player.tusername, + votes=str(player.votes)) game.adminmessage(bot, text) game.message(bot, s.check_private) else: @@ -496,7 +514,10 @@ def status(bot, update): if not player.alive: text += s.status_dead_player.format(name=player.tusername) elif player.votingfor is not None: - text += s.status_voting_player.format(icon="\U0001F610", name=player.tusername, votes=str(player.votes), voting=player.votingfor.tusername) + text += s.status_voting_player.format(icon="\U0001F610", + name=player.tusername, + votes=str(player.votes), + voting=player.votingfor.tusername) else: text += s.status_idle_player.format(icon="\U0001F610", name=player.tusername, votes=str(player.votes)) game.message(bot, text) @@ -653,7 +674,9 @@ def kill(bot, update): target = game.findplayerbyusername(update.message.text.split(' ')[1]) if target is not None: target.kill() - game.message(bot, s.admin_killed.format(name=target.tusername, icon=target.role.icon, role=target.role.name)) + game.message(bot, s.admin_killed.format(name=target.tusername, + icon=target.role.icon, + role=target.role.name)) else: game.message(bot, s.error_username) else: @@ -665,10 +688,14 @@ def kill(bot, update): def fakerole(bot, update): """Manda un finto messaggio di ruolo.""" if update.message.chat['type'] == 'private': - bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.royal_icon, name=s.royal_name), parse_mode=ParseMode.MARKDOWN) - bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.mifia_icon, name=s.mifia_name), parse_mode=ParseMode.MARKDOWN) - bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.detective_icon, name=s.detective_name), parse_mode=ParseMode.MARKDOWN) - bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.angel_icon, name=s.angel_name), parse_mode=ParseMode.MARKDOWN) + bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.royal_icon, name=s.royal_name), + parse_mode=ParseMode.MARKDOWN) + bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.mifia_icon, name=s.mifia_name), + parse_mode=ParseMode.MARKDOWN) + bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.detective_icon, name=s.detective_name), + parse_mode=ParseMode.MARKDOWN) + bot.sendMessage(update.message.chat['id'], s.role_assigned.format(icon=s.angel_icon, name=s.angel_name), + parse_mode=ParseMode.MARKDOWN) else: bot.sendMessage(update.message.chat['id'], s.error_private_required, parse_mode=ParseMode.MARKDOWN) @@ -685,6 +712,7 @@ updater.dispatcher.addHandler(CommandHandler('debug', debug)) updater.dispatcher.addHandler(CommandHandler('debuggameslist', debuggameslist)) updater.dispatcher.addHandler(CommandHandler('kill', kill)) updater.dispatcher.addHandler(CommandHandler('config', config)) +updater.dispatcher.addHandler(CommandHandler('fakerole', fakerole)) updater.start_polling() print("Bot avviato!") if __name__ == "__main__": From 42ea82eb9a2af2d2597bdacf84f27d36e8e0eb96 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 13:44:51 +0200 Subject: [PATCH 09/20] =?UTF-8?q?poi=20ti=20chiedi=20perch=C3=A8=20succede?= =?UTF-8?q?=20roba=20come=20#12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index a614701..9d41c12 100644 --- a/main.py +++ b/main.py @@ -315,8 +315,8 @@ class Game: """Aggiorna il conteggio dei voti mifiosi di tutti i giocatori.""" for player in self.players: player.mifiavotes = 0 - for player in self.players: - if isinstance(player.role, Mifioso) and player.alive: + for player in self.mifiosiingame: + if player.alive: if player.role.target is not None: player.role.target.mifiavotes += 1 @@ -387,6 +387,7 @@ class Game: self.message(bot, s.mifia_target_killed.format(name=killed.tusername, icon=killed.role.icon, role=killed.role.name)) + killed.kill() # Attiva il onendday dei mifiosi for player in self.mifiosiingame: if isinstance(player.role, Mifioso) and player.alive: From cfda5ae6aa491f7641da39b963bf8c02bf47eddb Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:12:40 +0200 Subject: [PATCH 10/20] Aggiunti un po' di comuni --- strings.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/strings.py b/strings.py index 4478f58..404070d 100644 --- a/strings.py +++ b/strings.py @@ -101,11 +101,11 @@ check_private = "Messaggio inviato in chat privata.\n" \ # Vittoria: team Mifia victory_mifia = "I Mifiosi rimasti sono più dei Royal.\n" \ - "*_La Mifia vince!_*" + "*La Mifia vince!*" # Vittoria: team Royal victory_royal = "Tutti i Mifiosi sono stati eliminati.\n" \ - "*_La Royal Games vince!_*" + "*La Royal Games vince!*" # Status: parte aggiunta prima dell'elenco dei giocatori (deve terminare con \n) status_header = "*ID:* {name}\n" \ @@ -170,8 +170,33 @@ error_invalid_config = "\U000026A0 Configurazione non valida." # Lista dei possibili nomi di una partita names_list = ["Modena", - "Bologna", - "Castelfranco"] + "Nonantola", + "Sassuolo", + "Vignola", + "Carpi", + "Formigine", + "Mirandola", + "Castelfranco", + "Pavullo", + "Maranello", + "Fiorano", + "Finale", + "Soliera", + "Castelnuovo", + "Spilamberto", + "Castelvetro", + "Novi", + "Bomporto", + "Savignano", + "Campogalliano", + "Concordia", + "Serramazzoni", + "Cavezzo", + "Medolla", + "Ravarino", + "Marano", + "Zocca", + "Guiglia"] # Lista dei passi di configurazione da eseguire config_list = ["Quanti Mifiosi devono essere nella partita?", From 8d6af132bd5a57b89f947a7e9fca7469b3e56f09 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:16:14 +0200 Subject: [PATCH 11/20] =?UTF-8?q?Reso=20pi=C3=B9=20chiaro=20l'ultimo=20con?= =?UTF-8?q?fig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings.py b/strings.py index 404070d..2779b33 100644 --- a/strings.py +++ b/strings.py @@ -202,4 +202,4 @@ names_list = ["Modena", config_list = ["Quanti Mifiosi devono essere nella partita?", "Quanti Investigatori devono essere nella partita?", "Quanti Angeli devono essere nella partita?", - "Le uccisioni della Mifia sono come nel gioco classico (True) o ogni Mifioso può uccidere un giocatore come nella versione di Steffo (False) ?"] + "I mifiosi possono uccidere una persona a `testa` al giorno o votano e decidono un'`unica` persona da uccidere per tutta la squadra?"] From e326ea3cd5c9b74fda33379620e7915a0d2e1e68 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:16:47 +0200 Subject: [PATCH 12/20] Cambiato ultimo config --- main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 9d41c12..c7b9574 100644 --- a/main.py +++ b/main.py @@ -572,10 +572,10 @@ def config(bot, update): game.configstep += 1 game.message(bot, s.config_list[game.configstep]) elif game.configstep == 3: - try: - game.votingmifia = bool(cmd[1]) - except ValueError: - game.message(bot, s.error_invalid_config) + if cmd[1].lower() == 'testa': + game.votingmifia = False + elif cmd[1].lower() == 'unica': + game.votingmifia = True else: # Fine del config, inizio assegnazione ruoli game.phase = 'Voting' From 78edf31cbd6074b3040c87feacb9bff322df7967 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:18:52 +0200 Subject: [PATCH 13/20] Cambiato una stringa in modo da non aver bisogno di fare #13 --- strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings.py b/strings.py index 2779b33..461faba 100644 --- a/strings.py +++ b/strings.py @@ -25,7 +25,7 @@ mifia_target_killed = "@{target} è stato ucciso dalla Mifia.\n" \ mifia_target_protected = "@{target} è stato protetto dalla Mifia da {icon} @{protectedby}!" # Mifioso: descrizione del potere -mifia_power_description = "Puoi uccidere una persona una volta al giorno.\n" \ +mifia_power_description = "Puoi selezionare come bersaglio di un'assassinio una personas.\n" \ "Per selezionare un bersaglio, scrivi in questa chat:\n" \ "`/power {gamename} nomeutentebersaglio`\n" \ "Alla fine del giorno, tutti i bersagli dei Mifiosi saranno eliminati!" From 8e7938c96444d9ef05f5bc24fb9f3bc76f54a732 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:32:03 +0200 Subject: [PATCH 14/20] due ore per un keyerror --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index c7b9574..a21cac9 100644 --- a/main.py +++ b/main.py @@ -384,7 +384,7 @@ class Game: random.shuffle(killlist) killed = killlist.pop() if killed.alive: - self.message(bot, s.mifia_target_killed.format(name=killed.tusername, + self.message(bot, s.mifia_target_killed.format(target=killed.tusername, icon=killed.role.icon, role=killed.role.name)) killed.kill() From 8867868c3ca7a7207f837138737a3ce11369e9b1 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:34:23 +0200 Subject: [PATCH 15/20] =?UTF-8?q?gi=C3=A0=20che=20ci=20siamo...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index a21cac9..b5f67d8 100644 --- a/main.py +++ b/main.py @@ -418,6 +418,17 @@ class Game: self.message(bot, s.victory_royal) self.endgame() + def endconfig(self): + """Fine della fase di config, inizio assegnazione ruoli""" + game.phase = 'Voting' + try: + game.assignroles(bot) + except IndexError: + game.message(bot, s.error_not_enough_players) + game.endgame() + else: + game.message(bot, s.roles_assigned_successfully) + def endgame(self): inprogress.remove(self) @@ -574,18 +585,12 @@ def config(bot, update): elif game.configstep == 3: if cmd[1].lower() == 'testa': game.votingmifia = False + game.endconfig() elif cmd[1].lower() == 'unica': game.votingmifia = True + game.endconfig() else: - # Fine del config, inizio assegnazione ruoli - game.phase = 'Voting' - try: - game.assignroles(bot) - except IndexError: - game.message(bot, s.error_not_enough_players) - game.endgame() - else: - game.message(bot, s.roles_assigned_successfully) + game.message(bot, s.error_invalid_config) else: game.message(bot, s.config_list[game.configstep]) else: From 2a3f9f7f990a5ee232ed5c844226248a30a34f66 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:39:17 +0200 Subject: [PATCH 16/20] argh --- main.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index b5f67d8..af44d83 100644 --- a/main.py +++ b/main.py @@ -420,14 +420,14 @@ class Game: def endconfig(self): """Fine della fase di config, inizio assegnazione ruoli""" - game.phase = 'Voting' + self.phase = 'Voting' try: - game.assignroles(bot) + self.assignroles(bot) except IndexError: - game.message(bot, s.error_not_enough_players) - game.endgame() + self.message(bot, s.error_not_enough_players) + self.endgame() else: - game.message(bot, s.roles_assigned_successfully) + self.message(bot, s.roles_assigned_successfully) def endgame(self): inprogress.remove(self) From 24b3446fab962e01142e5b316355c996459579dd Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 15:53:06 +0200 Subject: [PATCH 17/20] di sto passo finisco a settembre --- main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index af44d83..16fb121 100644 --- a/main.py +++ b/main.py @@ -418,7 +418,7 @@ class Game: self.message(bot, s.victory_royal) self.endgame() - def endconfig(self): + def endconfig(self, bot): """Fine della fase di config, inizio assegnazione ruoli""" self.phase = 'Voting' try: @@ -585,10 +585,10 @@ def config(bot, update): elif game.configstep == 3: if cmd[1].lower() == 'testa': game.votingmifia = False - game.endconfig() + game.endconfig(bot) elif cmd[1].lower() == 'unica': game.votingmifia = True - game.endconfig() + game.endconfig(bot) else: game.message(bot, s.error_invalid_config) else: From 18948cbde8820fa0129d754a5d565127cdf4ecb3 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 16:12:52 +0200 Subject: [PATCH 18/20] stringheeeeeee --- strings.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/strings.py b/strings.py index 461faba..2ac5809 100644 --- a/strings.py +++ b/strings.py @@ -140,15 +140,15 @@ error_game_in_progress = "\U000026A0 In questo gruppo è già in corso una parti # Errore: tipo di chat non supportato error_chat_type = "\U000026A0 Non puoi creare una partita in questo tipo di chat." -# Errore: per usare power, devi scrivere in chat privata -error_private_required = "\U000026A0 Non puoi usare /power in un gruppo.\n" \ +# Errore: per usare questo comando, devi scrivere in chat privata +error_private_required = "\U000026A0 Non puoi usare questo comando in un gruppo.\n" \ "Scrivimi in chat privata a @mifiabot." # Errore: giocatore già presente nella partita. error_player_already_joined = "\U000026A0 Ti sei già unito alla partita." -# Errore: nessuna partita in corso -error_no_games_found = "\U000026A0 In questo gruppo non ci sono partite in corso." +# Errore: nessuna partita trovata +error_no_games_found = "\U000026A0 Non è stata trovata una partita su cui usare il comando." # Errore: sei morto error_dead = "\U000026A0 Sei morto." From eefaa8aefd2e614744b100df858352366e3a1636 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 16:22:09 +0200 Subject: [PATCH 19/20] giustissimo --- strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings.py b/strings.py index 2ac5809..4ef04c5 100644 --- a/strings.py +++ b/strings.py @@ -41,7 +41,7 @@ detective_discovery = "@{target} è un *{icon} {role}*.\n" \ "Puoi usare il tuo potere ancora *{left}* volte oggi." # Investigatore: descrizione del potere -detective_power_description = "Puoi indagare sul vero ruolo di una persona *{maxuses}* volte al giorno.\n" \ +detective_power_description = "Puoi indagare sul vero ruolo di una persona una volta al giorno.\n" \ "Per indagare su qualcuno, scrivi in questa chat:\n" \ "`/power {gamename} nomeutentebersaglio`\n" From d0be0912d971fe32ea0a1b3db897628c46252dd4 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 27 May 2016 16:22:28 +0200 Subject: [PATCH 20/20] giustissimo2 --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 16fb121..0fb0e71 100644 --- a/main.py +++ b/main.py @@ -106,7 +106,7 @@ class Investigatore(Role): self.team = 'Good' self.poweruses = 1 self.name = s.detective_name - self.powerdesc = s.detective_power_description.format(maxuses=self.poweruses) + self.powerdesc = s.detective_power_description def __repr__(self) -> str: r = "".format(uses=self.poweruses)