diff options
Diffstat (limited to 'apworld/client/manager.gd')
-rw-r--r-- | apworld/client/manager.gd | 17 |
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 = { | |||
63 | var apworld_version = [0, 0, 0] | 63 | var apworld_version = [0, 0, 0] |
64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 | 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 |
65 | var daedalus_roof_access = false | 65 | var daedalus_roof_access = false |
66 | var enable_gift_maps = [] | ||
66 | var keyholder_sanity = false | 67 | var keyholder_sanity = false |
67 | var port_pairings = {} | 68 | var port_pairings = {} |
68 | var shuffle_control_center_colors = false | 69 | var 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 | ||
381 | func _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 | |||
379 | func _client_could_not_connect(message): | 395 | func _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)) |