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 | |
| 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')
| -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 | ||
