From 215b576cc816f6f378d057b330ef01f02539602a Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 7 Sep 2025 16:32:09 -0400 Subject: [Client] Handle grouped doors / shuffled CC doors --- client/Archipelago/manager.gd | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'client') 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 var daedalus_roof_access = false var keyholder_sanity = false +var shuffle_control_center_colors = false var shuffle_doors = false var shuffle_letters = kSHUFFLE_LETTERS_VANILLA var victory_condition = -1 @@ -339,6 +340,7 @@ func _client_connected(slot_data): # Read slot data. daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) + shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) shuffle_doors = bool(slot_data.get("shuffle_doors", false)) shuffle_letters = int(slot_data.get("shuffle_letters", 0)) victory_condition = int(slot_data.get("victory_condition", 0)) @@ -359,6 +361,21 @@ func _client_connected(slot_data): var door = gamedata.objects.get_doors()[progressive.get_doors()[i]] _item_locks[door.get_id()] = [progressive.get_ap_id(), i + 1] + for door_group in gamedata.objects.get_door_groups(): + if door_group.get_type() == gamedata.SCRIPT_proto.DoorGroupType.CONNECTOR: + for door in door_group.get_doors(): + _item_locks[door] = [door_group.get_ap_id(), 1] + + if shuffle_control_center_colors: + for door in gamedata.objects.get_doors(): + if door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR: + _item_locks[door.get_id()] = [door.get_ap_id(), 1] + + for door_group in gamedata.objects.get_door_groups(): + if door_group.get_type() == gamedata.SCRIPT_proto.DoorGroupType.COLOR_CONNECTOR: + for door in door_group.get_doors(): + _item_locks[door] = [door_group.get_ap_id(), 1] + emit_signal("ap_connected") -- cgit 1.4.1