aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/game.gd6
-rw-r--r--client/gui/menus/transition/scene_transition.gd5
-rw-r--r--client/gui/overlays/lobby/lobby.gd13
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: