mirror of
https://github.com/RYGhub/royal-mifia.git
synced 2024-11-25 15:14:18 +00:00
Dovrei aver finito. A parte le VC
This commit is contained in:
parent
8e885fc91d
commit
8abda54075
1 changed files with 43 additions and 9 deletions
50
main.py
50
main.py
|
@ -177,15 +177,19 @@ class Game:
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
player.votes = 0
|
player.votes = 0
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
|
if player.votingfor is not None:
|
||||||
player.votingfor.votes += 1
|
player.votingfor.votes += 1
|
||||||
|
|
||||||
def mostvotedplayer(self) -> Player:
|
def mostvotedplayer(self) -> Player:
|
||||||
mostvoted = None
|
mostvoted = None
|
||||||
self.updatevotes()
|
self.updatevotes()
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
if (mostvoted is None and player.votes >= 1) or (player.votes > mostvoted.votes):
|
# Temo di aver fatto un disastro. Ma finchè va...
|
||||||
|
if mostvoted is None and player.votes == 0:
|
||||||
|
pass
|
||||||
|
elif (mostvoted is None and player.votes >= 1) or (player.votes > mostvoted.votes):
|
||||||
mostvoted = player
|
mostvoted = player
|
||||||
elif player.votes == mostvoted.votes:
|
elif mostvoted is not None and player.votes == mostvoted.votes:
|
||||||
# Non sono sicuro che questo algoritmo sia effettivamente il più equo. Ma vabbè, non succederà mai
|
# Non sono sicuro che questo algoritmo sia effettivamente il più equo. Ma vabbè, non succederà mai
|
||||||
import random
|
import random
|
||||||
mostvoted = random.choice([player, mostvoted])
|
mostvoted = random.choice([player, mostvoted])
|
||||||
|
@ -200,6 +204,10 @@ class Game:
|
||||||
self.message(bot, "{0} era il più votato ed è stato ucciso dai Royal.\n"
|
self.message(bot, "{0} era il più votato ed è stato ucciso dai Royal.\n"
|
||||||
"Era un {1} {2}.".format(lynched.tusername, lynched.role.icon, lynched.role.name))
|
"Era un {1} {2}.".format(lynched.tusername, lynched.role.icon, lynched.role.name))
|
||||||
lynched.kill()
|
lynched.kill()
|
||||||
|
else:
|
||||||
|
self.message(bot, "La Royal Games non è giunta a una decisione in questo giorno e non ha ucciso nessuno.")
|
||||||
|
for player in self.players:
|
||||||
|
player.votingfor = None
|
||||||
|
|
||||||
# Partite in corso
|
# Partite in corso
|
||||||
inprogress = list()
|
inprogress = list()
|
||||||
|
@ -239,6 +247,29 @@ def join(bot, update):
|
||||||
bot.sendMessage(update.message.chat['id'], "Ti sei già unito alla partita: " + repr(p))
|
bot.sendMessage(update.message.chat['id'], "Ti sei già unito alla partita: " + repr(p))
|
||||||
|
|
||||||
|
|
||||||
|
def debug(bot, update):
|
||||||
|
game = findgamebyid(update.message.chat['id'])
|
||||||
|
if game is None:
|
||||||
|
bot.sendMessage(update.message.chat['id'], "In questo gruppo non ci sono partite in corso.")
|
||||||
|
else:
|
||||||
|
if game.adminid == update.message.from_user['id']:
|
||||||
|
text = "Gruppo: {0}\n" \
|
||||||
|
"Creatore: {1}\n" \
|
||||||
|
"Stato: {2}\n" \
|
||||||
|
"Giocatori partecipanti:\n".format(game.groupid, game.adminid, game.phase)
|
||||||
|
game.updatevotes()
|
||||||
|
# Aggiungi l'elenco dei giocatori
|
||||||
|
for player in game.players:
|
||||||
|
if not player.alive:
|
||||||
|
text += "\U0001F480 {0}\n".format(player.tusername)
|
||||||
|
elif player.votingfor is not None:
|
||||||
|
text += "{0} {1} ({2}) vota per {3}\n"\
|
||||||
|
.format(player.role.icon, player.tusername, player.votes, player.votingfor.tusername)
|
||||||
|
else:
|
||||||
|
text += "{0} {1} ({2})\n".format(player.role.icon, player.tusername, player.votes)
|
||||||
|
bot.sendMessage(update.message.from_user['id'], text)
|
||||||
|
|
||||||
|
|
||||||
def status(bot, update):
|
def status(bot, update):
|
||||||
game = findgamebyid(update.message.chat['id'])
|
game = findgamebyid(update.message.chat['id'])
|
||||||
if game is None:
|
if game is None:
|
||||||
|
@ -248,15 +279,17 @@ def status(bot, update):
|
||||||
"Creatore: {1}\n" \
|
"Creatore: {1}\n" \
|
||||||
"Stato: {2}\n" \
|
"Stato: {2}\n" \
|
||||||
"Giocatori partecipanti:\n".format(game.groupid, game.adminid, game.phase)
|
"Giocatori partecipanti:\n".format(game.groupid, game.adminid, game.phase)
|
||||||
|
game.updatevotes()
|
||||||
# Aggiungi l'elenco dei giocatori
|
# Aggiungi l'elenco dei giocatori
|
||||||
for player in game.players:
|
for player in game.players:
|
||||||
if not player.alive:
|
if not player.alive:
|
||||||
text += "\U0001F480 {0}".format(player.tusername)
|
text += "\U0001F480 {0}\n".format(player.tusername)
|
||||||
elif player.votingfor is not None:
|
elif player.votingfor is not None:
|
||||||
text += "{0} {1} ({2})\n".format(player.role.icon, player.tusername, player.votingfor.tusername)
|
text += "\U0001F610 {1} ({2}) vota per {3}\n"\
|
||||||
|
.format(player.role.icon, player.tusername, player.votes, player.votingfor.tusername)
|
||||||
else:
|
else:
|
||||||
text += "{0} {1}\n".format(player.role.icon, player.tusername)
|
text += "\U0001F610 {1} ({2})\n".format(player.role.icon, player.tusername, player.votes)
|
||||||
bot.sendMessage(update.message.chat['id'], text)
|
bot.sendMessage(update.message.from_user['id'], text)
|
||||||
|
|
||||||
|
|
||||||
def endjoin(bot, update):
|
def endjoin(bot, update):
|
||||||
|
@ -264,7 +297,7 @@ def endjoin(bot, update):
|
||||||
if game is not None and game.phase is 'Join' and update.message.from_user['id'] == game.adminid:
|
if game is not None and game.phase is 'Join' and update.message.from_user['id'] == game.adminid:
|
||||||
game.phase = 'Voting'
|
game.phase = 'Voting'
|
||||||
bot.sendMessage(update.message.chat['id'], "La fase di join è terminata.")
|
bot.sendMessage(update.message.chat['id'], "La fase di join è terminata.")
|
||||||
game.assignroles(0, 1, 0)
|
game.assignroles(1, 1, 0)
|
||||||
bot.sendMessage(update.message.chat['id'], "I ruoli sono stati assegnati.")
|
bot.sendMessage(update.message.chat['id'], "I ruoli sono stati assegnati.")
|
||||||
|
|
||||||
|
|
||||||
|
@ -310,10 +343,11 @@ def power(bot, update):
|
||||||
updater.dispatcher.addTelegramCommandHandler('ping', ping)
|
updater.dispatcher.addTelegramCommandHandler('ping', ping)
|
||||||
updater.dispatcher.addTelegramCommandHandler('newgame', newgame)
|
updater.dispatcher.addTelegramCommandHandler('newgame', newgame)
|
||||||
updater.dispatcher.addTelegramCommandHandler('join', join)
|
updater.dispatcher.addTelegramCommandHandler('join', join)
|
||||||
updater.dispatcher.addTelegramCommandHandler('status', status)
|
updater.dispatcher.addTelegramCommandHandler('debug', debug)
|
||||||
updater.dispatcher.addTelegramCommandHandler('endjoin', endjoin)
|
updater.dispatcher.addTelegramCommandHandler('endjoin', endjoin)
|
||||||
updater.dispatcher.addTelegramCommandHandler('vote', vote)
|
updater.dispatcher.addTelegramCommandHandler('vote', vote)
|
||||||
updater.dispatcher.addTelegramCommandHandler('endday', endday)
|
updater.dispatcher.addTelegramCommandHandler('endday', endday)
|
||||||
updater.dispatcher.addTelegramCommandHandler('power', power)
|
updater.dispatcher.addTelegramCommandHandler('power', power)
|
||||||
|
updater.dispatcher.addTelegramCommandHandler('status', status)
|
||||||
updater.start_polling()
|
updater.start_polling()
|
||||||
updater.idle()
|
updater.idle()
|
||||||
|
|
Loading…
Reference in a new issue