mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
Cose
This commit is contained in:
parent
12b1227d6e
commit
fdfb8b57ca
1 changed files with 46 additions and 7 deletions
53
mifia.py
53
mifia.py
|
@ -2,10 +2,11 @@
|
||||||
import telegram
|
import telegram
|
||||||
import pickle
|
import pickle
|
||||||
|
|
||||||
|
|
||||||
class Player:
|
class Player:
|
||||||
telegramid = int()
|
telegramid = int()
|
||||||
username = str()
|
username = str()
|
||||||
role = 0 # 0 normale | 1 rryg | 2 resistenza
|
role = 0 # 0 normale | 1 rryg | 2 resistenza
|
||||||
alive = True
|
alive = True
|
||||||
votedfor = str()
|
votedfor = str()
|
||||||
special = False
|
special = False
|
||||||
|
@ -42,7 +43,7 @@ class Game:
|
||||||
if player.role == 1:
|
if player.role == 1:
|
||||||
telegram.sendmessage(text, player.telegramid)
|
telegram.sendmessage(text, player.telegramid)
|
||||||
|
|
||||||
def status(self):
|
def status(self) -> str:
|
||||||
"""Restituisci lo stato attuale della partita in una stringa unicode"""
|
"""Restituisci lo stato attuale della partita in una stringa unicode"""
|
||||||
tosend = "Stato attuale del gioco: \n"
|
tosend = "Stato attuale del gioco: \n"
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
|
@ -53,7 +54,7 @@ class Game:
|
||||||
tosend += player.username + "\n"
|
tosend += player.username + "\n"
|
||||||
return tosend
|
return tosend
|
||||||
|
|
||||||
def fullstatus(self):
|
def fullstatus(self) -> str:
|
||||||
"""Restituisci lo stato attuale della partita (per admin?) in una stringa unicode"""
|
"""Restituisci lo stato attuale della partita (per admin?) in una stringa unicode"""
|
||||||
tosend = "Stato attuale del gioco: \n"
|
tosend = "Stato attuale del gioco: \n"
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
|
@ -66,7 +67,7 @@ class Game:
|
||||||
tosend += player.username + "\n"
|
tosend += player.username + "\n"
|
||||||
return tosend
|
return tosend
|
||||||
|
|
||||||
def findusername(self, username):
|
def findusername(self, username) -> Player:
|
||||||
"""Trova un giocatore con un certo nome utente
|
"""Trova un giocatore con un certo nome utente
|
||||||
:param username: Nome utente da cercare
|
:param username: Nome utente da cercare
|
||||||
"""
|
"""
|
||||||
|
@ -76,7 +77,7 @@ class Game:
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def findid(self, telegramid):
|
def findid(self, telegramid) -> Player:
|
||||||
"""Trova un giocatore con un certo ID di telegram
|
"""Trova un giocatore con un certo ID di telegram
|
||||||
:param telegramid: ID da cercare
|
:param telegramid: ID da cercare
|
||||||
"""
|
"""
|
||||||
|
@ -92,7 +93,7 @@ class Game:
|
||||||
"""
|
"""
|
||||||
self.players.append(player)
|
self.players.append(player)
|
||||||
|
|
||||||
def mostvoted(self):
|
def mostvoted(self) -> Player:
|
||||||
"""Trova il giocatore più votato"""
|
"""Trova il giocatore più votato"""
|
||||||
votelist = dict()
|
votelist = dict()
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
|
@ -131,7 +132,7 @@ class Game:
|
||||||
self.message(killed.username + " è stato il più votato del giorno.")
|
self.message(killed.username + " è stato il più votato del giorno.")
|
||||||
|
|
||||||
|
|
||||||
def load(filename):
|
def load(filename) -> Game:
|
||||||
"""Restituisci da un file di testo con il numero del gruppo lo stato del gioco (Funzione non sicura, non importare
|
"""Restituisci da un file di testo con il numero del gruppo lo stato del gioco (Funzione non sicura, non importare
|
||||||
file a caso pls)
|
file a caso pls)
|
||||||
:param filename: Nome del file da cui caricare lo stato"""
|
:param filename: Nome del file da cui caricare lo stato"""
|
||||||
|
@ -142,4 +143,42 @@ def load(filename):
|
||||||
else:
|
else:
|
||||||
return pickle.load(file)
|
return pickle.load(file)
|
||||||
|
|
||||||
|
|
||||||
partiteincorso = list()
|
partiteincorso = list()
|
||||||
|
|
||||||
|
|
||||||
|
def findgame(chatid) -> Game:
|
||||||
|
for game in partiteincorso:
|
||||||
|
if game.groupid == chatid:
|
||||||
|
return game
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
while True:
|
||||||
|
t = telegram.getupdates()
|
||||||
|
if 'text' in t:
|
||||||
|
if t['text'].startswith("/newgame"):
|
||||||
|
g = findgame(t['chat']['id'])
|
||||||
|
if g is None:
|
||||||
|
g = Game()
|
||||||
|
g.groupid = t['chat']['id']
|
||||||
|
g.adminid = t['from']['id']
|
||||||
|
partiteincorso.append(g)
|
||||||
|
else:
|
||||||
|
telegram.sendmessage("Una partita è già in corso qui.", t['chat']['id'], t['message_id'])
|
||||||
|
elif t['text'].startswith("/loadgame"):
|
||||||
|
# Facendo così mi sovrascrive il Game dentro la lista o no?
|
||||||
|
g = findgame(t['chat']['id'])
|
||||||
|
add = False
|
||||||
|
if g is None:
|
||||||
|
add = True
|
||||||
|
g = load(t['chat']['id'])
|
||||||
|
if add:
|
||||||
|
partiteincorso.append(g)
|
||||||
|
if t['text'].startswith("/echo"):
|
||||||
|
g = findgame(t['chat']['id'])
|
||||||
|
if g is None:
|
||||||
|
telegram.sendmessage("Nessuna partita in corso.", t['chat']['id'], t['message_id'])
|
||||||
|
else:
|
||||||
|
g.message(g.fullstatus())
|
Loading…
Reference in a new issue