mirror of
https://github.com/RYGhub/royal-mifia.git
synced 2024-11-25 23:24:18 +00:00
Altri commenti
This commit is contained in:
parent
12266afdc7
commit
328c410cbd
1 changed files with 17 additions and 17 deletions
32
main.py
32
main.py
|
@ -243,11 +243,11 @@ class Derek(Role):
|
||||||
|
|
||||||
def power(self, bot, game, arg):
|
def power(self, bot, game, arg):
|
||||||
# Attiva / disattiva la morte alla fine del round
|
# Attiva / disattiva la morte alla fine del round
|
||||||
|
self.deathwish = not self.deathwish
|
||||||
if self.deathwish:
|
if self.deathwish:
|
||||||
self.deathwish = False
|
|
||||||
self.player.message(bot, s.derek_deathwish_unset)
|
self.player.message(bot, s.derek_deathwish_unset)
|
||||||
else:
|
else:
|
||||||
self.deathwish = True
|
|
||||||
self.player.message(bot, s.derek_deathwish_set)
|
self.player.message(bot, s.derek_deathwish_set)
|
||||||
|
|
||||||
def onendday(self, bot, game):
|
def onendday(self, bot, game):
|
||||||
|
@ -310,14 +310,13 @@ class Mamma(Role):
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def onstartgame(self, bot, game):
|
def onstartgame(self, bot, game):
|
||||||
while True:
|
# Scegli un bersaglio casuale che non sia il giocatore stesso
|
||||||
target = random.sample(game.players, 1)[0]
|
possibletargets = game.players.copy()
|
||||||
if target == self.player:
|
possibletargets.pop(self.player)
|
||||||
continue
|
target = random.sample(possibletargets, 1)[0]
|
||||||
self.player.message(bot, s.mom_discovery.format(target=target.tusername,
|
self.player.message(bot, s.mom_discovery.format(target=target.tusername,
|
||||||
icon=target.role.icon,
|
icon=target.role.icon,
|
||||||
role=target.role.name))
|
role=target.role.name))
|
||||||
break
|
|
||||||
|
|
||||||
|
|
||||||
class Stagista(Role):
|
class Stagista(Role):
|
||||||
|
@ -420,12 +419,12 @@ class Player:
|
||||||
self.tid = tid # ID di Telegram
|
self.tid = tid # ID di Telegram
|
||||||
self.tusername = tusername # Username di Telegram
|
self.tusername = tusername # Username di Telegram
|
||||||
self.role = Role(self) # Di base, ogni giocatore è un ruolo indefinito
|
self.role = Role(self) # Di base, ogni giocatore è un ruolo indefinito
|
||||||
self.alive = True
|
self.alive = True # Il giocatore è vivo?
|
||||||
self.votingfor = None # Diventa un player se ha votato
|
self.votingfor = None # Diventa un player se ha votato
|
||||||
self.votes = 0 # Voti che sta ricevendo questo giocatore. Aggiornato da updatevotes()
|
self.votes = 0 # Voti che sta ricevendo questo giocatore. Aggiornato da updatevotes()
|
||||||
self.protectedby = None # Protettore. Oggetto player che protegge questo giocatore dalla mifia.
|
self.protectedby = None # Protettore. Oggetto player che protegge questo giocatore dalla mifia. Se è None, la mifia può uccidere questo giocatore
|
||||||
self.mifiavotes = 0 # Voti che sta ricevendo questo giocatore dalla mifia. Aggiornato da updatemifiavotes()
|
self.mifiavotes = 0 # Voti che sta ricevendo questo giocatore dalla mifia. Aggiornato da updatemifiavotes()
|
||||||
self.dummy = dummy # E' un bot?
|
self.dummy = dummy # E' un bot? Usato solo per il debug (/debugjoin)
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
r = "<Player {username}>".format(username=self.tusername)
|
r = "<Player {username}>".format(username=self.tusername)
|
||||||
|
@ -524,7 +523,7 @@ class Game:
|
||||||
"""Assegna ruoli casuali a tutti i giocatori."""
|
"""Assegna ruoli casuali a tutti i giocatori."""
|
||||||
random.seed()
|
random.seed()
|
||||||
playersleft = self.players.copy()
|
playersleft = self.players.copy()
|
||||||
# Seleziona mifiosi
|
# Assegna i ruoli secondo i numeri all'interno di playersinrole
|
||||||
for currentrole in rolepriority:
|
for currentrole in rolepriority:
|
||||||
for player in random.sample(playersleft, self.roleconfig[currentrole.__name__]):
|
for player in random.sample(playersleft, self.roleconfig[currentrole.__name__]):
|
||||||
self.playersinrole[currentrole.__name__].append(player)
|
self.playersinrole[currentrole.__name__].append(player)
|
||||||
|
@ -618,7 +617,7 @@ class Game:
|
||||||
# Fai gli endday in un certo ordine.
|
# Fai gli endday in un certo ordine.
|
||||||
# Si potrebbe fare più velocemente, credo.
|
# Si potrebbe fare più velocemente, credo.
|
||||||
# Ma non sto ho voglia di ottimizzare ora.
|
# Ma non sto ho voglia di ottimizzare ora.
|
||||||
# Mifiosi
|
# Endday dei mifiosi se votingmifia è attivo
|
||||||
if self.votingmifia:
|
if self.votingmifia:
|
||||||
# Trova il più votato dai mifiosi e uccidilo
|
# Trova il più votato dai mifiosi e uccidilo
|
||||||
killlist = self.mostvotedmifia()
|
killlist = self.mostvotedmifia()
|
||||||
|
@ -652,6 +651,7 @@ class Game:
|
||||||
player.votingfor = None
|
player.votingfor = None
|
||||||
# Controlla se qualcuno ha vinto
|
# Controlla se qualcuno ha vinto
|
||||||
self.victoryconditions(bot)
|
self.victoryconditions(bot)
|
||||||
|
# Incrementa il giorno
|
||||||
self.day += 1
|
self.day += 1
|
||||||
|
|
||||||
def startpreset(self, bot):
|
def startpreset(self, bot):
|
||||||
|
@ -693,7 +693,7 @@ class Game:
|
||||||
def loadpreset(self, bot, preset):
|
def loadpreset(self, bot, preset):
|
||||||
"""Fine della fase di preset: carica il preset selezionato o passa a config"""
|
"""Fine della fase di preset: carica il preset selezionato o passa a config"""
|
||||||
if preset == "simple":
|
if preset == "simple":
|
||||||
# Preset semplice
|
# Preset semplice (solo Royal, Mifiosi e Investigatori)
|
||||||
self.roleconfig = {
|
self.roleconfig = {
|
||||||
"Mifioso": math.floor(len(self.players) / 8) + 1, # 1 Mifioso ogni 8 giocatori
|
"Mifioso": math.floor(len(self.players) / 8) + 1, # 1 Mifioso ogni 8 giocatori
|
||||||
"Investigatore": math.floor(len(self.players) / 12) + 1, # 1 Detective ogni 12 giocatori
|
"Investigatore": math.floor(len(self.players) / 12) + 1, # 1 Detective ogni 12 giocatori
|
||||||
|
@ -710,7 +710,7 @@ class Game:
|
||||||
self.missingmifia = False
|
self.missingmifia = False
|
||||||
self.endconfig(bot)
|
self.endconfig(bot)
|
||||||
elif preset == "classic":
|
elif preset == "classic":
|
||||||
# Preset classico
|
# Preset classico (solo Royal, Mifiosi, Investigatori, Angeli e Terroristi)
|
||||||
self.roleconfig = {
|
self.roleconfig = {
|
||||||
"Mifioso": math.floor(len(self.players) / 8) + 1, # 1 Mifioso ogni 8 giocatori
|
"Mifioso": math.floor(len(self.players) / 8) + 1, # 1 Mifioso ogni 8 giocatori
|
||||||
"Investigatore": math.floor(len(self.players) / 12) + 1, # 1 Detective ogni 12 giocatori
|
"Investigatore": math.floor(len(self.players) / 12) + 1, # 1 Detective ogni 12 giocatori
|
||||||
|
@ -727,9 +727,9 @@ class Game:
|
||||||
self.missingmifia = False
|
self.missingmifia = False
|
||||||
self.endconfig(bot)
|
self.endconfig(bot)
|
||||||
elif preset == "full":
|
elif preset == "full":
|
||||||
# Preset completo
|
# Preset completo (non ci sono Royal, ogni giocatore ha un ruolo)
|
||||||
self.roleconfig = {
|
self.roleconfig = {
|
||||||
# 1 di ogni ruolo
|
# 1 di ogni ruolo, ma ci devono essere almeno 8 giocatori per avviare la partita
|
||||||
"Mifioso": math.floor(len(self.players) / 9) + 1,
|
"Mifioso": math.floor(len(self.players) / 9) + 1,
|
||||||
"Investigatore": math.floor(len(self.players) / 10) + 1,
|
"Investigatore": math.floor(len(self.players) / 10) + 1,
|
||||||
"Angelo": math.floor(len(self.players) / 11) + 1,
|
"Angelo": math.floor(len(self.players) / 11) + 1,
|
||||||
|
|
Loading…
Reference in a new issue