about summary refs log tree commit diff stats
path: root/apworld/client/manager.gd
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/client/manager.gd')
-rw-r--r--apworld/client/manager.gd24
1 files changed, 24 insertions, 0 deletions
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index a5b9db0..9212233 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -28,6 +28,7 @@ var _item_locks = {}
28var _inverse_item_locks = {} 28var _inverse_item_locks = {}
29var _held_letters = {} 29var _held_letters = {}
30var _letters_setup = false 30var _letters_setup = false
31var _already_connected = false
31 32
32const kSHUFFLE_LETTERS_VANILLA = 0 33const kSHUFFLE_LETTERS_VANILLA = 0
33const kSHUFFLE_LETTERS_UNLOCKED = 1 34const kSHUFFLE_LETTERS_UNLOCKED = 1
@@ -178,6 +179,7 @@ func connectToServer():
178 _location_scouts = {} 179 _location_scouts = {}
179 _letters_setup = false 180 _letters_setup = false
180 _held_letters = {} 181 _held_letters = {}
182 _already_connected = false
181 183
182 client.connectToServer(ap_server, ap_user, ap_pass) 184 client.connectToServer(ap_server, ap_user, ap_pass)
183 185
@@ -187,6 +189,11 @@ func getSaveFileName():
187 189
188 190
189func disconnect_from_ap(): 191func disconnect_from_ap():
192 _already_connected = false
193
194 var effects = global.get_node("Effects")
195 effects.set_connection_lost(false)
196
190 client.disconnect_from_ap() 197 client.disconnect_from_ap()
191 198
192 199
@@ -353,12 +360,29 @@ func _on_checked_worldports_updated():
353func _client_could_not_connect(message): 360func _client_could_not_connect(message):
354 could_not_connect.emit(message) 361 could_not_connect.emit(message)
355 362
363 if global.loaded:
364 var effects = global.get_node("Effects")
365 effects.set_connection_lost(true)
366
367 var messages = global.get_node("Messages")
368 messages.showMessage("Connection to multiworld lost.")
369
356 370
357func _client_connect_status(message): 371func _client_connect_status(message):
358 connect_status.emit(message) 372 connect_status.emit(message)
359 373
360 374
361func _client_connected(slot_data): 375func _client_connected(slot_data):
376 var effects = global.get_node("Effects")
377 effects.set_connection_lost(false)
378
379 if _already_connected:
380 var messages = global.get_node("Messages")
381 messages.showMessage("Reconnected to multiworld!")
382 return
383
384 _already_connected = true
385
362 var gamedata = global.get_node("Gamedata") 386 var gamedata = global.get_node("Gamedata")
363 387
364 _localdata_file = "user://archipelago_data/%s_%d" % [client._seed, client._slot] 388 _localdata_file = "user://archipelago_data/%s_%d" % [client._seed, client._slot]