mirror of
https://github.com/RYGhub/royal-mifia.git
synced 2025-03-13 20:15:04 +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_classic, callback_data="classic")
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
InlineKeyboardButton(s.preset_oneofall, callback_data="oneofall"),
|
InlineKeyboardButton(s.preset_oneofall, callback_data="oneofall")
|
||||||
InlineKeyboardButton(s.preset_advanced, callback_data="advanced")
|
|
||||||
]
|
]
|
||||||
])
|
])
|
||||||
# Manda la tastiera
|
# Manda la tastiera
|
||||||
|
@ -330,66 +329,6 @@ class Game:
|
||||||
self.votingmifia = True
|
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.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)
|
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":
|
elif preset == "oneofall":
|
||||||
self.roleconfig = {
|
self.roleconfig = {
|
||||||
"Mifioso": 1,
|
"Mifioso": 1,
|
||||||
|
|
|
@ -8,7 +8,6 @@ class Angelo(Role):
|
||||||
team = 'Good'
|
team = 'Good'
|
||||||
name = s.angel_name
|
name = s.angel_name
|
||||||
powerdesc = s.angel_power_description
|
powerdesc = s.angel_power_description
|
||||||
value = 70
|
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
super().__init__(player)
|
super().__init__(player)
|
||||||
|
|
|
@ -7,7 +7,6 @@ class Corrotto(Role):
|
||||||
team = 'Evil'
|
team = 'Evil'
|
||||||
name = s.corrupt_name
|
name = s.corrupt_name
|
||||||
powerdesc = s.corrupt_power_description
|
powerdesc = s.corrupt_power_description
|
||||||
value = -75
|
|
||||||
refillpoweruses = 1
|
refillpoweruses = 1
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
|
|
|
@ -7,7 +7,6 @@ class Derek(Role):
|
||||||
team = "Good"
|
team = "Good"
|
||||||
name = s.derek_name
|
name = s.derek_name
|
||||||
powerdesc = s.derek_power_description
|
powerdesc = s.derek_power_description
|
||||||
value = 0
|
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
super().__init__(player)
|
super().__init__(player)
|
||||||
|
|
|
@ -8,7 +8,6 @@ class Disastro(Role):
|
||||||
team = 'Good'
|
team = 'Good'
|
||||||
name = s.detective_name
|
name = s.detective_name
|
||||||
powerdesc = s.detective_power_description
|
powerdesc = s.detective_power_description
|
||||||
value = -5
|
|
||||||
refillpoweruses = 1
|
refillpoweruses = 1
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
|
|
|
@ -7,7 +7,6 @@ class Investigatore(Role):
|
||||||
team = 'Good'
|
team = 'Good'
|
||||||
name = s.detective_name
|
name = s.detective_name
|
||||||
powerdesc = s.detective_power_description
|
powerdesc = s.detective_power_description
|
||||||
value = 85
|
|
||||||
refillpoweruses = 1
|
refillpoweruses = 1
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
|
|
|
@ -8,7 +8,6 @@ class Mamma(Role):
|
||||||
team = 'Good'
|
team = 'Good'
|
||||||
name = s.mom_name
|
name = s.mom_name
|
||||||
powerdesc = s.mom_power_description
|
powerdesc = s.mom_power_description
|
||||||
value = 40
|
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return "<Role: Mamma>"
|
return "<Role: Mamma>"
|
||||||
|
|
|
@ -8,7 +8,6 @@ class Mifioso(Role):
|
||||||
team = 'Evil'
|
team = 'Evil'
|
||||||
name = s.mifia_name
|
name = s.mifia_name
|
||||||
powerdesc = s.mifia_power_description
|
powerdesc = s.mifia_power_description
|
||||||
value = -100
|
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
super().__init__(player)
|
super().__init__(player)
|
||||||
|
|
|
@ -5,7 +5,6 @@ class Role:
|
||||||
team = 'None' # Squadra: 'None', 'Good', 'Evil', 'Chaos'; conta per le condizioni di vittoria
|
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
|
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.
|
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):
|
def __init__(self, player):
|
||||||
self.player = player
|
self.player = player
|
||||||
|
|
|
@ -6,7 +6,6 @@ class Royal(Role):
|
||||||
icon = s.royal_icon
|
icon = s.royal_icon
|
||||||
team = 'Good'
|
team = 'Good'
|
||||||
name = s.royal_name
|
name = s.royal_name
|
||||||
value = 0
|
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
super().__init__(player)
|
super().__init__(player)
|
||||||
|
|
|
@ -9,7 +9,6 @@ class Servitore(Role):
|
||||||
team = 'Chaos'
|
team = 'Chaos'
|
||||||
name = s.chaos_servant_name
|
name = s.chaos_servant_name
|
||||||
powerdesc = s.chaos_servant_power_description
|
powerdesc = s.chaos_servant_power_description
|
||||||
value = 0
|
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return "<Role: Servitore del Caos>"
|
return "<Role: Servitore del Caos>"
|
||||||
|
|
|
@ -9,7 +9,6 @@ class SignoreDelCaos(Role):
|
||||||
team = 'Chaos'
|
team = 'Chaos'
|
||||||
name = s.chaos_lord_name
|
name = s.chaos_lord_name
|
||||||
powerdesc = s.chaos_lord_power_description
|
powerdesc = s.chaos_lord_power_description
|
||||||
value = 0
|
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
super().__init__(player)
|
super().__init__(player)
|
||||||
|
|
|
@ -10,7 +10,6 @@ class Stagista(Role):
|
||||||
team = 'Good'
|
team = 'Good'
|
||||||
name = s.intern_name
|
name = s.intern_name
|
||||||
powerdesc = s.intern_power_description
|
powerdesc = s.intern_power_description
|
||||||
value = 30
|
|
||||||
|
|
||||||
def __init__(self, player):
|
def __init__(self, player):
|
||||||
super().__init__(player)
|
super().__init__(player)
|
||||||
|
|
|
@ -8,7 +8,6 @@ class Terrorista(Role):
|
||||||
team = "Evil"
|
team = "Evil"
|
||||||
name = s.terrorist_name
|
name = s.terrorist_name
|
||||||
powerdesc = s.terrorist_power_description
|
powerdesc = s.terrorist_power_description
|
||||||
value = -75
|
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return "<Role: Terrorista>"
|
return "<Role: Terrorista>"
|
||||||
|
|
Loading…
Add table
Reference in a new issue