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.gd17
1 files changed, 17 insertions, 0 deletions
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index dac09b2..91797b2 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -63,6 +63,7 @@ const kEndingNameByVictoryValue = {
63var apworld_version = [0, 0, 0] 63var apworld_version = [0, 0, 0]
64var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 64var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2
65var daedalus_roof_access = false 65var daedalus_roof_access = false
66var enable_gift_maps = []
66var keyholder_sanity = false 67var keyholder_sanity = false
67var port_pairings = {} 68var port_pairings = {}
68var shuffle_control_center_colors = false 69var shuffle_control_center_colors = false
@@ -141,6 +142,7 @@ func _ready():
141 client.accessible_locations_updated.connect(_on_accessible_locations_updated) 142 client.accessible_locations_updated.connect(_on_accessible_locations_updated)
142 client.checked_locations_updated.connect(_on_checked_locations_updated) 143 client.checked_locations_updated.connect(_on_checked_locations_updated)
143 client.checked_worldports_updated.connect(_on_checked_worldports_updated) 144 client.checked_worldports_updated.connect(_on_checked_worldports_updated)
145 client.door_latched.connect(_on_door_latched)
144 146
145 client.could_not_connect.connect(_client_could_not_connect) 147 client.could_not_connect.connect(_client_could_not_connect)
146 client.connect_status.connect(_client_connect_status) 148 client.connect_status.connect(_client_connect_status)
@@ -376,6 +378,20 @@ func _on_checked_worldports_updated():
376 textclient_node.update_worldports() 378 textclient_node.update_worldports()
377 379
378 380
381func _on_door_latched(door_id):
382 var gamedata = global.get_node("Gamedata")
383 if gamedata.get_door_map_name(door_id) != global.map:
384 return
385
386 var receivers = gamedata.get_door_receivers(door_id)
387 var scene = get_tree().get_root().get_node_or_null("scene")
388 if scene != null:
389 for receiver in receivers:
390 var rnode = scene.get_node_or_null(receiver)
391 if rnode != null:
392 rnode.handleTriggered()
393
394
379func _client_could_not_connect(message): 395func _client_could_not_connect(message):
380 could_not_connect.emit(message) 396 could_not_connect.emit(message)
381 397
@@ -424,6 +440,7 @@ func _client_connected(slot_data):
424 # Read slot data. 440 # Read slot data.
425 cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) 441 cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0))
426 daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) 442 daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false))
443 enable_gift_maps = slot_data.get("enable_gift_maps", [])
427 keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) 444 keyholder_sanity = bool(slot_data.get("keyholder_sanity", false))
428 shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) 445 shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false))
429 shuffle_doors = bool(slot_data.get("shuffle_doors", false)) 446 shuffle_doors = bool(slot_data.get("shuffle_doors", false))