extends "res://scripts/ui/rteMenu.gd" var buttons = [] func _readier(): var ap = global.get_node("Archipelago") if ap.daedalus_only: get_node("rte_the_entry").hide() get_node("rte_daedalus").show() switcher.preload_map("res://objects/scenes/daedalus.tscn") elif !ap.rte_mapping.is_empty(): buttons = [$rte_the_plaza, $rte_the_gallery, $rte_daedalus, $rte_control_center] for i in range(4): buttons[i].name = "button_%d" % i for i in range(4): _setupButton(buttons[i], ap.rte_mapping[i]) refreshButtons() else: super()._readier() func _setupButton(button, map_name): switcher.preload_map("res://objects/scenes/%s.tscn" % map_name) button.hide() button.text = map_name.replace("_", " ") button.name = "rte_%s" % map_name button.autowrap_mode = TextServer.AUTOWRAP_WORD var ap = global.get_node("Archipelago") if ( ap.fast_travel_access == ap.kFAST_TRAVEL_ACCESS_VANILLA and !unlocks.data.has("rte_%s" % map_name) ): unlocks.data["rte_%s" % map_name] = "" func refreshButtons(): var ap = global.get_node("Archipelago") if ap.rte_mapping.is_empty(): return for i in range(4): if _shouldShowButton(ap.rte_mapping[i]): buttons[i].show() else: buttons[i].hide() func _shouldShowButton(map_name): var ap = global.get_node("Archipelago") if ap.fast_travel_access == ap.kFAST_TRAVEL_ACCESS_VANILLA: return unlocks.data["rte_%s" % map_name] == "unlocked" elif ap.fast_travel_access == ap.kFAST_TRAVEL_ACCESS_UNLOCKED: return true elif ap.fast_travel_access == ap.kFAST_TRAVEL_ACCESS_ITEMS: var gamedata = global.get_node("Gamedata") var map_id = gamedata.map_id_by_name[map_name] var rte_ap_id = gamedata.objects.get_maps()[map_id].get_rte_ap_id() return ap.client.hasItem(rte_ap_id) return false