mirror of
https://github.com/RYGhub/royal-mifia.git
synced 2024-11-25 15:14:18 +00:00
troppo
This commit is contained in:
parent
227040d126
commit
dc12d70f4d
7 changed files with 62 additions and 30 deletions
47
main.py
47
main.py
|
@ -45,11 +45,7 @@ class Player:
|
|||
def message(self, bot, text):
|
||||
"""Manda un messaggio privato al giocatore."""
|
||||
if not self.dummy:
|
||||
try:
|
||||
bot.sendMessage(self.tid, text, parse_mode=ParseMode.MARKDOWN)
|
||||
except Unauthorized:
|
||||
print("Unauthorized to message {}".format(self))
|
||||
|
||||
bot.sendMessage(self.tid, text, parse_mode=ParseMode.MARKDOWN)
|
||||
|
||||
def kill(self, bot, game):
|
||||
"""Uccidi il giocatore."""
|
||||
|
@ -132,7 +128,7 @@ class Game:
|
|||
return None
|
||||
|
||||
def assignroles(self, bot):
|
||||
"""Assegna ruoli casuali a tutti i giocatori."""
|
||||
"""Assegna i ruoli specificati ib playersinrole a tutti i giocatori."""
|
||||
random.seed()
|
||||
playersleft = self.players.copy()
|
||||
# Assegna i ruoli secondo i numeri all'interno di playersinrole
|
||||
|
@ -283,6 +279,8 @@ class Game:
|
|||
InlineKeyboardButton(s.preset_advanced, callback_data="advanced")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(s.preset_oneofall, callback_data="oneofall"),
|
||||
|
||||
InlineKeyboardButton(s.preset_custom, callback_data="custom")
|
||||
]
|
||||
])
|
||||
|
@ -381,8 +379,35 @@ class Game:
|
|||
self.votingmifia = False
|
||||
self.missingmifia = False
|
||||
self.message(bot, s.preset_advanced_selected)
|
||||
if __debug__:
|
||||
self.message(bot, "Punteggio di bilanciamento: {}".format(balance))
|
||||
self.message(bot, "Punteggio di bilanciamento: {}".format(balance))
|
||||
self.endconfig(bot)
|
||||
elif preset == "oneofall":
|
||||
self.roleconfig = {
|
||||
"Mifioso": 1,
|
||||
"Investigatore": 1,
|
||||
"Corrotto": 1,
|
||||
"Angelo": 1,
|
||||
"Terrorista": 1,
|
||||
"Derek": 1,
|
||||
"Disastro": 1,
|
||||
"Mamma": 1,
|
||||
"Stagista": 1,
|
||||
"SignoreDelCaos": 0,
|
||||
"Servitore": 0
|
||||
}
|
||||
unassignedplayers = len(self.players) - 9
|
||||
availableroles = list()
|
||||
while unassignedplayers > 0:
|
||||
if len(availableroles) == 0:
|
||||
availableroles = rolepriority.copy()
|
||||
availableroles.remove(SignoreDelCaos)
|
||||
availableroles.remove(Servitore)
|
||||
random.shuffle(availableroles)
|
||||
self.roleconfig[availableroles.pop().__name__] += 1
|
||||
unassignedplayers -= 1
|
||||
self.votingmifia = False
|
||||
self.missingmifia = False
|
||||
self.message(bot, s.preset_oneofall_selected)
|
||||
self.endconfig(bot)
|
||||
elif preset == "custom":
|
||||
# Preset personalizzabile
|
||||
|
@ -530,7 +555,7 @@ class Game:
|
|||
for role in self.playersinrole:
|
||||
if len(role) > 0:
|
||||
availableroles.append(role)
|
||||
return locals()[random.sample(availableroles, 1)[0]]
|
||||
return globals()[random.sample(availableroles, 1)[0]]
|
||||
|
||||
|
||||
|
||||
|
@ -970,7 +995,7 @@ def inlinekeyboard(bot, update):
|
|||
bot.answerCallbackQuery(callback_query_id=update.callback_query.id, text=s.error_not_admin, show_alert=True)
|
||||
return
|
||||
game.loadpreset(bot, update.callback_query.data)
|
||||
bot.answerCallbackQuery(callback_query_id=update.callback_query.id, text=s.preset_selected.format(selected=update.callback_query.data), show_alert=True)
|
||||
bot.answerCallbackQuery(callback_query_id=update.callback_query.id, text=s.preset_selected.format(selected=update.callback_query.data))
|
||||
elif game.phase is 'Voting':
|
||||
# Trova il giocatore
|
||||
player = game.findplayerbyid(update.callback_query.from_user.id)
|
||||
|
@ -984,7 +1009,7 @@ def inlinekeyboard(bot, update):
|
|||
target = game.findplayerbyusername(update.callback_query.data)
|
||||
player.votingfor = target
|
||||
game.message(bot, s.vote.format(voting=player.tusername, voted=target.tusername))
|
||||
bot.answerCallbackQuery(callback_query_id=update.callback_query.id, text=s.vote_fp.format(voted=target.tusername), show_alert=True)
|
||||
bot.answerCallbackQuery(callback_query_id=update.callback_query.id, text=s.vote_fp.format(voted=target.tusername))
|
||||
|
||||
|
||||
updater.dispatcher.add_handler(CommandHandler('ping', ping))
|
||||
|
|
|
@ -7,7 +7,7 @@ class Corrotto(Role):
|
|||
team = 'Evil'
|
||||
name = s.corrupt_name
|
||||
powerdesc = s.corrupt_power_description
|
||||
value = -90
|
||||
value = -75
|
||||
refillpoweruses = 1
|
||||
|
||||
def __init__(self, player):
|
||||
|
|
|
@ -8,7 +8,7 @@ class Disastro(Role):
|
|||
team = 'Good'
|
||||
name = s.detective_name
|
||||
powerdesc = s.detective_power_description
|
||||
value = 0
|
||||
value = -25
|
||||
refillpoweruses = 1
|
||||
|
||||
def __init__(self, player):
|
||||
|
@ -25,6 +25,9 @@ class Disastro(Role):
|
|||
if target is not None:
|
||||
self.poweruses -= 1
|
||||
randomrole = game.getrandomrole()
|
||||
while isinstance(target.role, randomrole):
|
||||
# TODO: se ci fossero solo disastri in una partits cosa succederebbe?
|
||||
randomrole = game.getrandomrole()
|
||||
self.player.message(bot, s.detective_discovery.format(target=target.tusername,
|
||||
icon=randomrole.icon,
|
||||
role=randomrole.name,
|
||||
|
|
|
@ -5,7 +5,7 @@ import strings as s
|
|||
class Servitore(Role):
|
||||
"""Il servitore del Caos è il sottoposto al Signore del Caos.
|
||||
Se non ci sono Signori del Caos in partita diventa Signore del Caos."""
|
||||
icon = s.derek_icon
|
||||
icon = s.chaos_servant_icon
|
||||
team = 'Chaos'
|
||||
name = s.chaos_servant_name
|
||||
powerdesc = s.chaos_servant_power_description
|
||||
|
|
|
@ -8,7 +8,7 @@ class Terrorista(Role):
|
|||
team = "Evil"
|
||||
name = s.terrorist_name
|
||||
powerdesc = s.terrorist_power_description
|
||||
value = -50
|
||||
value = -75
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return "<Role: Terrorista>"
|
||||
|
|
26
strings.py
26
strings.py
|
@ -107,10 +107,10 @@ derek_deathwish_unset = "*Vivrai* per morire un altro giorno."
|
|||
derek_deathwish_successful = "SPOILER: alla fine di questa giornata *\U0001F635 Derek* (@{name}) muore schiacciato da un container.\n"
|
||||
|
||||
# Disastro: icona
|
||||
disaster_icon = "\U0001F913"
|
||||
disaster_icon = "\U0001F46E"
|
||||
|
||||
# Disastro: nome ruolo
|
||||
disaster_name = "Disastro"
|
||||
disaster_name = "Carabiniere"
|
||||
|
||||
# Mamma: icona
|
||||
mom_icon = "\U0001F917"
|
||||
|
@ -139,7 +139,7 @@ intern_power_description = "In qualsiasi momento della partita puoi scegliere un
|
|||
"`/power {gamename} nomeutentedatoredilavoro`"
|
||||
|
||||
# Stagista: inizia lo stage
|
||||
intern_started_internship = "Stai andando in stage da @{master}."
|
||||
intern_started_internship = "Andrai in stage da @{master}."
|
||||
|
||||
# Stagista: cambiato ruolo
|
||||
intern_changed_role = "Lo stagista ha finito il tirocinio ed ha imparato i segreti del mestiere di *{icon} {role}*."
|
||||
|
@ -189,6 +189,9 @@ chaos_lord_failed = "Il Caos è nell'aria...\n" \
|
|||
# Servitore del Caos: nome ruolo
|
||||
chaos_servant_name = "Servitore del Caos"
|
||||
|
||||
# Servitore del Caos: icona
|
||||
chaos_servant_icon = "\U0001F468\u200d\U0001F3A4"
|
||||
|
||||
# Servitore del Caos: descrizione potere
|
||||
chaos_servant_power_description = "Il Signore del Caos ti cederà i suoi poteri quando sarà morto.\n" \
|
||||
"Facendo parte della fazione del Caos, hai automaticamente _vinto la partita_!"
|
||||
|
@ -373,14 +376,7 @@ error_missing_parameters = "\U000026A0 Mancano uno o più parametri.\n" \
|
|||
"Controlla la sintassi del comando e riprova."
|
||||
|
||||
# Lista dei possibili nomi di una partita
|
||||
names_list = ["Caos",
|
||||
"Vuoto",
|
||||
"Nulla",
|
||||
"Buconero",
|
||||
"Fine",
|
||||
"Supernova",
|
||||
"Centrogalattico",
|
||||
"Madre"]
|
||||
names_list = ["Mela", "Pera", "Banana", "Pesca", "Kiwi"]
|
||||
|
||||
# Lista dei passi di configurazione da eseguire
|
||||
config_list = ["Quanti *Mifiosi* devono essere nella partita all'inizio?",
|
||||
|
@ -435,6 +431,14 @@ preset_advanced_selected = "Selezionato il preset *Avanzato*.\n" \
|
|||
"I ruoli in questa partita sono casuali!\n" \
|
||||
"Buona fortuna a scoprirli!"
|
||||
|
||||
# Preset con uno di tutti
|
||||
preset_oneofall = "Round Robin"
|
||||
|
||||
# Preset con uno di tutti selezionato
|
||||
preset_oneofall_selected = "Selezionato il preset *Round Robin*.\n" \
|
||||
"In questa partita saranno presenti lo stesso numero di tutti i ruoli.\n" \
|
||||
"Se sono presenti giocatori in eccesso, verrà assegnato loro un ruolo casuale."
|
||||
|
||||
# Personalizza
|
||||
preset_custom = "Personalizzato"
|
||||
|
||||
|
|
Loading…
Reference in a new issue