diff --git a/main.py b/main.py index de6b4af..f811012 100644 --- a/main.py +++ b/main.py @@ -9,6 +9,7 @@ updater = Updater(token) # Base di un ruolo class Role: icon = str() + team = 'None' # Squadra: 'None', 'Good', 'Evil' haspower = False poweruses = 0 @@ -21,10 +22,12 @@ class Role: class Royal(Role): icon = "\U0001F610" + team = 'Good' class Mifioso(Role): icon = "\U0001F47F" + team = 'Evil' haspower = True poweruses = 1 target = None @@ -41,6 +44,7 @@ class Mifioso(Role): class Investigatore(Role): icon = "\U0001F575" + team = 'Good' haspower = True poweruses = 1 @@ -53,6 +57,49 @@ class Investigatore(Role): self.poweruses = 1 +# Classi per i giocatori +class Player: + tid = int() + tusername = str() + role = Role() # Di base, ogni giocatore รจ un ruolo indefinito + alive = True + votingfor = str() + + def message(self, bot, text): + bot.sendMessage(self.tid, text) + + def __init__(self, tid, tusername): + self.tid = tid + self.tusername = tusername + + +# Classe di ogni partita +class Game: + adminid = int() + groupid = int() + players = list() + tokill = list() # Giocatori che verranno uccisi all'endday + phase = 'Join' # Fase di gioco: 'Join', 'Voting', 'Ended' + + def __init__(self, groupid, adminid): + self.groupid = groupid + self.adminid = adminid + + def message(self, bot, text): + bot.sendMessage(self.groupid, text) + + def adminmessage(self, bot, text): + bot.sendMessage(self.adminid, text) + + def mifiamessage(self, bot, text): + # Trova tutti i mifiosi nell'elenco dei giocatori + for player in self.players: + if isinstance(player.role, Mifioso): + player.message(bot, text) + # Inoltra il messaggio all'admin + self.adminmessage(bot, text) + + # Comandi a cui risponde il bot def ping(bot, update): bot.sendMessage(update.message.chat.id, "Pong!")