From a2abd188f762659c5e7595079d2925bc2869b455 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 7 Feb 2026 07:49:30 -0500 Subject: Clientside RTE shuffle --- apworld/client/manager.gd | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'apworld/client/manager.gd') diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 1e0b549..00f03ea 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd @@ -46,6 +46,10 @@ const kCYAN_DOOR_BEHAVIOR_H2 = 0 const kCYAN_DOOR_BEHAVIOR_DOUBLE_LETTER = 1 const kCYAN_DOOR_BEHAVIOR_ITEM = 2 +const kFAST_TRAVEL_ACCESS_VANILLA = 0 +const kFAST_TRAVEL_ACCESS_UNLOCKED = 1 +const kFAST_TRAVEL_ACCESS_ITEMS = 2 + const kEndingNameByVictoryValue = { 0: "GRAY", 1: "PURPLE", @@ -69,9 +73,11 @@ var daedalus_roof_access = false var enable_gift_maps = [] var enable_icarus = false var endings_requirement = 0 +var fast_travel_access = 0 var keyholder_sanity = false var masteries_requirement = 0 var port_pairings = {} +var rte_mapping = [] var shuffle_control_center_colors = false var shuffle_doors = false var shuffle_gallery_paintings = false @@ -269,6 +275,13 @@ func _process_item(item, amount): if item_id == gamedata.objects.get_special_ids()["Numbers"] and global.map == "the_fuzzy": global.allow_numbers = true + if gamedata.map_id_by_rte_ap_id.has(item_id): + var rteInner = get_tree().get_root().get_node_or_null( + "scene/player/pause_menu/menu/return/rteInner" + ) + if rteInner != null: + rteInner.refreshButtons() + # Show a message about the item if it's new. if int(item["index"]) > _last_new_item: _last_new_item = int(item["index"]) @@ -469,6 +482,7 @@ func _client_connected(slot_data): enable_gift_maps = slot_data.get("enable_gift_maps", []) enable_icarus = bool(slot_data.get("enable_icarus", false)) endings_requirement = int(slot_data.get("endings_requirement", 0)) + fast_travel_access = int(slot_data.get("fast_travel_access", 0)) keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) masteries_requirement = int(slot_data.get("masteries_requirement", 0)) shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) @@ -496,6 +510,10 @@ func _client_connected(slot_data): raw_pp[p1] )] + rte_mapping.clear() + if slot_data.has("rte"): + rte_mapping = slot_data.get("rte") + # Set up item locks. _item_locks = {} -- cgit 1.4.1