2016-04-01 15:39:38 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2016-04-01 16:20:10 +00:00
|
|
|
import telegram
|
2016-04-01 15:39:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Player:
|
2016-04-01 15:47:20 +00:00
|
|
|
telegramid = int()
|
|
|
|
username = str()
|
2016-04-03 11:14:05 +00:00
|
|
|
role = 0 # 0 = normale, 1 = mifia
|
2016-04-01 16:20:10 +00:00
|
|
|
alive = True
|
2016-04-03 11:14:05 +00:00
|
|
|
votedfor = str()
|
|
|
|
special = False
|
2016-04-01 16:20:10 +00:00
|
|
|
|
|
|
|
def message(self, text):
|
|
|
|
"""Manda un messaggio al giocatore
|
|
|
|
:param text: Testo del messaggio
|
|
|
|
"""
|
|
|
|
telegram.sendmessage(text, self.telegramid)
|
|
|
|
|
2016-04-01 15:47:20 +00:00
|
|
|
|
|
|
|
class Game:
|
2016-04-03 11:14:05 +00:00
|
|
|
groupid = int()
|
|
|
|
adminid = int()
|
2016-04-01 16:20:10 +00:00
|
|
|
players = list()
|
2016-04-01 20:08:08 +00:00
|
|
|
|
|
|
|
def message(self, text):
|
|
|
|
"""Manda un messaggio alla chat generale del gioco
|
|
|
|
:param text: Testo del messaggio
|
|
|
|
"""
|
2016-04-01 20:28:41 +00:00
|
|
|
telegram.sendmessage(text, self.chat)
|
|
|
|
|
2016-04-03 11:14:05 +00:00
|
|
|
def adminmessage(self, text):
|
|
|
|
"""Manda un messaggio all'admin del gioco
|
|
|
|
:param text: Testo del messaggio
|
|
|
|
"""
|
|
|
|
telegram.sendmessage(text, self.adminid)
|
|
|
|
|
|
|
|
def evilmessage(self, text):
|
2016-04-01 20:28:41 +00:00
|
|
|
"""Manda un messaggio alla chat generale del gioco
|
|
|
|
:param text: Testo del messaggio
|
|
|
|
"""
|
|
|
|
for player in self.players:
|
|
|
|
if player.role == 1:
|
|
|
|
telegram.sendmessage(text, player.telegramid)
|
2016-04-01 20:08:08 +00:00
|
|
|
|
2016-04-03 11:14:05 +00:00
|
|
|
def status(self):
|
|
|
|
"""Restituisci lo stato attuale della partita in una stringa unicode"""
|
2016-04-01 20:08:08 +00:00
|
|
|
tosend = "Stato attuale del gioco: \n"
|
|
|
|
for player in self.players:
|
|
|
|
if not player.alive:
|
|
|
|
tosend += "\U0001F480 "
|
|
|
|
else:
|
|
|
|
tosend += "\U0001F636 "
|
|
|
|
tosend += player.username + "\n"
|
2016-04-03 11:14:05 +00:00
|
|
|
return tosend
|
2016-04-01 20:08:08 +00:00
|
|
|
|
2016-04-03 11:14:05 +00:00
|
|
|
def fullstatus(self):
|
|
|
|
"""Restituisci lo stato attuale della partita (per admin?) in una stringa unicode"""
|
2016-04-01 20:28:41 +00:00
|
|
|
tosend = "Stato attuale del gioco: \n"
|
|
|
|
for player in self.players:
|
|
|
|
if not player.alive:
|
2016-04-03 11:14:05 +00:00
|
|
|
tosend += "\U0001F480 "
|
2016-04-01 20:28:41 +00:00
|
|
|
elif player.role == 1:
|
|
|
|
tosend += "_Mifia_ "
|
|
|
|
else:
|
2016-04-03 11:14:05 +00:00
|
|
|
tosend += "\U0001F636 "
|
2016-04-01 20:28:41 +00:00
|
|
|
tosend += player.username + "\n"
|
2016-04-03 11:14:05 +00:00
|
|
|
return tosend
|
|
|
|
|
|
|
|
def findusername(self, username):
|
|
|
|
"""Trova un giocatore con un certo nome utente
|
|
|
|
:param username: Nome utente da cercare
|
|
|
|
"""
|
|
|
|
for player in self.players:
|
|
|
|
if player.username == username:
|
|
|
|
return player
|
|
|
|
else:
|
|
|
|
return None
|
|
|
|
|
|
|
|
def findid(self, telegramid):
|
|
|
|
"""Trova un giocatore con un certo ID di telegram
|
|
|
|
:param telegramid: ID da cercare
|
|
|
|
"""
|
|
|
|
for player in self.players:
|
|
|
|
if player.telegramid == telegramid:
|
|
|
|
return player
|
|
|
|
else:
|
|
|
|
return None
|
2016-04-01 20:28:41 +00:00
|
|
|
|
2016-04-01 20:08:08 +00:00
|
|
|
def addplayer(self, player):
|
|
|
|
"""Aggiungi un giocatore alla partita
|
|
|
|
:param player: Oggetto del giocatore da aggiungere
|
|
|
|
"""
|
|
|
|
self.players.append(player)
|
2016-04-03 11:14:05 +00:00
|
|
|
|
|
|
|
def mostvoted(self):
|
|
|
|
"""Trova il giocatore più votato"""
|
|
|
|
|