From 8566f6e7fb54f5f52241ac86ebd1a6636ceb4a08 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 29 Aug 2025 13:30:58 -0400 Subject: [Client] Added ending locations Getting an ending (other than White) also does not send you to the credits. --- client/Archipelago/player.gd | 12 ++++++++++++ client/Archipelago/settings_screen.gd | 2 ++ client/Archipelago/worldportListener.gd | 8 ++++++++ 3 files changed, 22 insertions(+) create mode 100644 client/Archipelago/worldportListener.gd (limited to 'client/Archipelago') diff --git a/client/Archipelago/player.gd b/client/Archipelago/player.gd index 5d17d68..082aa64 100644 --- a/client/Archipelago/player.gd +++ b/client/Archipelago/player.gd @@ -51,4 +51,16 @@ func _ready(): get_parent().add_child.call_deferred(locationListener) + for ending in gamedata.objects.get_endings(): + var room = gamedata.objects.get_rooms()[ending.get_room_id()] + if room.get_map_id() != map_id: + continue + + var locationListener = ap.SCRIPT_locationListener.new() + locationListener.location_id = ending.get_ap_id() + locationListener.name = "locationListener_%d" % ending.get_ap_id() + locationListener.senders.append(NodePath("/root/scene/" + ending.get_path())) + + get_parent().add_child.call_deferred(locationListener) + super._ready() diff --git a/client/Archipelago/settings_screen.gd b/client/Archipelago/settings_screen.gd index 5a4a76d..0611bab 100644 --- a/client/Archipelago/settings_screen.gd +++ b/client/Archipelago/settings_screen.gd @@ -42,6 +42,7 @@ func _ready(): installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/saver.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleportListener.gd")) + installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldportListener.gd")) var proto_script = load("user://maps/Archipelago/generated/proto.gd") var gamedata_script = load("user://maps/Archipelago/gamedata.gd") @@ -145,6 +146,7 @@ func connectionSuccessful(): clearResourceCache("res://objects/nodes/door.tscn") clearResourceCache("res://objects/nodes/listeners/animationListener.tscn") clearResourceCache("res://objects/nodes/listeners/teleportListener.tscn") + clearResourceCache("res://objects/nodes/listeners/worldportListener.tscn") clearResourceCache("res://objects/nodes/player.tscn") clearResourceCache("res://objects/nodes/saver.tscn") diff --git a/client/Archipelago/worldportListener.gd b/client/Archipelago/worldportListener.gd new file mode 100644 index 0000000..c31c825 --- /dev/null +++ b/client/Archipelago/worldportListener.gd @@ -0,0 +1,8 @@ +extends "res://scripts/nodes/listeners/worldportListener.gd" + + +func changeScene(): + if exit == "menus/credits": + return + + super.changeScene() -- cgit 1.4.1