about summary refs log tree commit diff stats
path: root/client/Archipelago/keyHolderChecker.gd
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-06 09:20:28 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-06 09:20:28 -0400
commitbb4b16ca06c70cf263424955713c91117f2f1813 (patch)
tree1f234246ad48a2472904e92a6ff48fc7f13e1c49 /client/Archipelago/keyHolderChecker.gd
parentebda0b634c2396338b86b45128bf507c967e88a7 (diff)
downloadlingo2-archipelago-bb4b16ca06c70cf263424955713c91117f2f1813.tar.gz
lingo2-archipelago-bb4b16ca06c70cf263424955713c91117f2f1813.tar.bz2
lingo2-archipelago-bb4b16ca06c70cf263424955713c91117f2f1813.zip
[Client] Handle letter shuffle
Cyan doors are not handled properly yet.
Diffstat (limited to 'client/Archipelago/keyHolderChecker.gd')
-rw-r--r--client/Archipelago/keyHolderChecker.gd24
1 files changed, 24 insertions, 0 deletions
diff --git a/client/Archipelago/keyHolderChecker.gd b/client/Archipelago/keyHolderChecker.gd new file mode 100644 index 0000000..a75a9e4 --- /dev/null +++ b/client/Archipelago/keyHolderChecker.gd
@@ -0,0 +1,24 @@
1extends "res://scripts/nodes/listeners/keyHolderChecker.gd"
2
3
4func check():
5 var ap = global.get_node("Archipelago")
6 var matches = []
7 for map in ap.keyboard.keyholder_state.keys():
8 var nodes = ap.keyboard.keyholder_state[map]
9 for node in nodes.keys():
10 matches.append([nodes[node], 1, map, "/root/scene/%s" % node])
11
12 var count = 0
13 for key_match in matches:
14 var active = (
15 key_match[2] + String(key_match[3]).replace("/root/scene/Components/KeyHolders/", ".")
16 )
17 if map[active] == key_match[0]:
18 emit_signal("trigger_letter", key_match[0], true)
19 count += 1
20 else:
21 emit_signal("trigger_letter", key_match[0], false)
22
23 if count > 25:
24 emit_signal("trigger")