1
Fork 0
mirror of https://github.com/RYGhub/royal-mifia.git synced 2024-10-16 13:47:26 +00:00

Bugfix e miglioramenti vari.

This commit is contained in:
Steffo 2017-12-29 17:23:45 +01:00
parent e42ec14f74
commit f11f96376d
No known key found for this signature in database
GPG key ID: C27544372FBB445D
7 changed files with 32 additions and 17 deletions

27
main.py
View file

@ -44,17 +44,24 @@ class Player:
def __str__(self) -> str:
return "@{}".format(self.tusername)
def message(self, text: str):
def message(self, text: str, *args, **kwargs):
"""Manda un messaggio privato al giocatore."""
if not self.dummy:
self.game.bot.sendMessage(self.tid, text, parse_mode=ParseMode.MARKDOWN)
while True:
try:
self.game.bot.sendMessage(self.tid, text, *args, parse_mode=ParseMode.MARKDOWN, **kwargs)
except TimedOut:
print("Timed out, pausing for 5 seconds...")
time.sleep(5)
else:
break
def kill(self):
"""Uccidi il giocatore."""
self.role.ondeath()
self.alive = False
# Silenzia il giocatore
if self is not self.game.admin:
if self is not self.game.admin and not self.dummy:
try:
self.game.bot.restrictChatMember(self.game.groupid, self.tid, None, False, False, False, False)
except Unauthorized:
@ -110,9 +117,16 @@ class Game:
.format(name=self.name, groupid=self.groupid, nplayers=len(self.players), phase=self.phase)
return r
def message(self, text: str):
def message(self, text: str, *args, **kwargs):
"""Manda un messaggio nel gruppo."""
self.bot.sendMessage(self.groupid, text, parse_mode=ParseMode.MARKDOWN)
while True:
try:
self.bot.sendMessage(self.groupid, text, *args, parse_mode=ParseMode.MARKDOWN, **kwargs)
except TimedOut:
print("Timed out, pausing for 5 seconds...")
time.sleep(5)
else:
break
def adminmessage(self, text: str):
"""Manda un messaggio privato al creatore della partita."""
@ -880,7 +894,8 @@ def inlinekeyboard(bot: Bot, update):
def breakpoint_here(*args, **kwargs):
pass
if args[2] == "Timed out":
print("Si è buggato tutto. As usual.")
updater.dispatcher.add_handler(CommandHandler('ping', ping))

View file

@ -29,7 +29,7 @@ class Corrotto(Role):
return
# Utilizza il potere su quella persona
self.poweruses -= 1
self.player.message(s.detective_discovery.format(target=target.tusername, icon=target.role.icon, role=target.role.name, left=self.poweruses))
self.player.message(s.detective_discovery.format(target_score=100, target=target.tusername, icon=target.role.icon, role=target.role.name))
def onendday(self):
# Ripristina il potere

View file

@ -33,10 +33,10 @@ class Disastro(Role):
target_score = random.randrange(0, 25) + 1
score = random.randrange(0, 100) + 1
if score < target_score:
role = target.role.name
role = target.role
else:
role = self.player.game.getrandomrole().name
self.player.message(s.detective_discovery.format(target_score=100-target_score, target=target.tusername, icon=target.role.icon, role=role))
role = self.player.game.getrandomrole()
self.player.message(s.detective_discovery.format(target_score=100-target_score, target=target.tusername, icon=role.icon, role=role.name))
def onendday(self):
# Ripristina il potere

View file

@ -33,10 +33,10 @@ class Investigatore(Role):
target_score = random.randrange(0, 25) + 1
score = random.randrange(0, 100) + 1
if score > target_score:
role = target.role.name
role = target.role
else:
role = self.player.game.getrandomrole().name
self.player.message(s.detective_discovery.format(target_score=100-target_score, target=target.tusername, icon=target.role.icon, role=role))
role = self.player.game.getrandomrole()
self.player.message(s.detective_discovery.format(target_score=100-target_score, target=target.tusername, icon=role.icon, role=role.name))
def onendday(self):
# Ripristina il potere

View file

@ -20,7 +20,7 @@ class Mamma(Role):
self.player.message(s.mom_discovery.format(target=target.tusername, icon=target.role.icon, role=target.role.name))
def onendday(self):
if random.randrange(0, 10) > 7:
if random.randrange(0, 10) > 5:
# Scegli un bersaglio casuale che non sia il giocatore stesso
possibletargets = self.player.game.players.copy()
possibletargets.remove(self.player)

View file

@ -38,6 +38,6 @@ class Vigilante(Role):
# Resetta la protezione
if self.target is not None:
self.target.kill()
self.player.game.message()
self.player.game.message(s.vigilante_execution.format(target=self.target.tusername, icon=self.target.role.icon, role=self.target.role.name))
self.power_was_used = True
self.target = None

View file

@ -364,7 +364,7 @@ warning_bot_not_admin = "\U000026A0 Attenzione! Il bot non è amministratore in
error_username = "\U000026A0 Il nome utente specificato non esiste."
# Errore: usi del potere esauriti
error_no_uses = "\U000026A0 Non puoi più usare il tuo potere per oggi."
error_no_uses = "\U000026A0 Hai finito gli utilizzi del tuo potere."
# Errore: numero troppo basso di giocatori
error_not_enough_players = "\U000026A0 Non ci sono abbastanza giocatori per avviare la partita."
@ -438,7 +438,7 @@ fatal_bot_rate_limited = "\U0001F6D1 **Errore critico:** Il bot ha inviato tropp
if __debug__:
names_list = ["Dev"]
else:
names_list = ["Eleven"]
names_list = ["Tredici"]
# Scegli il preset
preset_choose = "*Seleziona un preset per la partita:*"