diff options
-rw-r--r-- | client/game.gd | 6 | ||||
-rw-r--r-- | client/gui/menus/transition/scene_transition.gd | 5 | ||||
-rw-r--r-- | client/gui/overlays/lobby/lobby.gd | 13 |
3 files changed, 11 insertions, 13 deletions
diff --git a/client/game.gd b/client/game.gd index b3bd97ea..4cb5e5d0 100644 --- a/client/game.gd +++ b/client/game.gd @@ -271,20 +271,18 @@ func handle_packet(p): in_lobby = p.lobby overlay_score.set_ingame(p.state, p.lobby) follow_camera.set_ingame(p.state, p.lobby) - + if p.state: map.gi_bake() await get_parent()._menu_open() map.autobake = true - in_lobby_updated.emit(in_lobby) else: map.autobake = false await get_parent()._menu_exit() - overlay_lobby.visible = in_lobby if in_lobby: overlay_lobby.select_map(0) - if overlay_lobby and join_state == JoinState.SPECTATING: + if join_state == JoinState.SPECTATING: if in_lobby: toggle_join() elif not is_replay: diff --git a/client/gui/menus/transition/scene_transition.gd b/client/gui/menus/transition/scene_transition.gd index 330d67d6..332647b5 100644 --- a/client/gui/menus/transition/scene_transition.gd +++ b/client/gui/menus/transition/scene_transition.gd @@ -24,6 +24,8 @@ var s_current = false var s_target = false var fading = false +signal animation_end + func _ready(): $black.visible = true text.visible = true @@ -34,7 +36,7 @@ func set_loading_text(s: String): text_anim.play("fade") func next(): - while fading: await black_anim.animation_finished + while fading: await animation_end if s_target == s_current: return fading = true if s_target: @@ -53,6 +55,7 @@ func next(): await get_tree().process_frame # animation finishes one frame early s_current = false fading = false + animation_end.emit() await next() func fade_in(): diff --git a/client/gui/overlays/lobby/lobby.gd b/client/gui/overlays/lobby/lobby.gd index 8c372c70..2b40cada 100644 --- a/client/gui/overlays/lobby/lobby.gd +++ b/client/gui/overlays/lobby/lobby.gd @@ -48,8 +48,9 @@ func _ready(): game.update_players.connect(update_players) initialize() game.data_updated.connect(initialize) - game.join_state_updated.connect(_on_game_join_state_updated) - _on_game_join_state_updated(game.join_state) + game.join_state_updated.connect(_update_visible) + game.in_lobby_updated.connect(_update_visible) + _update_visible(false) check_for_music() func initialize(): @@ -165,12 +166,8 @@ func _on_start_pressed(): game.mp.send_chat(game.my_player_id, start_msg) Sound.play_music("stop") # TODO: Game music enter -func _on_game_join_state_updated(state: Game.JoinState): - match state: - Game.JoinState.JOINED: - visible = true - Game.JoinState.SPECTATING: - visible = false +func _update_visible(_state: bool): + visible = game.in_lobby and game.join_state == Game.JoinState.JOINED func check_for_music(): if visible: |