diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-08-29 12:07:56 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-08-29 12:07:56 -0400 |
commit | f4a383ae208da8363ef9ffad7763e0853e02a678 (patch) | |
tree | c1e5b5453c7cd0dd925a9753174f29f4b3b7f8dd /client/Archipelago/animationListener.gd | |
parent | f97b4ff4821f2945f22198dcbd5c627a64b4be50 (diff) | |
download | lingo2-archipelago-f4a383ae208da8363ef9ffad7763e0853e02a678.tar.gz lingo2-archipelago-f4a383ae208da8363ef9ffad7763e0853e02a678.tar.bz2 lingo2-archipelago-f4a383ae208da8363ef9ffad7763e0853e02a678.zip |
[Client] Various fixes
- Locations count puzzles in a map that are already solved. - Item-controlled paintings, animation listeners, and teleport listeners are handled properly.
Diffstat (limited to 'client/Archipelago/animationListener.gd')
-rw-r--r-- | client/Archipelago/animationListener.gd | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/client/Archipelago/animationListener.gd b/client/Archipelago/animationListener.gd new file mode 100644 index 0000000..f1fb5fb --- /dev/null +++ b/client/Archipelago/animationListener.gd | |||
@@ -0,0 +1,38 @@ | |||
1 | extends "res://scripts/nodes/listeners/animationListener.gd" | ||
2 | |||
3 | var item_id | ||
4 | |||
5 | |||
6 | func _ready(): | ||
7 | var node_path = String( | ||
8 | get_tree().get_root().get_node("scene").get_path_to(self).get_concatenated_names() | ||
9 | ) | ||
10 | |||
11 | print("node: %s" % node_path) | ||
12 | |||
13 | var gamedata = global.get_node("Gamedata") | ||
14 | var door_id = gamedata.get_door_for_map_node_path(global.map, node_path) | ||
15 | if door_id != null: | ||
16 | print("door_id: %d" % door_id) | ||
17 | |||
18 | var ap = global.get_node("Archipelago") | ||
19 | item_id = ap.get_item_id_for_door(door_id) | ||
20 | |||
21 | if item_id != null: | ||
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 | |||
34 | func _readier(): | ||
35 | var ap = global.get_node("Archipelago") | ||
36 | |||
37 | if ap.has_item(item_id): | ||
38 | handleTriggered() | ||