online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/Lobby.gd')
-rw-r--r--ui/Lobby.gd53
1 files changed, 28 insertions, 25 deletions
diff --git a/ui/Lobby.gd b/ui/Lobby.gd
index c9861c8..e4da73d 100644
--- a/ui/Lobby.gd
+++ b/ui/Lobby.gd
@@ -17,7 +17,7 @@ func toggle(onoff) -> void:
func _handle_game_over(error = "game over", isok = true) -> void:
- reset_buttons()
+ set_buttons()
Globals.reset_vars()
end_game()
_set_status(error, isok)
@@ -27,27 +27,23 @@ func _set_status(text, isok) -> void: # Simple way to show status.
if isok:
status_ok.set_text(text)
status_fail.set_text("")
- status_ok.visible = len(status_ok.text) > 0
- status_fail.visible = len(status_fail.text) > 0
else:
status_ok.set_text("")
status_fail.set_text(text)
- status_fail.visible = len(status_fail.text) > 0
- status_ok.visible = len(status_ok.text) > 0
+ status_ok.visible = len(status_ok.text) > 0
+ status_fail.visible = len(status_fail.text) > 0
func _on_join_pressed() -> void:
Globals.network.game_code = validate_text()
Globals.network.send_packet(Globals.network.game_code, Globals.network.HEADERS.joinrequest)
- address.editable = false
- buttons.hide()
+ set_buttons(false)
func _on_HostButton_pressed() -> void:
Globals.network.game_code = validate_text()
Globals.network.send_packet(Globals.network.game_code, Globals.network.HEADERS.hostrequest)
- address.editable = false
- buttons.hide()
+ set_buttons(false)
func validate_text(text = address.get_text()) -> String:
@@ -63,19 +59,25 @@ func _ready() -> void:
get_tree().set_auto_accept_quit(false)
Events.connect("go_back", self, "_handle_game_over")
if !is_instance_valid(Globals.network):
- Globals.network = Network.new()
- Globals.network.connect("move_data", self, "_on_data")
- Globals.network.connect("join_result", self, "_on_join_result")
- Globals.network.connect("host_result", self, "_on_host_result")
- Globals.network.connect("game_over", self, "_handle_game_over")
- Globals.network.connect("start_game", self, "_start_game")
- Globals.network.connect("connection_established", self, "network_ready")
- add_child(Globals.network)
+ if Utils.internet_available():
+ _set_status("Connecting...", true)
+ var net = Network.new()
+ net.connect("move_data", self, "_on_data")
+ net.connect("join_result", self, "_on_join_result")
+ net.connect("host_result", self, "_on_host_result")
+ net.connect("game_over", self, "_handle_game_over")
+ net.connect("start_game", self, "_start_game")
+ net.connect("connection_established", self, "network_ready")
+ add_child(net)
+ Globals.network = net
+ else:
+ set_buttons(false)
+ _set_status("No internet connection", false)
func network_ready():
- for child in buttons.get_children():
- child.disabled = false
+ set_buttons(true)
+ _set_status("", true)
func end_game() -> void:
@@ -101,12 +103,13 @@ func _on_join_result(accepted: String) -> void:
Globals.network.send_packet("", Globals.network.HEADERS.startgame)
else:
_set_status(accepted, false)
- reset_buttons()
+ set_buttons()
-func reset_buttons() -> void:
- buttons.show()
- address.editable = true
+func set_buttons(enabled = true) -> void:
+ for c in buttons.get_children():
+ c.disabled = !enabled
+ address.editable = enabled
func _on_host_result(accepted: String) -> void:
@@ -115,7 +118,7 @@ func _on_host_result(accepted: String) -> void:
_set_status("Hosted!", true)
else:
_set_status(accepted, false)
- reset_buttons()
+ set_buttons()
func add_turn() -> void:
@@ -126,7 +129,7 @@ func add_turn() -> void:
func _on_data(data: Dictionary) -> void:
- print(data, " recieved")
+ Log.debug([data, " recieved"])
Globals.fullmove = data["fullmove"]
Globals.turn = data["turn"]
Globals.halfmove = data["halfmove"]