1
Fork 0
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:
Steffo 2017-07-18 00:50:31 +02:00
parent fec4e6bd9a
commit 0003cac1ec
14 changed files with 1 additions and 75 deletions

63
main.py
View file

@ -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,

View file

@ -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)

View file

@ -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):

View file

@ -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)

View file

@ -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):

View file

@ -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):

View file

@ -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>"

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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>"

View file

@ -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)

View file

@ -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)

View file

@ -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>"