online multiplayer chess game (note server currently down)
Diffstat (limited to 'networking/PacketHandler.gd')
-rw-r--r--networking/PacketHandler.gd23
1 files changed, 17 insertions, 6 deletions
diff --git a/networking/PacketHandler.gd b/networking/PacketHandler.gd
index ea69b50..18a4360 100644
--- a/networking/PacketHandler.gd
+++ b/networking/PacketHandler.gd
@@ -129,13 +129,19 @@ func _connection_error() -> void:
func join_result(accepted) -> void:
if handle_result(accepted, "Joined!"):
- yield(get_tree(), "idle_frame")
- if Globals.team == Globals.BLACK:
- Globals.grid.flip_board()
+ flip_if_black()
+
+
+func flip_if_black():
+ yield(get_tree(), "idle_frame")
+ if Globals.team == Globals.BLACK:
+ Globals.grid.flip_board()
func host_result(accepted) -> void:
- set_hosting(handle_result(accepted, "Hosted!"))
+ if handle_result(accepted, "Hosted!"):
+ set_hosting(true)
+ flip_if_black()
func handle_result(accepted, resultstring: String) -> bool:
@@ -149,6 +155,7 @@ func handle_result(accepted, resultstring: String) -> bool:
func go_back(error: String, isok: bool) -> void:
+ stopgame(game_code)
Globals.reset_vars()
if has_node("/root/Game"):
$"/root/Game".queue_free()
@@ -186,8 +193,12 @@ func join_game(game: String = game_code) -> void:
send_gamecode_packet(SaveLoad.get_public_info(), HEADERS.joinrequest, game)
-func host_game(game: String = game_code) -> void:
- send_gamecode_packet(SaveLoad.get_public_info(), HEADERS.hostrequest, game)
+func host_game(game: String = game_code, white := true, moves_array: PoolStringArray = []) -> void:
+ send_gamecode_packet(
+ Utils.append_dict(SaveLoad.get_public_info(), {team = white, moves = moves_array}),
+ HEADERS.hostrequest,
+ game
+ )
func spectate(game: String = game_code) -> void: