summaryrefslogtreecommitdiff
path: root/client/multiplayer.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/multiplayer.gd')
-rw-r--r--client/multiplayer.gd13
1 files changed, 11 insertions, 2 deletions
diff --git a/client/multiplayer.gd b/client/multiplayer.gd
index 4c334700..d3e80613 100644
--- a/client/multiplayer.gd
+++ b/client/multiplayer.gd
@@ -52,9 +52,11 @@ signal score(demands_failed: int, demands_completed: int, points: int, time_rema
signal hide_score()
signal server_message(text: String)
signal replay_start()
-
signal connection_closed(reason: String)
+const VERSION_MAJOR: int = 1
+const VERSION_MINOR: int = 0
+
var connected := false
var socket := WebSocketPeer.new()
@@ -81,7 +83,7 @@ func _process(_delta):
var code = socket.get_close_code()
var reason = socket.get_close_reason()
connection_closed.emit(
- "WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != - 1]
+ tr("WebSocket closed with code: %d, reason %s. Clean: %s") % [code, reason, code != - 1]
)
self.queue_free()
@@ -96,6 +98,13 @@ func handle_packet(bytes: PackedByteArray):
"init":
var player_id = decoded["id"]
init.emit(player_id)
+ "version":
+ var major = decoded["major"]
+ var minor = decoded["minor"]
+ if major != VERSION_MAJOR or minor != VERSION_MINOR:
+ socket.close()
+ connected = false
+ connection_closed.emit(tr("Server and client versions do not match. Server: %d.%d, Client: %d.%d.\nAre you sure the game is up to date?") % [major, minor, VERSION_MAJOR, VERSION_MINOR])
"data":
var item_names = decoded["data"]["item_names"]
var tile_names = decoded["data"]["tile_names"]