about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-11 09:58:54 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-11 09:58:54 -0400
commit90eb3291208def83d01164789250c017a5ce2303 (patch)
tree37e6cefe9d9f76716c88e2808da5bda91da2c9a8
parent49a19c02520999202c01fd7e46aff42ac9fce52d (diff)
downloadlingo2-archipelago-90eb3291208def83d01164789250c017a5ce2303.tar.gz
lingo2-archipelago-90eb3291208def83d01164789250c017a5ce2303.tar.bz2
lingo2-archipelago-90eb3291208def83d01164789250c017a5ce2303.zip
[Client] Fixed darkroom double letter panel blockers
-rw-r--r--client/Archipelago/settings_screen.gd2
-rw-r--r--client/Archipelago/visibilityListener.gd38
2 files changed, 40 insertions, 0 deletions
diff --git a/client/Archipelago/settings_screen.gd b/client/Archipelago/settings_screen.gd index bc201b6..ff6f9df 100644 --- a/client/Archipelago/settings_screen.gd +++ b/client/Archipelago/settings_screen.gd
@@ -45,6 +45,7 @@ func _ready():
45 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) 45 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd"))
46 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/saver.gd")) 46 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/saver.gd"))
47 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleportListener.gd")) 47 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleportListener.gd"))
48 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/visibilityListener.gd"))
48 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldportListener.gd")) 49 installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldportListener.gd"))
49 50
50 var proto_script = load("user://maps/Archipelago/generated/proto.gd") 51 var proto_script = load("user://maps/Archipelago/generated/proto.gd")
@@ -160,6 +161,7 @@ func connectionSuccessful():
160 clearResourceCache("res://objects/nodes/listeners/keyHolderChecker.tscn") 161 clearResourceCache("res://objects/nodes/listeners/keyHolderChecker.tscn")
161 clearResourceCache("res://objects/nodes/listeners/keyHolderResetterListener.tscn") 162 clearResourceCache("res://objects/nodes/listeners/keyHolderResetterListener.tscn")
162 clearResourceCache("res://objects/nodes/listeners/teleportListener.tscn") 163 clearResourceCache("res://objects/nodes/listeners/teleportListener.tscn")
164 clearResourceCache("res://objects/nodes/listeners/visibilityListener.tscn")
163 clearResourceCache("res://objects/nodes/listeners/worldportListener.tscn") 165 clearResourceCache("res://objects/nodes/listeners/worldportListener.tscn")
164 clearResourceCache("res://objects/nodes/panel.tscn") 166 clearResourceCache("res://objects/nodes/panel.tscn")
165 clearResourceCache("res://objects/nodes/player.tscn") 167 clearResourceCache("res://objects/nodes/player.tscn")
diff --git a/client/Archipelago/visibilityListener.gd b/client/Archipelago/visibilityListener.gd new file mode 100644 index 0000000..5ea17a0 --- /dev/null +++ b/client/Archipelago/visibilityListener.gd
@@ -0,0 +1,38 @@
1extends "res://scripts/nodes/listeners/visibilityListener.gd"
2
3var item_id
4var item_amount
5
6
7func _ready():
8 var node_path = String(
9 get_tree().get_root().get_node("scene").get_path_to(self).get_concatenated_names()
10 )
11
12 var gamedata = global.get_node("Gamedata")
13 var door_id = gamedata.get_door_for_map_node_path(global.map, node_path)
14 if door_id != null:
15 var ap = global.get_node("Archipelago")
16 var item_lock = ap.get_item_id_for_door(door_id)
17
18 if item_lock != null:
19 item_id = item_lock[0]
20 item_amount = item_lock[1]
21
22 self.senders = []
23 self.senderGroup = []
24 self.nested = false
25 self.complete_at = 0
26 self.max_length = 0
27 self.excludeSenders = []
28
29 call_deferred("_readier")
30
31 super._ready()
32
33
34func _readier():
35 var ap = global.get_node("Archipelago")
36
37 if ap.client.getItemAmount(item_id) >= item_amount:
38 handleTriggered()