From 1e899b2135e6e86ee2c9cae994611d63832e4c0a Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 12 Sep 2025 08:20:11 -0400 Subject: [Client] Fixed The Great - Colorful Entrance --- client/Archipelago/settings_screen.gd | 2 ++ client/Archipelago/teleport.gd | 38 +++++++++++++++++++++++++++++++ data/maps/daedalus/rooms/Wonderland.txtpb | 1 - 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 client/Archipelago/teleport.gd diff --git a/client/Archipelago/settings_screen.gd b/client/Archipelago/settings_screen.gd index ff6f9df..81e7d3f 100644 --- a/client/Archipelago/settings_screen.gd +++ b/client/Archipelago/settings_screen.gd @@ -44,6 +44,7 @@ func _ready(): installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pauseMenu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/saver.gd")) + installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleportListener.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/visibilityListener.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldportListener.gd")) @@ -166,6 +167,7 @@ func connectionSuccessful(): clearResourceCache("res://objects/nodes/panel.tscn") clearResourceCache("res://objects/nodes/player.tscn") clearResourceCache("res://objects/nodes/saver.tscn") + clearResourceCache("res://objects/nodes/teleport.tscn") clearResourceCache("res://objects/scenes/menus/pause_menu.tscn") var paintings_dir = DirAccess.open("res://objects/meshes/paintings") diff --git a/client/Archipelago/teleport.gd b/client/Archipelago/teleport.gd new file mode 100644 index 0000000..428d50b --- /dev/null +++ b/client/Archipelago/teleport.gd @@ -0,0 +1,38 @@ +extends "res://scripts/nodes/teleport.gd" + +var item_id +var item_amount + + +func _ready(): + var node_path = String( + get_tree().get_root().get_node("scene").get_path_to(self).get_concatenated_names() + ) + + var gamedata = global.get_node("Gamedata") + var door_id = gamedata.get_door_for_map_node_path(global.map, node_path) + if door_id != null: + var ap = global.get_node("Archipelago") + var item_lock = ap.get_item_id_for_door(door_id) + + if item_lock != null: + item_id = item_lock[0] + item_amount = item_lock[1] + + self.senders = [] + self.senderGroup = [] + self.nested = false + self.complete_at = 0 + self.max_length = 0 + self.excludeSenders = [] + + call_deferred("_readier") + + super._ready() + + +func _readier(): + var ap = global.get_node("Archipelago") + + if ap.client.getItemAmount(item_id) >= item_amount: + handleTriggered() diff --git a/data/maps/daedalus/rooms/Wonderland.txtpb b/data/maps/daedalus/rooms/Wonderland.txtpb index 4b69e99..ae9b3f1 100644 --- a/data/maps/daedalus/rooms/Wonderland.txtpb +++ b/data/maps/daedalus/rooms/Wonderland.txtpb @@ -1,6 +1,5 @@ name: "Wonderland" panel_display_name: "Northwest Area" -# TODO: There's a warp from The Entry into here. panels { name: "APRIL" path: "Panels/Wonderland/wonderland_1" -- cgit 1.4.1