mirror of
https://github.com/RYGhub/royal-mifia.git
synced 2025-02-16 13:24:06 +00:00
Tolti i type hint
This commit is contained in:
parent
8096cbf9fb
commit
895e8dedca
1 changed files with 18 additions and 18 deletions
36
main.py
36
main.py
|
@ -31,11 +31,11 @@ class Role:
|
|||
r = "< undefined Role >"
|
||||
return r
|
||||
|
||||
def power(self, bot, game: Game, player: Player, arg: str):
|
||||
def power(self, bot, game, player, arg):
|
||||
"""Il potere del ruolo. Si attiva quando il bot riceve un /power in chat privata."""
|
||||
pass
|
||||
|
||||
def onendday(self, bot, game: Game):
|
||||
def onendday(self, bot, game):
|
||||
"""Metodo chiamato alla fine di ogni giorno, per attivare o ripristinare allo stato iniziale il potere."""
|
||||
pass
|
||||
|
||||
|
@ -70,13 +70,13 @@ class Mifioso(Role):
|
|||
r = "< Role: Mifioso, targeting {target} >".format(target=target.tusername)
|
||||
return r
|
||||
|
||||
def power(self, bot, game: Game, player: Player, arg: str):
|
||||
def power(self, bot, game, player, arg):
|
||||
# Imposta una persona come bersaglio da uccidere.
|
||||
self.target = game.findplayerbyusername(arg)
|
||||
if self.target is not None:
|
||||
player.message(bot, s.mifia_target_selected.format(target=self.target.tusername))
|
||||
|
||||
def onendday(self, bot, game: Game):
|
||||
def onendday(self, bot, game):
|
||||
# Uccidi il bersaglio se non è protetto da un Angelo.
|
||||
if self.target is not None:
|
||||
if self.target.protectedby is None:
|
||||
|
@ -102,7 +102,7 @@ class Investigatore(Role):
|
|||
r = "< Role: Investigatore, {uses} uses left >".format(uses=self.poweruses)
|
||||
return r
|
||||
|
||||
def power(self, bot, game: Game, player: Player, arg: str):
|
||||
def power(self, bot, game, player, arg):
|
||||
# Indaga sul vero ruolo di una persona, se sono ancora disponibili usi del potere.
|
||||
if self.poweruses > 0:
|
||||
target = game.findplayerbyusername(arg)
|
||||
|
@ -115,7 +115,7 @@ class Investigatore(Role):
|
|||
else:
|
||||
player.message(bot, s.error_no_uses)
|
||||
|
||||
def onendday(self, bot, game: Game):
|
||||
def onendday(self, bot, game):
|
||||
# Ripristina il potere
|
||||
self.poweruses = 1
|
||||
|
||||
|
@ -137,7 +137,7 @@ class Angelo(Role):
|
|||
r = "< Role: Angelo, protecting {target}".format(target=self.protecting.tusername)
|
||||
return r
|
||||
|
||||
def power(self, bot, game: Game, player: Player, arg: str):
|
||||
def power(self, bot, game, player, arg):
|
||||
# Imposta qualcuno come protetto
|
||||
selected = game.findplayerbyusername(arg)
|
||||
if player is not selected and selected is not None:
|
||||
|
@ -148,7 +148,7 @@ class Angelo(Role):
|
|||
self.protecting = selected
|
||||
player.message(bot, s.angel_target_selected.format(target=self.protecting.tusername))
|
||||
|
||||
def onendday(self, bot, game: Game):
|
||||
def onendday(self, bot, game):
|
||||
# Resetta la protezione
|
||||
if self.protecting is not None:
|
||||
self.protecting.protectedby = None
|
||||
|
@ -157,7 +157,7 @@ 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."""
|
||||
def __init__(self, tid: int, tusername: str):
|
||||
def __init__(self, tid, tusername):
|
||||
self.tid = tid # ID di Telegram
|
||||
self.tusername = tusername # Username di Telegram
|
||||
self.role = Role() # Di base, ogni giocatore è un ruolo indefinito
|
||||
|
@ -169,7 +169,7 @@ class Player:
|
|||
def __repr__(self):
|
||||
r = "< Player {username} >".format(username=self.tusername)
|
||||
|
||||
def message(self, bot, text: str):
|
||||
def message(self, bot, text):
|
||||
"""Manda un messaggio privato al giocatore."""
|
||||
bot.sendMessage(self.tid, text)
|
||||
|
||||
|
@ -180,7 +180,7 @@ class Player:
|
|||
|
||||
class Game:
|
||||
"""Classe di una partita, contenente parametri riguardanti stato della partita e informazioni sul gruppo di Telegram."""
|
||||
def __init__(self, groupid: int, adminid: int):
|
||||
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
|
||||
self.players = list() # Lista dei giocatori in partita
|
||||
|
@ -204,22 +204,22 @@ class Game:
|
|||
r = "< Game in group {groupid} with {nplayers} players in phase {phase} >".format(groupid=self.groupid, nplayers=len(self.players), phase=self.phase)
|
||||
return r
|
||||
|
||||
def message(self, bot, text: str):
|
||||
def message(self, bot, text):
|
||||
"""Manda un messaggio nel gruppo."""
|
||||
bot.sendMessage(self.groupid, text)
|
||||
|
||||
def adminmessage(self, bot, text: str):
|
||||
def adminmessage(self, bot, text):
|
||||
"""Manda un messaggio privato al creatore della partita."""
|
||||
bot.sendMessage(self.adminid, text)
|
||||
|
||||
def mifiamessage(self, bot, text: str):
|
||||
def mifiamessage(self, bot, text):
|
||||
"""Manda un messaggio privato a tutti i Mifiosi nella partita."""
|
||||
# Trova tutti i mifiosi nell'elenco dei giocatori
|
||||
for player in self.players:
|
||||
if isinstance(player.role, Mifioso):
|
||||
player.message(bot, text)
|
||||
|
||||
def findplayerbyid(self, tid: int) -> Player:
|
||||
def findplayerbyid(self, tid) -> Player:
|
||||
"""Trova il giocatore con un certo id."""
|
||||
for player in self.players:
|
||||
if player.tid == tid:
|
||||
|
@ -227,7 +227,7 @@ class Game:
|
|||
else:
|
||||
return None
|
||||
|
||||
def findplayerbyusername(self, tusername: str) -> Player:
|
||||
def findplayerbyusername(self, tusername) -> Player:
|
||||
"""Trova il giocatore con un certo username."""
|
||||
for player in self.players:
|
||||
if player.tusername.lower() == tusername.lower():
|
||||
|
@ -336,14 +336,14 @@ class Game:
|
|||
inprogress = list()
|
||||
|
||||
|
||||
def findgamebyid(gid: int) -> Game:
|
||||
def findgamebyid(gid) -> Game:
|
||||
"""Trova una partita con un certo id."""
|
||||
for game in inprogress:
|
||||
if game.groupid == gid:
|
||||
return game
|
||||
|
||||
|
||||
def findgamebyname(name: str) -> Game:
|
||||
def findgamebyname(name) -> Game:
|
||||
"""Trova una partita con un certo nome."""
|
||||
for game in inprogress:
|
||||
if game.name.lower() == name.lower():
|
||||
|
|
Loading…
Add table
Reference in a new issue