online multiplayer chess game (note server currently down)
Diffstat (limited to 'networking/Network.gd')
-rw-r--r--networking/Network.gd18
1 files changed, 15 insertions, 3 deletions
diff --git a/networking/Network.gd b/networking/Network.gd
index 8496386..741ea5f 100644
--- a/networking/Network.gd
+++ b/networking/Network.gd
@@ -17,7 +17,8 @@ const HEADERS := {
"loadpgn": "L", # server telling me to load a pgn
"info": "I",
"move": "M",
- "undo": "<"
+ "undo": "<",
+ "spectate": "0" # its a eye you see
}
const RELAYHEADERS := {chat = "C"}
@@ -88,14 +89,18 @@ func signal(body: Dictionary, header: String, _mainheader := HEADERS.signal) ->
return data
-func join_game(game: String) -> void:
+func join_game(game: String = game_code) -> void:
send_gamecode_packet(SaveLoad.get_public_info(), HEADERS.joinrequest, game)
-func host_game(game: String) -> void:
+func host_game(game: String = game_code) -> void:
send_gamecode_packet(SaveLoad.get_public_info(), HEADERS.hostrequest, game)
+func spectate(game: String = game_code) -> void:
+ send_gamecode_packet(SaveLoad.get_public_info(), HEADERS.spectate, game)
+
+
func send_gamecode_packet(data: Dictionary, header: String, gamecode: String = game_code):
send_packet(Utils.append_dict({"gamecode": gamecode}, data), header)
@@ -135,6 +140,13 @@ func _data_recieved() -> void:
HEADERS.info:
yield(get_tree().create_timer(.5), "timeout")
emit_signal("info_recieved", text)
+ HEADERS.spectate:
+ # handle spectate here
+ Globals.spectating = true
+ emit_signal("start_game")
+ yield(get_tree().create_timer(.5), "timeout")
+ Globals.grid.play_pgn(text.pgn, true)
+ emit_signal("info_recieved", text)
HEADERS.loadpgn:
emit_signal("start_game")
yield(get_tree().create_timer(.5), "timeout")