chat change name and countdown

This commit is contained in:
Alberto Xamin 2020-12-26 10:41:52 +01:00
parent bbd25cb605
commit 07f30c36e6
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
4 changed files with 22 additions and 12 deletions

View File

@ -42,18 +42,21 @@ def connect(sid, environ):
@sio.event @sio.event
def set_username(sid, username): def set_username(sid, username):
if not isinstance(sio.get_session(sid), Player): ses = sio.get_session(sid)
if not isinstance(ses, Player):
sio.save_session(sid, Player(username, sid, sio)) sio.save_session(sid, Player(username, sid, sio))
print(f'{sid} is now {username}') print(f'{sid} is now {username}')
advertise_lobbies() advertise_lobbies()
elif sio.get_session(sid).game == None or not sio.get_session(sid).game.started: elif ses.game == None or not ses.game.started:
print(f'{sid} changed username to {username}') print(f'{sid} changed username to {username}')
if len([p for p in sio.get_session(sid).game.players if p.name == username]) > 0: prev = ses.name
sio.get_session(sid).name = f'{username}_{random.randint(0,100)}' if len([p for p in ses.game.players if p.name == username]) > 0:
ses.name = f"{username}_{random.randint(0,100)}"
else: else:
sio.get_session(sid).name = username ses.name = username
sio.emit('me', data=sio.get_session(sid).name, room=sid) sio.emit('chat_message', room=ses.game.name, data=f'_change_username|{prev}|{ses.name}')
sio.get_session(sid).game.notify_room() sio.emit('me', data=ses.name, room=sid)
ses.game.notify_room()
@sio.event @sio.event
def get_me(sid, room): def get_me(sid, room):
@ -96,6 +99,7 @@ def get_me(sid, room):
if room['username'] == None or any([p.name == room['username'] for p in sio.get_session(sid).game.players]): if room['username'] == None or any([p.name == room['username'] for p in sio.get_session(sid).game.players]):
sio.emit('change_username', room=sid) sio.emit('change_username', room=sid)
else: else:
sio.emit('chat_message', room=sio.get_session(sid).game.name, data=f"_change_username|{sio.get_session(sid).name}|{room['username']}")
sio.get_session(sid).name = room['username'] sio.get_session(sid).name = room['username']
sio.emit('me', data=sio.get_session(sid).name, room=sid) sio.emit('me', data=sio.get_session(sid).name, room=sid)
if not sio.get_session(sid).game.started: if not sio.get_session(sid).game.started:

View File

@ -368,7 +368,7 @@ class Game:
print(f'player {player.name} left the game {self.name}') print(f'player {player.name} left the game {self.name}')
if player in self.spectators: if player in self.spectators:
self.spectators.remove(player) self.spectators.remove(player)
return return False
if player.is_bot and not self.started: if player.is_bot and not self.started:
player.game = None player.game = None
if self.disconnect_bot and self.started: if self.disconnect_bot and self.started:
@ -381,7 +381,7 @@ class Game:
# player.lives = 0 # player.lives = 0
# self.players.remove(player) # self.players.remove(player)
if len([p for p in self.players if not p.is_bot]) == 0: if len([p for p in self.players if not p.is_bot]) == 0:
print(f'no players left in game {self.name}') print(f'no players left in game {self.name}, shutting down')
self.shutting_down = True self.shutting_down = True
self.players = [] self.players = []
self.spectators = [] self.spectators = []
@ -445,7 +445,9 @@ class Game:
p.win_status = p in winners p.win_status = p in winners
self.sio.emit('chat_message', room=self.name, data=f'_won|{p.name}') self.sio.emit('chat_message', room=self.name, data=f'_won|{p.name}')
p.notify_self() p.notify_self()
eventlet.sleep(5.0) for i in range(5):
self.sio.emit('chat_message', room=self.name, data=f'_lobby_reset|{5-i}')
eventlet.sleep(1)
return self.reset() return self.reset()
vulture = [p for p in self.get_alive_players() if p.character.check(self, characters.VultureSam)] vulture = [p for p in self.get_alive_players() if p.character.check(self, characters.VultureSam)]

View File

@ -93,7 +93,9 @@
"guess_wrong": "{0} was wrong.", "guess_wrong": "{0} was wrong.",
"fratelli_sangue": "{0} gave one of his lives to {1}.", "fratelli_sangue": "{0} gave one of his lives to {1}.",
"doctor_heal": "{0} was healed by the doctor.", "doctor_heal": "{0} was healed by the doctor.",
"respond": "{0} responded with {1}." "respond": "{0} responded with {1}.",
"change_username": "{0} is now {1}.",
"lobby_reset": "Going back to lobby in {0} seconds..."
}, },
"foc": { "foc": {
"leggedelwest": "He must play this card on this turn if possible." "leggedelwest": "He must play this card on this turn if possible."

View File

@ -93,7 +93,9 @@
"guess_wrong": "{0} ha sbagliato.", "guess_wrong": "{0} ha sbagliato.",
"fratelli_sangue": "{0} ha donato una delle sue vite a {1}.", "fratelli_sangue": "{0} ha donato una delle sue vite a {1}.",
"doctor_heal": "{0} è stato curato dal dottore.", "doctor_heal": "{0} è stato curato dal dottore.",
"respond": "{0} ha risposto con {1}." "respond": "{0} ha risposto con {1}.",
"change_username": "{0} ha cambiato nome in {1}.",
"lobby_reset": "Si ritora all stanza in {0} secondi..."
}, },
"foc": { "foc": {
"leggedelwest": "Ed è obbligato a usarla nel suo turno, se possibile" "leggedelwest": "Ed è obbligato a usarla nel suo turno, se possibile"