From c269c950e7ee18d0b49459ba4fb279e234f1617c Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Sat, 18 Feb 2023 17:35:16 +0000 Subject: [PATCH 1/4] add emojis to lobbies --- backend/server.py | 13 +++++++--- frontend/src/App.vue | 2 +- frontend/src/components/Help.vue | 4 ++++ frontend/src/components/Lobby.vue | 40 ++++++++++++++++--------------- frontend/src/components/Menu.vue | 16 +++++++++---- frontend/src/utils/emoji-map.js | 7 ++++++ 6 files changed, 54 insertions(+), 28 deletions(-) create mode 100644 frontend/src/utils/emoji-map.js diff --git a/backend/server.py b/backend/server.py index 32271ae..c42dda1 100644 --- a/backend/server.py +++ b/backend/server.py @@ -82,13 +82,17 @@ def bang_handler(func): logging.exception(e) print(traceback.format_exc()) send_to_debug(traceback.format_exc()) - save_lock = False + finally: + save_lock = False return wrapper_func +def count_bots_in_game(game): + return sum(1 for p in game.players if p.is_bot) + def advertise_lobbies(): open_lobbies = [g for g in games.values() if 0 < len(g.players) < 10 and not g.is_hidden][-10:] - sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in open_lobbies if not g.started]) - sio.emit('spectate_lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in open_lobbies if g.started]) + sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'bots': count_bots_in_game(g), 'locked': g.password != '', 'expansions': g.expansions} for g in open_lobbies if not g.started]) + sio.emit('spectate_lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'bots': count_bots_in_game(g), 'locked': g.password != '', 'expansions': g.expansions} for g in open_lobbies if g.started]) Metrics.send_metric('lobbies', points=[sum(not g.is_replay for g in games.values())]) Metrics.send_metric('online_players', points=[online_players]) @@ -268,6 +272,7 @@ def private(sid): def toggle_expansion(sid, expansion_name): g = sio.get_session(sid).game g.toggle_expansion(expansion_name) + advertise_lobbies() @sio.event @bang_handler @@ -476,6 +481,7 @@ def chat_message(sid, msg, pl=None): while any((p for p in ses.game.players if p.name == bot.name)): bot = Player(f'AI_{random.randint(0,10)}', 'bot', bot=True) ses.game.add_player(bot) + advertise_lobbies() sio.start_background_task(bot.bot_spin) return if '/replay' in msg and not '/replayspeed' in msg and not '/replaypov' in msg: @@ -515,6 +521,7 @@ def chat_message(sid, msg, pl=None): elif '/removebot' in msg and not ses.game.started: if any((p.is_bot for p in ses.game.players)): [p for p in ses.game.players if p.is_bot][-1].disconnect() + advertise_lobbies() return elif '/togglecomp' in msg and ses.game: ses.game.toggle_competitive() diff --git a/frontend/src/App.vue b/frontend/src/App.vue index ec30545..726665f 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -13,7 +13,7 @@ - +
diff --git a/frontend/src/components/Help.vue b/frontend/src/components/Help.vue index 956d402..e5ca2cd 100644 --- a/frontend/src/components/Help.vue +++ b/frontend/src/components/Help.vue @@ -1,5 +1,6 @@