diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-07 16:32:09 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-07 16:32:09 -0400 |
commit | 215b576cc816f6f378d057b330ef01f02539602a (patch) | |
tree | 393e7684f65d3e65161f7711ce8497a9b1d1310e /client/Archipelago/manager.gd | |
parent | 4b1ba8df2897fa840f829f66425ac68a82f25eac (diff) | |
download | lingo2-archipelago-215b576cc816f6f378d057b330ef01f02539602a.tar.gz lingo2-archipelago-215b576cc816f6f378d057b330ef01f02539602a.tar.bz2 lingo2-archipelago-215b576cc816f6f378d057b330ef01f02539602a.zip |
[Client] Handle grouped doors / shuffled CC doors
Diffstat (limited to 'client/Archipelago/manager.gd')
-rw-r--r-- | client/Archipelago/manager.gd | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/client/Archipelago/manager.gd b/client/Archipelago/manager.gd index bcb21e7..72abf34 100644 --- a/client/Archipelago/manager.gd +++ b/client/Archipelago/manager.gd | |||
@@ -38,6 +38,7 @@ const kLETTER_BEHAVIOR_UNLOCKED = 2 | |||
38 | 38 | ||
39 | var daedalus_roof_access = false | 39 | var daedalus_roof_access = false |
40 | var keyholder_sanity = false | 40 | var keyholder_sanity = false |
41 | var shuffle_control_center_colors = false | ||
41 | var shuffle_doors = false | 42 | var shuffle_doors = false |
42 | var shuffle_letters = kSHUFFLE_LETTERS_VANILLA | 43 | var shuffle_letters = kSHUFFLE_LETTERS_VANILLA |
43 | var victory_condition = -1 | 44 | var victory_condition = -1 |
@@ -339,6 +340,7 @@ func _client_connected(slot_data): | |||
339 | # Read slot data. | 340 | # Read slot data. |
340 | daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) | 341 | daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) |
341 | keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) | 342 | keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) |
343 | shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) | ||
342 | shuffle_doors = bool(slot_data.get("shuffle_doors", false)) | 344 | shuffle_doors = bool(slot_data.get("shuffle_doors", false)) |
343 | shuffle_letters = int(slot_data.get("shuffle_letters", 0)) | 345 | shuffle_letters = int(slot_data.get("shuffle_letters", 0)) |
344 | victory_condition = int(slot_data.get("victory_condition", 0)) | 346 | victory_condition = int(slot_data.get("victory_condition", 0)) |
@@ -359,6 +361,21 @@ func _client_connected(slot_data): | |||
359 | var door = gamedata.objects.get_doors()[progressive.get_doors()[i]] | 361 | var door = gamedata.objects.get_doors()[progressive.get_doors()[i]] |
360 | _item_locks[door.get_id()] = [progressive.get_ap_id(), i + 1] | 362 | _item_locks[door.get_id()] = [progressive.get_ap_id(), i + 1] |
361 | 363 | ||
364 | for door_group in gamedata.objects.get_door_groups(): | ||
365 | if door_group.get_type() == gamedata.SCRIPT_proto.DoorGroupType.CONNECTOR: | ||
366 | for door in door_group.get_doors(): | ||
367 | _item_locks[door] = [door_group.get_ap_id(), 1] | ||
368 | |||
369 | if shuffle_control_center_colors: | ||
370 | for door in gamedata.objects.get_doors(): | ||
371 | if door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR: | ||
372 | _item_locks[door.get_id()] = [door.get_ap_id(), 1] | ||
373 | |||
374 | for door_group in gamedata.objects.get_door_groups(): | ||
375 | if door_group.get_type() == gamedata.SCRIPT_proto.DoorGroupType.COLOR_CONNECTOR: | ||
376 | for door in door_group.get_doors(): | ||
377 | _item_locks[door] = [door_group.get_ap_id(), 1] | ||
378 | |||
362 | emit_signal("ap_connected") | 379 | emit_signal("ap_connected") |
363 | 380 | ||
364 | 381 | ||