1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 13:34:28 +00:00
This commit is contained in:
Steffo 2016-04-05 21:01:25 +02:00
parent 12b1227d6e
commit fdfb8b57ca

View file

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