mirror of
https://github.com/RYGhub/royal-mifia.git
synced 2024-11-22 05:44:19 +00:00
Rimosso il preset Avanzato.
Sì, ancora.
This commit is contained in:
parent
fec4e6bd9a
commit
0003cac1ec
14 changed files with 1 additions and 75 deletions
63
main.py
63
main.py
|
@ -283,8 +283,7 @@ class Game:
|
|||
InlineKeyboardButton(s.preset_classic, callback_data="classic")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(s.preset_oneofall, callback_data="oneofall"),
|
||||
InlineKeyboardButton(s.preset_advanced, callback_data="advanced")
|
||||
InlineKeyboardButton(s.preset_oneofall, callback_data="oneofall")
|
||||
]
|
||||
])
|
||||
# Manda la tastiera
|
||||
|
@ -330,66 +329,6 @@ class Game:
|
|||
self.votingmifia = True
|
||||
self.message(bot, s.preset_classic_selected.format(mifioso=self.roleconfig["Mifioso"], investigatore=self.roleconfig["Investigatore"], angelo=self.roleconfig["Angelo"], royal=len(self.players) - self.roleconfig["Mifioso"] - self.roleconfig["Investigatore"] - self.roleconfig["Angelo"], royalmenouno=len(self.players) - self.roleconfig["Mifioso"] - self.roleconfig["Investigatore"] - self.roleconfig["Angelo"] - 1))
|
||||
self.endconfig(bot)
|
||||
elif preset == "advanced":
|
||||
# Preset avanzato: genera i ruoli in modo da rendere la partita divertente
|
||||
self.roleconfig = {
|
||||
"Mifioso": 0,
|
||||
"Investigatore": 0,
|
||||
"Corrotto": 0,
|
||||
"Angelo": 0,
|
||||
"Terrorista": 0,
|
||||
"Derek": 0,
|
||||
"Disastro": 0,
|
||||
"Mamma": 0,
|
||||
"Stagista": 0,
|
||||
"SignoreDelCaos": 0,
|
||||
"Servitore": 0
|
||||
}
|
||||
unassignedplayers = len(self.players)
|
||||
balance = 0
|
||||
# Scegli casualmente il numero di mifiosi: più ce ne sono più ruoli ci saranno in partita!
|
||||
maxmifia = 0
|
||||
players = len(self.players)
|
||||
while True:
|
||||
players = math.floor(players / (maxmifia + 1))
|
||||
if players <= maxmifia:
|
||||
break
|
||||
maxmifia += 1 # Sono sicuro che questo si potrebbe fare meglio
|
||||
self.roleconfig["Mifioso"] = random.randint(math.ceil(maxmifia / 2), maxmifia)
|
||||
unassignedplayers -= self.roleconfig["Mifioso"]
|
||||
balance += Mifioso.value * self.roleconfig["Mifioso"]
|
||||
# Ruoli positivi
|
||||
positiveroles = [Angelo, Investigatore, Mamma, Stagista]
|
||||
# Trova tutti i ruoli negativi
|
||||
negativeroles = [Corrotto, Disastro, Terrorista, Derek]
|
||||
# Aggiungi ruoli positivi casuali finchè la partita non viene bilanciata
|
||||
while balance < 0 and unassignedplayers > 0:
|
||||
selectedrole = random.sample(positiveroles, 1)[0]
|
||||
self.roleconfig[selectedrole.__name__] += 1
|
||||
balance += selectedrole.value
|
||||
unassignedplayers -= 1
|
||||
# Se la partita è sfavorita verso i Royal, aggiungi qualche ruolo negativo
|
||||
while balance > 0 and unassignedplayers > 0:
|
||||
selectedrole = random.sample(negativeroles, 1)[0]
|
||||
self.roleconfig[selectedrole.__name__] += 1
|
||||
balance += selectedrole.value
|
||||
unassignedplayers -= 1
|
||||
# Non ci sono SignoreDelCaos e Servitore per motivi ovvi
|
||||
self.roleconfig["SignoreDelCaos"] = 0
|
||||
self.roleconfig["Servitore"] = 0
|
||||
# Altri parametri
|
||||
self.votingmifia = False
|
||||
if balance < -30:
|
||||
self.message(bot, s.preset_advanced_selected + s.balance_mifia_big)
|
||||
elif balance < -5:
|
||||
self.message(bot, s.preset_advanced_selected + s.balance_mifia_small)
|
||||
elif balance < 5:
|
||||
self.message(bot, s.preset_advanced_selected + s.balance_perfect)
|
||||
elif balance < 30:
|
||||
self.message(bot, s.preset_advanced_selected + s.balance_royal_small)
|
||||
else:
|
||||
self.message(bot, s.preset_advanced_selected + s.balance_royal_big)
|
||||
self.endconfig(bot)
|
||||
elif preset == "oneofall":
|
||||
self.roleconfig = {
|
||||
"Mifioso": 1,
|
||||
|
|
|
@ -8,7 +8,6 @@ class Angelo(Role):
|
|||
team = 'Good'
|
||||
name = s.angel_name
|
||||
powerdesc = s.angel_power_description
|
||||
value = 70
|
||||
|
||||
def __init__(self, player):
|
||||
super().__init__(player)
|
||||
|
|
|
@ -7,7 +7,6 @@ class Corrotto(Role):
|
|||
team = 'Evil'
|
||||
name = s.corrupt_name
|
||||
powerdesc = s.corrupt_power_description
|
||||
value = -75
|
||||
refillpoweruses = 1
|
||||
|
||||
def __init__(self, player):
|
||||
|
|
|
@ -7,7 +7,6 @@ class Derek(Role):
|
|||
team = "Good"
|
||||
name = s.derek_name
|
||||
powerdesc = s.derek_power_description
|
||||
value = 0
|
||||
|
||||
def __init__(self, player):
|
||||
super().__init__(player)
|
||||
|
|
|
@ -8,7 +8,6 @@ class Disastro(Role):
|
|||
team = 'Good'
|
||||
name = s.detective_name
|
||||
powerdesc = s.detective_power_description
|
||||
value = -5
|
||||
refillpoweruses = 1
|
||||
|
||||
def __init__(self, player):
|
||||
|
|
|
@ -7,7 +7,6 @@ class Investigatore(Role):
|
|||
team = 'Good'
|
||||
name = s.detective_name
|
||||
powerdesc = s.detective_power_description
|
||||
value = 85
|
||||
refillpoweruses = 1
|
||||
|
||||
def __init__(self, player):
|
||||
|
|
|
@ -8,7 +8,6 @@ class Mamma(Role):
|
|||
team = 'Good'
|
||||
name = s.mom_name
|
||||
powerdesc = s.mom_power_description
|
||||
value = 40
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return "<Role: Mamma>"
|
||||
|
|
|
@ -8,7 +8,6 @@ class Mifioso(Role):
|
|||
team = 'Evil'
|
||||
name = s.mifia_name
|
||||
powerdesc = s.mifia_power_description
|
||||
value = -100
|
||||
|
||||
def __init__(self, player):
|
||||
super().__init__(player)
|
||||
|
|
|
@ -5,7 +5,6 @@ class Role:
|
|||
team = 'None' # Squadra: 'None', 'Good', 'Evil', 'Chaos'; conta per le condizioni di vittoria
|
||||
name = "UNDEFINED" # Nome del ruolo, viene visualizzato dall'investigatore e durante l'assegnazione
|
||||
powerdesc = None # Ha un potere? Se sì, queste sono le info su come usarlo in seconda persona.
|
||||
value = 0 # Valore del ruolo durante l'assegnazione: positivo per Good e negativo per Evil
|
||||
|
||||
def __init__(self, player):
|
||||
self.player = player
|
||||
|
|
|
@ -6,7 +6,6 @@ class Royal(Role):
|
|||
icon = s.royal_icon
|
||||
team = 'Good'
|
||||
name = s.royal_name
|
||||
value = 0
|
||||
|
||||
def __init__(self, player):
|
||||
super().__init__(player)
|
||||
|
|
|
@ -9,7 +9,6 @@ class Servitore(Role):
|
|||
team = 'Chaos'
|
||||
name = s.chaos_servant_name
|
||||
powerdesc = s.chaos_servant_power_description
|
||||
value = 0
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return "<Role: Servitore del Caos>"
|
||||
|
|
|
@ -9,7 +9,6 @@ class SignoreDelCaos(Role):
|
|||
team = 'Chaos'
|
||||
name = s.chaos_lord_name
|
||||
powerdesc = s.chaos_lord_power_description
|
||||
value = 0
|
||||
|
||||
def __init__(self, player):
|
||||
super().__init__(player)
|
||||
|
|
|
@ -10,7 +10,6 @@ class Stagista(Role):
|
|||
team = 'Good'
|
||||
name = s.intern_name
|
||||
powerdesc = s.intern_power_description
|
||||
value = 30
|
||||
|
||||
def __init__(self, player):
|
||||
super().__init__(player)
|
||||
|
|
|
@ -8,7 +8,6 @@ class Terrorista(Role):
|
|||
team = "Evil"
|
||||
name = s.terrorist_name
|
||||
powerdesc = s.terrorist_power_description
|
||||
value = -75
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return "<Role: Terrorista>"
|
||||
|
|
Loading…
Reference in a new issue