mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-24 03:54:20 +00:00
Cose
This commit is contained in:
parent
fdfb8b57ca
commit
d09339c49c
1 changed files with 40 additions and 21 deletions
53
mifia.py
53
mifia.py
|
@ -1,7 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import telegram
|
import telegram
|
||||||
import pickle
|
import pickle
|
||||||
|
import random
|
||||||
|
|
||||||
class Player:
|
class Player:
|
||||||
telegramid = int()
|
telegramid = int()
|
||||||
|
@ -22,12 +22,13 @@ class Game:
|
||||||
groupid = int()
|
groupid = int()
|
||||||
adminid = int()
|
adminid = int()
|
||||||
players = list()
|
players = list()
|
||||||
|
joinphase = True
|
||||||
|
|
||||||
def message(self, text):
|
def message(self, text):
|
||||||
"""Manda un messaggio alla chat generale del gioco
|
"""Manda un messaggio alla chat generale del gioco
|
||||||
:param text: Testo del messaggio
|
:param text: Testo del messaggio
|
||||||
"""
|
"""
|
||||||
telegram.sendmessage(text, self.chat)
|
telegram.sendmessage(text, self.groupid)
|
||||||
|
|
||||||
def adminmessage(self, text):
|
def adminmessage(self, text):
|
||||||
"""Manda un messaggio all'admin del gioco
|
"""Manda un messaggio all'admin del gioco
|
||||||
|
@ -158,27 +159,45 @@ def findgame(chatid) -> Game:
|
||||||
while True:
|
while True:
|
||||||
t = telegram.getupdates()
|
t = telegram.getupdates()
|
||||||
if 'text' in t:
|
if 'text' in t:
|
||||||
if t['text'].startswith("/newgame"):
|
|
||||||
g = findgame(t['chat']['id'])
|
g = findgame(t['chat']['id'])
|
||||||
if g is None:
|
if g is None:
|
||||||
|
if t['text'].startswith("/newgame"):
|
||||||
g = Game()
|
g = Game()
|
||||||
g.groupid = t['chat']['id']
|
g.groupid = t['chat']['id']
|
||||||
g.adminid = t['from']['id']
|
g.adminid = t['from']['id']
|
||||||
partiteincorso.append(g)
|
partiteincorso.append(g)
|
||||||
else:
|
elif t['text'].startswith("/load"):
|
||||||
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'])
|
g = load(t['chat']['id'])
|
||||||
if add:
|
elif t['text'].startswith("/status"):
|
||||||
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'])
|
telegram.sendmessage("Nessuna partita in corso.", t['chat']['id'], t['message_id'])
|
||||||
|
# else:
|
||||||
|
# telegram.sendmessage("Comando non riconosciuto. Avvia una partita prima!", t['chat']['id'],
|
||||||
|
# t['message_id'])
|
||||||
else:
|
else:
|
||||||
g.message(g.fullstatus())
|
if t['text'].startswith("/join"):
|
||||||
|
p = Player()
|
||||||
|
p.telegramid = t['from']['id']
|
||||||
|
# Qui crasha se non è stato impostato un username. Fare qualcosa?
|
||||||
|
p.username = t['from']['username']
|
||||||
|
# Assegnazione dei ruoli
|
||||||
|
# Spiegare meglio cosa deve fare ogni ruolo?
|
||||||
|
balanced = random.randrange(0, 100, 1)
|
||||||
|
if balanced <= 15:
|
||||||
|
p.role = 1
|
||||||
|
p.special = True
|
||||||
|
p.message("Sei stato assegnato alla squadra *MIFIA*.")
|
||||||
|
elif balanced >= 95:
|
||||||
|
p.role = 2
|
||||||
|
p.special = True
|
||||||
|
p.message("Sei stato assegnato alla squadra *ROYAL*.")
|
||||||
|
p.message("Hai il ruolo speciale di detective.")
|
||||||
|
else:
|
||||||
|
p.role = 0
|
||||||
|
p.message("Sei stato assegnato alla squadra *ROYAL*.")
|
||||||
|
g.addplayer(p)
|
||||||
|
g.message(p.username + " si è unito alla partita!")
|
||||||
|
elif t['text'].startswith("/save"):
|
||||||
|
g.save()
|
||||||
|
elif t['text'].startswith("/status"):
|
||||||
|
if t['from']['id'] == g.adminid:
|
||||||
|
g.adminmessage(g.fullstatus())
|
||||||
|
|
Loading…
Reference in a new issue