1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-24 03:54:20 +00:00
royalnet/mifia.py

98 lines
2.8 KiB
Python
Raw Normal View History

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