From 4d38eca7fbb1f6b70689d2de234c44576bc6d3d0 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 5 Feb 2026 15:05:17 -0500 Subject: Fixed Lavender Cubes and Rainbow Doors Entrance on daed only --- apworld/client/manager.gd | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) (limited to 'apworld/client/manager.gd') 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): # Set up item locks. _item_locks = {} - if shuffle_doors: + if shuffle_doors or daedalus_only: for door in gamedata.objects.get_doors(): if ( - door.get_type() == gamedata.SCRIPT_proto.DoorType.STANDARD - or door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY + door.get_type() != gamedata.SCRIPT_proto.DoorType.STANDARD + and door.get_type() != gamedata.SCRIPT_proto.DoorType.ITEM_ONLY ): - _item_locks[door.get_id()] = [door.get_ap_id(), 1] + continue + + if ( + not shuffle_doors + and not ( + daedalus_only + and door.has_daedalus_only_always_item() + and door.get_daedalus_only_always_item() + ) + ): + continue - for progressive in gamedata.objects.get_progressives(): - for i in range(0, progressive.get_doors().size()): - var door = gamedata.objects.get_doors()[progressive.get_doors()[i]] - _item_locks[door.get_id()] = [progressive.get_ap_id(), i + 1] + _item_locks[door.get_id()] = [door.get_ap_id(), 1] + + if shuffle_doors: + for progressive in gamedata.objects.get_progressives(): + for i in range(0, progressive.get_doors().size()): + 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: @@ -519,6 +532,16 @@ func _client_connected(slot_data): elif door_group.get_type() != gamedata.SCRIPT_proto.DoorGroupType.SHUFFLE_GROUP: continue + if ( + not shuffle_doors + and not ( + daedalus_only + and door_group.has_daedalus_only_always_item() + and door_group.get_daedalus_only_always_item() + ) + ): + continue + for door in door_group.get_doors(): _item_locks[door] = [door_group.get_ap_id(), 1] -- cgit 1.4.1