about summary refs log tree commit diff stats
path: root/apworld
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2026-02-05 15:05:17 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2026-02-05 15:05:17 -0500
commit4d38eca7fbb1f6b70689d2de234c44576bc6d3d0 (patch)
treedf105198dbe9c5c32211048a3315cafe8007c23c /apworld
parentc5fa0dcde264ea95e75b54884934abc2573cd8f9 (diff)
downloadlingo2-archipelago-4d38eca7fbb1f6b70689d2de234c44576bc6d3d0.tar.gz
lingo2-archipelago-4d38eca7fbb1f6b70689d2de234c44576bc6d3d0.tar.bz2
lingo2-archipelago-4d38eca7fbb1f6b70689d2de234c44576bc6d3d0.zip
Fixed Lavender Cubes and Rainbow Doors Entrance on daed only
Diffstat (limited to 'apworld')
-rw-r--r--apworld/client/manager.gd39
1 files changed, 31 insertions, 8 deletions
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 381a779..1e0b549 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -499,18 +499,31 @@ func _client_connected(slot_data):
499 # Set up item locks. 499 # Set up item locks.
500 _item_locks = {} 500 _item_locks = {}
501 501
502 if shuffle_doors: 502 if shuffle_doors or daedalus_only:
503 for door in gamedata.objects.get_doors(): 503 for door in gamedata.objects.get_doors():
504 if ( 504 if (
505 door.get_type() == gamedata.SCRIPT_proto.DoorType.STANDARD 505 door.get_type() != gamedata.SCRIPT_proto.DoorType.STANDARD
506 or door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY 506 and door.get_type() != gamedata.SCRIPT_proto.DoorType.ITEM_ONLY
507 ): 507 ):
508 _item_locks[door.get_id()] = [door.get_ap_id(), 1] 508 continue
509
510 if (
511 not shuffle_doors
512 and not (
513 daedalus_only
514 and door.has_daedalus_only_always_item()
515 and door.get_daedalus_only_always_item()
516 )
517 ):
518 continue
509 519
510 for progressive in gamedata.objects.get_progressives(): 520 _item_locks[door.get_id()] = [door.get_ap_id(), 1]
511 for i in range(0, progressive.get_doors().size()): 521
512 var door = gamedata.objects.get_doors()[progressive.get_doors()[i]] 522 if shuffle_doors:
513 _item_locks[door.get_id()] = [progressive.get_ap_id(), i + 1] 523 for progressive in gamedata.objects.get_progressives():
524 for i in range(0, progressive.get_doors().size()):
525 var door = gamedata.objects.get_doors()[progressive.get_doors()[i]]
526 _item_locks[door.get_id()] = [progressive.get_ap_id(), i + 1]
514 527
515 for door_group in gamedata.objects.get_door_groups(): 528 for door_group in gamedata.objects.get_door_groups():
516 if door_group.get_type() == gamedata.SCRIPT_proto.DoorGroupType.CONNECTOR: 529 if door_group.get_type() == gamedata.SCRIPT_proto.DoorGroupType.CONNECTOR:
@@ -519,6 +532,16 @@ func _client_connected(slot_data):
519 elif door_group.get_type() != gamedata.SCRIPT_proto.DoorGroupType.SHUFFLE_GROUP: 532 elif door_group.get_type() != gamedata.SCRIPT_proto.DoorGroupType.SHUFFLE_GROUP:
520 continue 533 continue
521 534
535 if (
536 not shuffle_doors
537 and not (
538 daedalus_only
539 and door_group.has_daedalus_only_always_item()
540 and door_group.get_daedalus_only_always_item()
541 )
542 ):
543 continue
544
522 for door in door_group.get_doors(): 545 for door in door_group.get_doors():
523 _item_locks[door] = [door_group.get_ap_id(), 1] 546 _item_locks[door] = [door_group.get_ap_id(), 1]
524 547